package fi.otavanopisto.muikku.security;
import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import fi.otavanopisto.muikku.model.users.EnvironmentRoleArchetype;
import fi.otavanopisto.muikku.model.workspace.WorkspaceRoleArchetype;
import fi.otavanopisto.security.Scope;
@ApplicationScoped
public class MuikkuPermissions extends AbstractMuikkuPermissionCollection implements MuikkuPermissionCollection {
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR })
public static final String ADMIN = "ADMIN";
@Scope (PermissionScope.PERSONAL)
public static final String OWNER = "OWNER";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
public static final String REPRESENT_USER = "REPRESENT_USER";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
public static final String CREATE_WORKSPACE = "CREATE_WORKSPACE";
// TODO Not used anywhere :|
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.STUDENT, EnvironmentRoleArchetype.TEACHER })
public static final String LIST_WORKSPACES = "LIST_WORKSPACES";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
public static final String LIST_ALL_WORKSPACES = "LIST_ALL_WORKSPACES";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
public static final String MANAGE_SETTINGS = "MANAGE_SETTINGS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR })
public static final String MANAGE_PERMISSIONS = "MANAGE_PERMISSIONS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
public static final String MANAGE_USERS = "MANAGE_USERS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
public static final String MANAGE_MATERIALS = "MANAGE_MATERIALS"; // Edit material content in content editor, including publishing or reverting revisions
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
public static final String MANAGE_MATERIAL_PRODUCERS = "MANAGE_MATERIAL_PRODUCERS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
public static final String MANAGE_MATERIAL_META = "MANAGE_MATERIAL_META";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
public static final String COPY_WORKSPACE = "COPY_WORKSPACE";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
public static final String LIST_INACTIVE_STUDENTS = "LIST_INACTIVE_STUDENTS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
public static final String LIST_HIDDEN_STUDENTS = "LIST_HIDDEN_STUDENTS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR })
public static final String ACCESS_MEMBERS_ONLY_WORKSPACE = "ACCESS_MEMBERS_ONLY_WORKSPACE";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
public static final String ACCESS_EVALUATION = "ACCESS_EVALUATION";
/* WORKSPACE */
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.STUDENT, EnvironmentRoleArchetype.TEACHER })
public static final String JOIN_WORKSPACE = "JOIN_WORKSPACE";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String WORKSPACE_MANAGEWORKSPACESETTINGS = "WORKSPACE_MANAGEWORKSPACESETTINGS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String REPRESENT_WORKSPACEUSER = "REPRESENT_WORKSPACEUSER";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String EVALUATE_USER = "EVALUATE_USER";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String VIEW_USER_EVALUATION = "VIEW_USER_EVALUATION";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String VIEW_MATERIAL_EVALUATION = "VIEW_MATERIAL_EVALUATION";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String EVALUATE_MATERIAL = "EVALUATE_MATERIAL";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
public static final String LIST_STUDENT_TRANSFER_CREDITS = "LIST_STUDENT_TRANSFER_CREDITS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.STUDY_GUIDER })
public static final String LIST_STUDENT_PHONE_NUMBERS = "LIST_STUDENT_PHONE_NUMBERS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.STUDY_GUIDER })
public static final String LIST_STUDENT_EMAILS = "LIST_STUDENT_EMAILS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.STUDY_GUIDER })
public static final String LIST_STUDENT_ADDRESSES = "LIST_STUDENT_ADDRESSES";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER })
public static final String UPDATE_STUDENT_ADDRESS = "UPDATE_STUDENT_ADDRESS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.STUDENT, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.STUDY_GUIDER, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.ADMINISTRATOR })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.STUDENT, WorkspaceRoleArchetype.TEACHER })
public static final String ACCESS_WORKSPACE_MATERIALS = "ACCESS_WORKSPACE_MATERIALS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String MANAGE_WORKSPACE = "MANAGE_WORKSPACE";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String ACCESS_UNPUBLISHED_WORKSPACE = "ACCESS_UNPUBLISHED_WORKSPACE";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String PUBLISH_WORKSPACE = "PUBLISH_WORKSPACE";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String MANAGE_WORKSPACE_MATERIALS = "MANAGE_WORKSPACE_MATERIALS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String MANAGE_WORKSPACE_FRONTPAGE = "MANAGE_WORKSPACE_FRONTPAGE";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String MANAGE_WORKSPACE_HELP = "MANAGE_WORKSPACE_HELP";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String WORKSPACE_MANAGE_PERMISSIONS = "WORKSPACE_MANAGE_PERMISSIONS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String LIST_WORKSPACE_STUDENTS = "LIST_WORKSPACE_STUDENTS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.STUDENT, WorkspaceRoleArchetype.TEACHER })
public static final String LIST_WORKSPACE_MEMBERS = "LIST_WORKSPACE_MEMBERS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String MANAGE_WORKSPACE_MEMBERS = "MANAGE_WORKSPACE_MEMBERS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR })
public static final String ARCHIVE_ALL_WORKSPACE_STUDENTS = "ARCHIVE_ALL_WORKSPACE_STUDENTS";
@Scope (PermissionScope.WORKSPACE)
public static final String WORKSPACE_SIGNUP = "WORKSPACE_SIGNUP";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.STUDENT, WorkspaceRoleArchetype.TEACHER })
public static final String ACCESS_WORKSPACE_JOURNAL = "ACCESS_WORKSPACE_JOURNAL";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String LIST_ALL_JOURNAL_ENTRIES = "LIST_ALL_JOURNAL_ENTRIES";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String VIEW_WORKSPACE_DETAILS = "VIEW_WORKSPACE_DETAILS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.STUDENT, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.STUDY_GUIDER })
public static final String VIEW_WORKSPACE_FEE = "VIEW_WORKSPACE_FEE";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String MANAGE_WORKSPACE_DETAILS = "MANAGE_WORKSPACE_DETAILS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String MANAGE_WORKSPACE_MATERIAL_PRODUCERS = "MANAGE_WORKSPACE_MATERIAL_PRODUCERS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.STUDY_GUIDER })
public static final String LIST_MATERIAL_WORKSPACE_MATERIALS = "LIST_MATERIAL_WORKSPACE_MATERIALS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ({ EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER })
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.TEACHER })
public static final String ACCESS_STUDENT_ANSWERS = "ACCESS_STUDENT_ANSWERS";
/* USERGROUPS */
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ({EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.STUDY_GUIDER })
public static final String LIST_USER_USERGROUPS = "LIST_USER_USERGROUPS";
// Assessment requests
@Scope (PermissionScope.WORKSPACE)
@DefaultWorkspacePermissionRoles({ WorkspaceRoleArchetype.STUDENT })
public static final String REQUEST_WORKSPACE_ASSESSMENT = "REQUEST_WORKSPACE_ASSESSMENT";
@Override
public List<String> listPermissions() {
return listPermissions(MuikkuPermissions.class);
}
@Override
public boolean containsPermission(String permission) {
return listPermissions().contains(permission);
}
@Override
public String getPermissionScope(String permission) throws NoSuchFieldException {
return getPermissionScope(MuikkuPermissions.class, permission);
}
@Override
public String[] getDefaultPseudoRoles(String permission) throws NoSuchFieldException {
return getDefaultPseudoRoles(MuikkuPermissions.class, permission);
}
@Override
public EnvironmentRoleArchetype[] getDefaultEnvironmentRoles(String permission) throws NoSuchFieldException {
return getDefaultEnvironmentRoles(MuikkuPermissions.class, permission);
}
@Override
public WorkspaceRoleArchetype[] getDefaultWorkspaceRoles(String permission) throws NoSuchFieldException {
return getDefaultWorkspaceRoles(MuikkuPermissions.class, permission);
}
}