package fi.otavanopisto.muikku.plugins.forum; 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.muikku.security.AbstractMuikkuPermissionCollection; import fi.otavanopisto.muikku.security.DefaultEnvironmentPermissionRoles; import fi.otavanopisto.muikku.security.DefaultPermissionRoles; import fi.otavanopisto.muikku.security.DefaultWorkspacePermissionRoles; import fi.otavanopisto.muikku.security.MuikkuPermissionCollection; import fi.otavanopisto.muikku.security.PermissionScope; import fi.otavanopisto.security.Scope; @ApplicationScoped public class ForumResourcePermissionCollection extends AbstractMuikkuPermissionCollection implements MuikkuPermissionCollection { /** * Forum Area Groups */ @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER } ) public static final String FORUM_CREATEFORUMAREAGROUP = "FORUM_CREATEFORUMAREAGROUP"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ( EVERYONE ) public static final String FORUM_FIND_FORUMAREAGROUP = "FORUM_FIND_FORUMAREAGROUP"; @Scope (PermissionScope.ENVIRONMENT) @DefaultPermissionRoles ( EVERYONE ) public static final String FORUM_LIST_FORUMAREAGROUPS = "FORUM_LIST_FORUMAREAGROUPS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR } ) public static final String FORUM_DELETE_FORUMAREAGROUP = "FORUM_DELETE_FORUMAREAGROUP"; /** * Forum Area rights */ @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER } ) public static final String FORUM_CREATEENVIRONMENTFORUM = "FORUM_CREATEENVIRONMENTFORUM"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER } ) public static final String FORUM_UPDATEENVIRONMENTFORUM = "FORUM_UPDATEENVIRONMENTFORUM"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.STUDENT } ) public static final String FORUM_ACCESSENVIRONMENTFORUM = "FORUM_ACCESSENVIRONMENTFORUM"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } ) public static final String FORUM_DELETEENVIRONMENTFORUM = "FORUM_DELETEENVIRONMENTFORUM"; /** * Workspace forum Area rights */ @Scope (PermissionScope.WORKSPACE) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } ) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER, WorkspaceRoleArchetype.STUDENT }) public static final String FORUM_ACCESSWORKSPACEFORUMS = "FORUM_ACCESSWORKSPACEFORUMS"; @Scope (PermissionScope.WORKSPACE) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER } ) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER }) public static final String FORUM_CREATEWORKSPACEFORUM = "FORUM_CREATEWORKSPACEFORUM"; @Scope (PermissionScope.WORKSPACE) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER } ) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER }) public static final String FORUM_UPDATEWORKSPACEFORUM = "FORUM_UPDATEWORKSPACEFORUM"; @Scope (PermissionScope.WORKSPACE) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER, WorkspaceRoleArchetype.STUDENT } ) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } ) public static final String FORUM_LIST_WORKSPACE_FORUM = "FORUM_LIST_WORKSPACE_FORUM"; @Scope (PermissionScope.WORKSPACE) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER } ) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.STUDY_GUIDER } ) public static final String FORUM_FINDWORKSPACE_USERSTATISTICS = "FORUM_FINDWORKSPACE_USERSTATISTICS"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR } ) public static final String FORUM_DELETEWORKSPACEFORUM = "FORUM_DELETEWORKSPACEFORUM"; /** * Forum Message related rights */ @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.STUDENT } ) public static final String FORUM_READ_ENVIRONMENT_MESSAGES = "FORUM_READ_ENVIRONMENT_MESSAGES"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.STUDENT } ) public static final String FORUM_WRITE_ENVIRONMENT_MESSAGES = "FORUM_WRITE_ENVIRONMENT_MESSAGES"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } ) public static final String FORUM_DELETE_ENVIRONMENT_MESSAGES = "FORUM_DELETE_ENVIRONMENT_MESSAGES"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } ) public static final String FORUM_EDIT_ENVIRONMENT_MESSAGES = "FORUM_EDIT_ENVIRONMENT_MESSAGES"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER } ) public static final String FORUM_LOCK_OR_STICKIFY_MESSAGES = "FORUM_LOCK_OR_STICKIFY_MESSAGES"; @Scope (PermissionScope.ENVIRONMENT) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER } ) public static final String FORUM_SHOW_FULL_NAMES = "FORUM_SHOW_FULL_NAMES"; // Workspace forum messages @Scope (PermissionScope.WORKSPACE) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER, WorkspaceRoleArchetype.STUDENT } ) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.STUDENT } ) public static final String FORUM_READ_WORKSPACE_MESSAGES = "FORUM_READ_WORKSPACE_MESSAGES"; @Scope (PermissionScope.WORKSPACE) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER, WorkspaceRoleArchetype.STUDENT } ) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER, EnvironmentRoleArchetype.STUDENT } ) public static final String FORUM_WRITE_WORKSPACE_MESSAGES = "FORUM_WRITE_WORKSPACE_MESSAGES"; @Scope (PermissionScope.WORKSPACE) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER } ) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } ) public static final String FORUM_DELETE_WORKSPACE_MESSAGES = "FORUM_DELETE_WORKSPACE_MESSAGES"; @Scope (PermissionScope.WORKSPACE) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER } ) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } ) public static final String FORUM_EDIT_WORKSPACE_MESSAGES = "FORUM_EDIT_WORKSPACE_MESSAGES"; @Scope (PermissionScope.WORKSPACE) @DefaultWorkspacePermissionRoles ( { WorkspaceRoleArchetype.TEACHER } ) @DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } ) public static final String FORUM_LOCK_OR_STICKIFY_WORKSPACE_MESSAGES = "FORUM_LOCK_OR_STICKIFY_WORKSPACE_MESSAGES"; @Override public List<String> listPermissions() { return listPermissions(ForumResourcePermissionCollection.class); } @Override public boolean containsPermission(String permission) { return listPermissions().contains(permission); } @Override public String getPermissionScope(String permission) throws NoSuchFieldException { return getPermissionScope(ForumResourcePermissionCollection.class, permission); } @Override public String[] getDefaultPseudoRoles(String permission) throws NoSuchFieldException { return getDefaultPseudoRoles(ForumResourcePermissionCollection.class, permission); } @Override public EnvironmentRoleArchetype[] getDefaultEnvironmentRoles(String permission) throws NoSuchFieldException { return getDefaultEnvironmentRoles(ForumResourcePermissionCollection.class, permission); } @Override public WorkspaceRoleArchetype[] getDefaultWorkspaceRoles(String permission) throws NoSuchFieldException { return getDefaultWorkspaceRoles(ForumResourcePermissionCollection.class, permission); } }