|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.basedb.core.BasicItem<D> net.sf.basedb.core.Key<RoleKeyData> net.sf.basedb.core.RoleKey
public class RoleKey
This class is used to represent a role key. A role key is, as the name suggests, a key that can be given to roles.
A BASE installation comes with a default set of role
keys, one for every type of item. The keys cannot be deleted
and no new ones can be created. The id of a role key for
an item can be found by calling SystemItems.getRoleKeyId(Item)
.
The permission given to a role is applied to all items of the type that the role key is valid for. The following example code will give all users the permission to create samples.
Role r = Role.getById(dbControl, Role.USER); RoleKey rk = RoleKey.getById(dbControl, SystemItems.getRoleKeyId(Item.SAMPLE)); rk.setPermission(r, Permission.CREATE); dbControl.commit();
Field Summary | |
---|---|
private static QueryRuntimeFilter |
RUNTIME_FILTER
This filter will only return items if the logged in user has generic read permission to roles. |
static Item |
TYPE
The type of item represented by this class. |
Fields inherited from interface net.sf.basedb.core.Nameable |
---|
MAX_DESCRIPTION_LENGTH, MAX_NAME_LENGTH |
Constructor Summary | |
---|---|
RoleKey(RoleKeyData roleKeyData)
|
Method Summary | |
---|---|
static RoleKey |
getById(DbControl dc,
int id)
Get a RoleKey item when you know the ID. |
static RoleKey |
getByItemType(DbControl dc,
Item itemType)
Get a RoleKey item when you know the Item type. |
String |
getDescription()
Get the description for the item. |
Item |
getItemType()
Get the Item type for the type of items this role key applies to. |
String |
getName()
Get the name of the item. |
Set<Permission> |
getPermissions(Role role)
Get the permissions for a role. |
(package private) PluginPermission |
getPluginPermissions()
|
static ItemQuery<RoleKey> |
getQuery()
Get a query object configured to retrieve role keys. |
Item |
getType()
Get the type of item represented by the object. |
(package private) void |
initPermissions(int granted,
int denied)
CREATE and DELETE permissions are always denied. |
boolean |
isUsed()
Always return TRUE. |
void |
setDescription(String description)
Set the description for the item. |
void |
setName(String name)
Set the name of the item. |
void |
setPermissions(Role role,
Set<Permission> permissions)
Grant permissions to a role. |
Methods inherited from class net.sf.basedb.core.BasicItem |
---|
addUsingItems, addUsingItems, checkPermission, equals, getData, getDbControl, getId, getPermissions, getSessionControl, getUsingItems, getVersion, hashCode, hasPermission, isDetached, isInDatabase, onAfterCommit, onAfterInsert, onBeforeCommit, onRollback, setDbControl, setProjectDefaults, toString, toTransferable, validate |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface net.sf.basedb.core.Identifiable |
---|
getId, getVersion |
Methods inherited from interface net.sf.basedb.core.AccessControlled |
---|
checkPermission, getPermissions, hasPermission |
Field Detail |
---|
public static final Item TYPE
Item.ROLEKEY
,
getType()
private static final QueryRuntimeFilter RUNTIME_FILTER
Constructor Detail |
---|
RoleKey(RoleKeyData roleKeyData)
Method Detail |
---|
public static RoleKey getById(DbControl dc, int id) throws ItemNotFoundException, PermissionDeniedException, BaseException
RoleKey
item when you know the ID.
The ID of a role key can be found by calling
SystemItems.getRoleKeyId(Item)
.
dc
- The DbControl
which will be used for
permission checking and database access.id
- The ID of the item to load
RoleKey
item
ItemNotFoundException
- If an item with the specified
ID is not found
PermissionDeniedException
- If the logged in user doesn't
have Permission.READ
permission to the item
BaseException
- If there is another errorpublic static RoleKey getByItemType(DbControl dc, Item itemType) throws ItemNotFoundException, PermissionDeniedException, BaseException
RoleKey
item when you know the Item
type.
dc
- The DbControl
which will be used for
permission checking and database access.itemType
- The item type of the role key to load
RoleKey
item
ItemNotFoundException
- If a role key for the specified
item type is not found
PermissionDeniedException
- If the logged in user doesn't
have Permission.READ
permission to the item
BaseException
- If there is another errorpublic static ItemQuery<RoleKey> getQuery()
ItemQuery
objectpublic Item getType()
Identifiable
Item
enumeration.
getType
in interface Identifiable
public String getName()
Nameable
getName
in interface Nameable
String
with the name of the itempublic void setName(String name) throws PermissionDeniedException, InvalidDataException
Nameable
Nameable.MAX_NAME_LENGTH
constant.
setName
in interface Nameable
name
- The new name for the item
PermissionDeniedException
- If the logged in user doesn't
have write permission
InvalidDataException
- If the name is null or longer
than specified by the Nameable.MAX_NAME_LENGTH
constantpublic String getDescription()
Nameable
getDescription
in interface Nameable
String
with a description of the itempublic void setDescription(String description) throws PermissionDeniedException, InvalidDataException
Nameable
Nameable.MAX_DESCRIPTION_LENGTH
constant.
setDescription
in interface Nameable
description
- The new description for the item
PermissionDeniedException
- If the logged in user doesn't
have write permission
InvalidDataException
- If the description longer
than specified by the Nameable.MAX_DESCRIPTION_LENGTH
constantpublic boolean isUsed() throws BaseException
isUsed
in class BasicItem<RoleKeyData>
BaseException
- If not able to tell if item is used or not.BasicItem.getUsingItems()
void initPermissions(int granted, int denied) throws BaseException
Role
.
initPermissions
in class BasicItem<RoleKeyData>
granted
- Permissions that have been granted by the subclassdenied
- Permissions that have been denied by the subclass
BaseException
- If the permissions couldn't be initialisedPluginPermission getPluginPermissions()
getPluginPermissions
in class BasicItem<RoleKeyData>
public Item getItemType()
Item
type for the type of items this role key applies to.
Item
objectpublic void setPermissions(Role role, Set<Permission> permissions) throws PermissionDeniedException, InvalidDataException
Permission.DENIED
is
set it will override permissions gained from other keys. Ie.
if a user has a role key with Permission.DENIED
it takes precedence
over all other permissions. Use an empty Set
or null
to remove all permissions for the role.
role
- The Role
permissions
- The permissions to grant
PermissionDeniedException
- If the logged in user doesn't have
Permission.WRITE
permission for the role key
InvalidDataException
- If the role is nullPermission
public Set<Permission> getPermissions(Role role) throws InvalidDataException
role
- The Role
for which we want to get the permission
EnumSet
containing the granted permissions, or an
empty set if no permissions have been granted
InvalidDataException
- If the role is nullPermission
|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |