package fi.otavanopisto.muikku.plugins.announcer;
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.DefaultWorkspacePermissionRoles;
import fi.otavanopisto.muikku.security.MuikkuPermissionCollection;
import fi.otavanopisto.muikku.security.PermissionScope;
import fi.otavanopisto.security.Scope;
@ApplicationScoped
public class AnnouncerPermissions extends AbstractMuikkuPermissionCollection implements MuikkuPermissionCollection {
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } )
public static final String CREATE_ANNOUNCEMENT = "CREATE_ANNOUNCEMENT";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } )
@DefaultWorkspacePermissionRoles( { WorkspaceRoleArchetype.TEACHER } )
public static final String CREATE_WORKSPACE_ANNOUNCEMENT = "CREATE_WORKSPACE_ANNOUNCEMENT";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } )
public static final String UPDATE_ANNOUNCEMENT = "UPDATE_ANNOUNCEMENT";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } )
@DefaultWorkspacePermissionRoles( { WorkspaceRoleArchetype.TEACHER } )
public static final String UPDATE_WORKSPACE_ANNOUNCEMENT = "UPDATE_WORKSPACE_ANNOUNCEMENT";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } )
public static final String DELETE_ANNOUNCEMENT = "DELETE_ANNOUNCEMENT";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } )
@DefaultWorkspacePermissionRoles( { WorkspaceRoleArchetype.TEACHER } )
public static final String DELETE_WORKSPACE_ANNOUNCEMENT = "DELETE_WORKSPACE_ANNOUNCEMENT";
/**
* By default group announcements are shown only to group users, but
* with this permission roles may be permitted to list them too.
*/
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } )
public static final String LIST_ENVIRONMENT_GROUP_ANNOUNCEMENTS = "LIST_ENVIRONMENT_GROUP_ANNOUNCEMENTS";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } )
@DefaultWorkspacePermissionRoles( { WorkspaceRoleArchetype.TEACHER, WorkspaceRoleArchetype.STUDENT } )
public static final String LIST_WORKSPACE_ANNOUNCEMENTS = "LIST_WORKSPACE_ANNOUNCEMENTS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER } )
public static final String FIND_ANNOUNCEMENT = "FIND_ANNOUNCEMENT";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER, EnvironmentRoleArchetype.TEACHER } )
public static final String ANNOUNCER_TOOL = "ANNOUNCER_TOOL";
@Scope (PermissionScope.WORKSPACE)
@DefaultEnvironmentPermissionRoles ( { EnvironmentRoleArchetype.ADMINISTRATOR, EnvironmentRoleArchetype.MANAGER, EnvironmentRoleArchetype.STUDY_PROGRAMME_LEADER } )
@DefaultWorkspacePermissionRoles( {WorkspaceRoleArchetype.TEACHER } )
public static final String WORKSPACE_ANNOUNCER_TOOL = "WORKSPACE_ANNOUNCER_TOOL";
@Override
public List<String> listPermissions() {
return listPermissions(AnnouncerPermissions.class);
}
@Override
public boolean containsPermission(String permission) {
return listPermissions().contains(permission);
}
@Override
public String getPermissionScope(String permission) throws NoSuchFieldException {
return getPermissionScope(AnnouncerPermissions.class, permission);
}
@Override
public String[] getDefaultPseudoRoles(String permission) throws NoSuchFieldException {
return getDefaultPseudoRoles(AnnouncerPermissions.class, permission);
}
@Override
public EnvironmentRoleArchetype[] getDefaultEnvironmentRoles(String permission) throws NoSuchFieldException {
return getDefaultEnvironmentRoles(AnnouncerPermissions.class, permission);
}
@Override
public WorkspaceRoleArchetype[] getDefaultWorkspaceRoles(String permission) throws NoSuchFieldException {
return getDefaultWorkspaceRoles(AnnouncerPermissions.class, permission);
}
}