import org.eclipse.jface.viewers.IStructuredSelection;
import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
+import eu.etaxonomy.cdm.model.permission.CRUD;
import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmAuthority;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
/**
* Checks if the currently authenticated user for {@link CdmAuthority} assignments.
- *
+ *
* @author andreas
*
*/
public class PermissionPropertyTester extends PropertyTester {
-
+
private static final String HAS_PERMISSIONS = "hasPermissions";
-
+
private static final String CREATE = CRUD.CREATE.toString();
private static final String READ = CRUD.READ.toString();
private static final String UPDATE = CRUD.UPDATE.toString();
@Override
public boolean test(Object receiver, String property, Object[] args,
Object expectedValue) {
-
+
if(property.equals(HAS_PERMISSIONS)){
return checkHasPermission(receiver, args);
}
-
+
return false;
}
private boolean checkHasPermission(Object receiver, Object[] args) {
EnumSet<CRUD> crudSet = crudSetFromArgs(args);
-
+
List<Object> selectedElements = ((IStructuredSelection) receiver).toList();
for(Object selectedElement : selectedElements){
- if(selectedElement instanceof CdmBase && ! CdmStore.currentAuthentiationHasPermission((CdmBase) selectedElement, crudSet)){
+ if(selectedElement instanceof CdmBase && ! CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(selectedElement), crudSet)){
return false;
}
}