Commit 86601d14 by Juho Juopperi

Predefined roles

1 parent 9c91723f
package fi.insomnia.bortal.enums;
import java.util.HashSet;
import java.util.Set;
public enum Role {
USER_BASE(true), // Logged in user
ADMIN_BASE(true),
SUPERADMIN(false) // Admin for this event
// Bean level access
ANONYMOUS, // Unauthenticated web user
USER_BASE, // JAAS access for logged in user
ADMIN_BASE(USER_BASE), // JAAS access to administrative beans
// Admin for the whole system (JAAS, boolean in User)
SUPERADMIN(false, ADMIN_BASE),
ORGANIZATION_ROOT(ADMIN_BASE), // E.g. Vectorama organisation admin
;
private boolean inDatabase;
private Set<Role> parents = new HashSet<Role>();
Role() {
}
/**
* Default (on-demand create time) parents for the role
*
* @param parent
*/
Role(Role... parent) {
for (Role role : parent) {
parents.add(role);
}
}
Role(boolean inDb) {
inDatabase = inDb;
/**
* Is the role stored in the database (default true) or is it a magic role
* like superadmin (stored as boolean in User).
*
* @param inDb
* stored in roles-table
* @param parent
* default (create time) parent roles
*/
Role(boolean inDb, Role... parent) {
this(parent);
this.inDatabase = inDb;
}
public boolean isInDatabase() {
return inDatabase;
}
/**
* Default parent roles (when creating role on first use)
*
* @return
*/
public Set<Role> getParents() {
return parents;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!