Last update: 2011-06-23

org.proteios.core
Class RoleKey

java.lang.Object
  extended by org.proteios.core.BasicItem<D>
      extended by org.proteios.core.Key<RoleKeyData>
          extended by org.proteios.core.RoleKey
All Implemented Interfaces:
AccessControlled, Identifiable, Nameable

public class RoleKey
extends Key<RoleKeyData>
implements Nameable

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 Proteios 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();

Version:
2.0
Author:
Nicklas
Last modified
$Date: 2009-04-09 08:48:11 +0200 (Thu, 09 Apr 2009) $

Field Summary
static Item TYPE
          The type of item represented by this class.
 
Fields inherited from interface org.proteios.core.Nameable
MAX_DESCRIPTION_LENGTH, MAX_NAME_LENGTH
 
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.
static ItemQuery<RoleKey> getQuery()
          Get a query object configured to retrieve role keys.
 Item getType()
          Get the type of item represented by the object.
 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 org.proteios.core.BasicItem
checkPermission, equals, getDbControl, getId, getPermissions, getSessionControl, getVersion, hashCode, hasPermission, isDetached, isInDatabase, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.proteios.core.Identifiable
getId, getVersion
 
Methods inherited from interface org.proteios.core.AccessControlled
checkPermission, hasPermission
 

Field Detail

TYPE

public static final Item TYPE
The type of item represented by this class.

See Also:
Item.ROLEKEY, getType()
Method Detail

getById

public static RoleKey getById(DbControl dc,
                              int id)
                       throws ItemNotFoundException,
                              PermissionDeniedException,
                              BaseException
Get a RoleKey item when you know the ID. The ID of a role key can be found by calling SystemItems.getRoleKeyId(Item).

Parameters:
dc - The DbControl which will be used for permission checking and database access.
id - The ID of the item to load
Returns:
The RoleKey item
Throws:
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 error

getByItemType

public static RoleKey getByItemType(DbControl dc,
                                    Item itemType)
                             throws ItemNotFoundException,
                                    PermissionDeniedException,
                                    BaseException
Get a RoleKey item when you know the Item type.

Parameters:
dc - The DbControl which will be used for permission checking and database access.
itemType - The item type of the role key to load
Returns:
The RoleKey item
Throws:
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 error

getQuery

public static ItemQuery<RoleKey> getQuery()
Get a query object configured to retrieve role keys. If the logged in user doesn't have generic permission to roles, no role keys are returned.

Returns:
An ItemQuery object

getType

public Item getType()
Description copied from interface: Identifiable
Get the type of item represented by the object. The returned value is one of the values defined in the Item enumeration.

Specified by:
getType in interface Identifiable
Returns:
A value indicating the type of item

getName

public String getName()
Description copied from interface: Nameable
Get the name of the item.

Specified by:
getName in interface Nameable
Returns:
A String with the name of the item

setName

public void setName(String name)
             throws PermissionDeniedException,
                    InvalidDataException
Description copied from interface: Nameable
Set the name of the item. The name cannot be null and mustn't be longer than the value specified by the Nameable.MAX_NAME_LENGTH constant.

Specified by:
setName in interface Nameable
Parameters:
name - The new name for the item
Throws:
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 constant

getDescription

public String getDescription()
Description copied from interface: Nameable
Get the description for the item.

Specified by:
getDescription in interface Nameable
Returns:
A String with a description of the item

setDescription

public void setDescription(String description)
                    throws PermissionDeniedException,
                           InvalidDataException
Description copied from interface: Nameable
Set the description for the item. The description can be null but mustn't be longer than the value specified by the Nameable.MAX_DESCRIPTION_LENGTH constant.

Specified by:
setDescription in interface Nameable
Parameters:
description - The new description for the item
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
InvalidDataException - If the description longer than specified by the Nameable.MAX_DESCRIPTION_LENGTH constant

isUsed

public boolean isUsed()
               throws BaseException
Always return TRUE. All role keys are system items and cannot be deleted.

Specified by:
isUsed in class BasicItem<RoleKeyData>
Returns:
TRUE if this item is used, FALSE otherwise
Throws:
BaseException

getItemType

public Item getItemType()
Get the Item type for the type of items this role key applies to.

Returns:
An Item object

setPermissions

public void setPermissions(Role role,
                           Set<Permission> permissions)
                    throws PermissionDeniedException,
                           InvalidDataException
Grant permissions to a role. If 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.

Parameters:
role - The Role
permissions - The permissions to grant
Throws:
PermissionDeniedException - If the logged in user doesn't have Permission.WRITE permission for the role key
InvalidDataException - If the role is null
See Also:
Permission

getPermissions

public Set<Permission> getPermissions(Role role)
                               throws InvalidDataException
Get the permissions for a role.

Parameters:
role - The Role for which we want to get the permission
Returns:
An EnumSet containing the granted permissions, or an empty set if no permissions have been granted
Throws:
InvalidDataException - If the role is null
See Also:
Permission

Last update: 2011-06-23