package org.iatrix.messwerte.acl; import ch.elexis.admin.ACE; import ch.elexis.admin.AbstractAccessControl; import ch.elexis.admin.IACLContributor; import ch.elexis.core.model.RoleConstants; public class ACLContributor implements IACLContributor { public ACE[] getACL(){ return new ACE[] { ACL.DATA_MESSWERT_EDIT_INT_LAB_VALUE, ACL.DATA_MESSWERT_EDIT_INT_LAB_PATH_STATE, ACL.DATA_MESSWERT_EDIT_EXT_LAB_VALUE, ACL.DATA_MESSWERT_EDIT_EXT_LAB_PATH_STATE, ACL.DELETE_MESSWERT_INT_LAB, ACL.DELETE_MESSWERT_EXT_LAB, }; } @Override public void initializeDefaults(AbstractAccessControl ac){ // allow any user to change the pathologic state of any value ac.grant(RoleConstants.SYSTEMROLE_LITERAL_USER, ACL.DATA_MESSWERT_EDIT_INT_LAB_PATH_STATE); ac.grant(RoleConstants.SYSTEMROLE_LITERAL_USER, ACL.DATA_MESSWERT_EDIT_EXT_LAB_PATH_STATE); // allow any user to change values of the internal lab ac.grant(RoleConstants.SYSTEMROLE_LITERAL_USER, ACL.DATA_MESSWERT_EDIT_INT_LAB_VALUE); // only allow admins to change values of the external labs ac.grant(RoleConstants.SYSTEMROLE_LITERAL_EXECUTIVE_DOCTOR, ACL.DATA_MESSWERT_EDIT_EXT_LAB_VALUE); // only allow admins to delete values ac.grant(RoleConstants.SYSTEMROLE_LITERAL_EXECUTIVE_DOCTOR, ACL.DELETE_MESSWERT_INT_LAB); ac.grant(RoleConstants.SYSTEMROLE_LITERAL_EXECUTIVE_DOCTOR, ACL.DELETE_MESSWERT_EXT_LAB); } }