Commit 86601d14 by Juho Juopperi

Predefined roles

1 parent 9c91723f
package fi.insomnia.bortal.enums; package fi.insomnia.bortal.enums;
import java.util.HashSet;
import java.util.Set;
public enum Role { public enum Role {
USER_BASE(true), // Logged in user
ADMIN_BASE(true), // Bean level access
SUPERADMIN(false) // Admin for this event 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 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() { public boolean isInDatabase() {
return inDatabase; 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!