package fi.otavanopisto.pyramus.rest.controller.permissions; import java.util.List; import fi.otavanopisto.pyramus.security.impl.AbstractPyramusPermissionCollection; import fi.otavanopisto.pyramus.security.impl.DefaultPermissionRoles; import fi.otavanopisto.pyramus.security.impl.PermissionScope; import fi.otavanopisto.pyramus.security.impl.PyramusPermissionCollection; import fi.otavanopisto.security.PermissionFeature; import fi.otavanopisto.security.Scope; public class StudentPermissions extends AbstractPyramusPermissionCollection implements PyramusPermissionCollection { /* Features */ // TODO: RoleFeatures could be separate entity as this is bit awkward to ask with environmentpermission... @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ STUDY_GUIDER }) public static final String FEATURE_OWNED_GROUP_STUDENTS_RESTRICTION = "FEATURE_OWNED_GROUP_STUDENTS_RESTRICTION"; /* Student */ @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String CREATE_STUDENT = "CREATE_STUDENT"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, TRUSTED_SYSTEM, STUDY_GUIDER }) public static final String LIST_STUDENTS = "LIST_STUDENTS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String LIST_STUDENTSBYPERSON = "LIST_STUDENTSBYPERSON"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String LIST_STAFFMEMBERSBYPERSON = "LIST_STAFFMEMBERSBYPERSON"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String LIST_COURSESTUDENTSBYSTUDENT = "LIST_COURSESTUDENTSBYSTUDENT"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, TRUSTED_SYSTEM, STUDY_GUIDER }) @PermissionFeature(PyramusPermissionFeatures.ONLY_GROUP_STUDENTS) public static final String FIND_STUDENT = "FIND_STUDENT"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) @PermissionFeature(PyramusPermissionFeatures.ONLY_GROUP_STUDENTS) public static final String UPDATE_STUDENT = "UPDATE_STUDENT"; @Scope (PermissionScope.STUDENT_OWNER) public static final String STUDENT_OWNER = "STUDENT_OWNER"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String UPDATE_STUDENTPERSON = "UPDATE_STUDENTPERSON"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String UPDATE_STUDENTADDITIONALCONTACTINFO = "UPDATE_STUDENTADDITIONALCONTACTINFO"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR }) public static final String DELETE_STUDENT = "DELETE_STUDENT"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String ADD_STUDENTEMAIL = "ADD_STUDENTEMAIL"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String ADD_STUDENTADDRESS = "ADD_STUDENTADDRESS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String ADD_STUDENTPHONENUMBER = "ADD_STUDENTPHONENUMBER"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String ADD_STUDENTCONTACTURL = "ADD_STUDENTCONTACTURL"; /** * STUDENT emails */ @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String CREATE_STUDENTEMAIL = "CREATE_STUDENTEMAIL"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, TRUSTED_SYSTEM, STUDY_GUIDER }) public static final String LIST_STUDENTEMAILS = "LIST_STUDENTEMAILS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, TRUSTED_SYSTEM, STUDY_GUIDER }) public static final String FIND_STUDENTEMAIL = "FIND_STUDENTEMAIL"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR }) public static final String DELETE_STUDENTEMAIL = "DELETE_STUDENTEMAIL"; /** * STUDENT addresses */ @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String CREATE_STUDENTADDRESS = "CREATE_STUDENTADDRESS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, STUDY_GUIDER }) public static final String LIST_STUDENTADDRESSS = "LIST_STUDENTADDRESSS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, STUDY_GUIDER }) public static final String FIND_STUDENTADDRESS = "FIND_STUDENTADDRESS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String UPDATE_STUDENTADDRESS = "UPDATE_STUDENTADDRESS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR }) public static final String DELETE_STUDENTADDRESS = "DELETE_STUDENTADDRESS"; /** * STUDENT phones */ @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String CREATE_STUDENTPHONENUMBER = "CREATE_STUDENTPHONENUMBER"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, STUDY_GUIDER }) public static final String LIST_STUDENTPHONENUMBERS = "LIST_STUDENTPHONENUMBERS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, STUDY_GUIDER }) public static final String FIND_STUDENTPHONENUMBER = "FIND_STUDENTPHONENUMBER"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR }) public static final String DELETE_STUDENTPHONENUMBER = "DELETE_STUDENTPHONENUMBER"; /** * STUDENT contact urls */ @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String CREATE_STUDENTCONTACTURL = "CREATE_STUDENTCONTACTURL"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String LIST_STUDENTCONTACTURLS = "LIST_STUDENTCONTACTURLS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String FIND_STUDENTCONTACTURL = "FIND_STUDENTCONTACTURL"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, STUDY_PROGRAMME_LEADER }) public static final String DELETE_STUDENTCONTACTURL = "DELETE_STUDENTCONTACTURL"; /** * STUDENT transfer credits */ @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER }) public static final String LIST_STUDENT_TRANSFER_CREDITS = "LIST_STUDENT_TRANSFER_CREDITS"; @Override public List<String> listPermissions() { return super.listPermissions(StudentPermissions.class); } @Override public boolean containsPermission(String permission) { return listPermissions().contains(permission); } @Override public String getPermissionScope(String permission) throws NoSuchFieldException { return super.getPermissionScope(StudentPermissions.class, permission); } @Override public String[] getDefaultRoles(String permission) throws NoSuchFieldException { return super.getDefaultRoles(StudentPermissions.class, permission); } @Override public PermissionFeature[] listPermissionFeatures(String permission) throws NoSuchFieldException, SecurityException { return super.listPermissionFeatures(StudentPermissions.class, permission); } }