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 UserPermissions extends AbstractPyramusPermissionCollection implements PyramusPermissionCollection {
@Scope (PermissionScope.USER_OWNER)
public static final String USER_OWNER = "USER_OWNER";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR })
public static final String CREATE_STAFFMEMBER = "CREATE_STAFFMEMBER";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, TRUSTED_SYSTEM })
public static final String LIST_STAFFMEMBERS = "LIST_STAFFMEMBERS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, TRUSTED_SYSTEM })
public static final String FIND_STAFFMEMBER = "FIND_STAFFMEMBER";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER, TRUSTED_SYSTEM })
public static final String LIST_STAFFMEMBER_EMAILS = "LIST_STAFFMEMBER_EMAILS";
/**
* UserVariable
*/
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String CREATE_USERVARIABLE = "CREATE_USERVARIABLE";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String FIND_USERVARIABLE = "FIND_USERVARIABLE";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String LIST_USERVARIABLES = "LIST_USERVARIABLES";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String UPDATE_USERVARIABLE = "UPDATE_USERVARIABLE";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String UPDATE_USERVARIABLES = "UPDATE_USERVARIABLES";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR })
public static final String DELETE_USERVARIABLE = "DELETE_USERVARIABLE";
/**
* UserVariableKey
*/
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String CREATE_USERVARIABLEKEY = "CREATE_USERVARIABLEKEY";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String FIND_USERVARIABLEKEY = "FIND_USERVARIABLEKEY";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String LIST_USERVARIABLEKEYS = "LIST_USERVARIABLEKEYS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String UPDATE_USERVARIABLEKEY = "UPDATE_USERVARIABLEKEY";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR })
public static final String DELETE_USERVARIABLEKEY = "DELETE_USERVARIABLEKEY";
/**
* staff member addresses
*/
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String CREATE_STAFFMEMBERADDRESS = "CREATE_STAFFMEMBERADDRESS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String LIST_STAFFMEMBERADDRESSES = "LIST_STAFFMEMBERADDRESSES";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String FIND_STAFFMEMBERADDRESS = "FIND_STAFFMEMBERADDRESS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String UPDATE_STAFFMEMBERADDRESS = "UPDATE_STAFFMEMBERADDRESS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR })
public static final String DELETE_STAFFMEMBERADDRESS = "DELETE_STAFFMEMBERADDRESS";
/*
* Phone numbers
*/
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String CREATE_STAFFMEMBERPHONENUMBER = "CREATE_STAFFMEMBERPHONENUMBER";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String LIST_STAFFMEMBERPHONENUMBERS = "LIST_STAFFMEMBERPHONENUMBERS";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String FIND_STAFFMEMBERPHONENUMBER = "FIND_STAFFMEMBERPHONENUMBER";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR, MANAGER, STUDY_PROGRAMME_LEADER })
public static final String UPDATE_STAFFMEMBERPHONENUMBER = "UPDATE_STAFFMEMBERPHONENUMBER";
@Scope (PermissionScope.ENVIRONMENT)
@DefaultPermissionRoles ({ ADMINISTRATOR })
public static final String DELETE_STAFFMEMBERPHONENUMBER = "DELETE_STAFFMEMBERPHONENUMBER";
@Override
public List<String> listPermissions() {
return super.listPermissions(UserPermissions.class);
}
@Override
public boolean containsPermission(String permission) {
return listPermissions().contains(permission);
}
@Override
public String getPermissionScope(String permission) throws NoSuchFieldException {
return super.getPermissionScope(UserPermissions.class, permission);
}
@Override
public String[] getDefaultRoles(String permission) throws NoSuchFieldException {
return super.getDefaultRoles(UserPermissions.class, permission);
}
@Override
public PermissionFeature[] listPermissionFeatures(String permission) throws NoSuchFieldException, SecurityException {
return super.listPermissionFeatures(UserPermissions.class, permission);
}
}