|
Last update: 2011-06-23 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.proteios.core.MultiPermissions
public class MultiPermissions
This is a helper class that is very useful when you have a collection of
Shareable items and want to modify some permissions on
all of them without affecting the rest of the permissions.
For example it is possible to add write permission for a new user while preserving the permissions already given to other user, groups and projects. This works even if the logged in user doesn't have read permission to all other user, groups and projects the items have been shared to.
It is a four-step procedure:
MultiPermissions(Collection)
constructor.
updateKeys(DbControl) method to generate the new keys
and assign those to the items
| Constructor Summary | |
|---|---|
MultiPermissions(Collection<? extends SharedItem> itemsToShare)
Create a new MultiPermissions object and feed it the
collection of Shareable items that you want to modify. |
|
| Method Summary | |
|---|---|
void |
addPermissions(Group group,
Set<Permission> permissions)
Grant permissions to a group, keeping those that have already been set. |
void |
addPermissions(Project project,
Set<Permission> permissions)
Grant permissions to a project, keeping those that have already been set. |
void |
addPermissions(User user,
Set<Permission> permissions)
Grant permissions to a user, keeping those that have already been set. |
static boolean |
allSame(Collection<Set<Permission>> permissions)
Check if a collection of Set:s all contain
the same permissions. |
ItemQuery<Group> |
getGroups()
Get a query that returns all groups appearing in at least one of the item keys. |
Map<ItemKey,Set<Permission>> |
getPermissions(Group group)
Get the permissions for a group. |
Map<ProjectKey,Set<Permission>> |
getPermissions(Project project)
Get the permissions for a project. |
Map<ItemKey,Set<Permission>> |
getPermissions(User user)
Get the permissions for a user. |
ItemQuery<Project> |
getProjects()
Get a query that returns all projects appearing in at least one of the project keys. |
ItemQuery<User> |
getUsers()
Get a query that returns all users appearing in at least one of the item keys. |
void |
setPermissions(Group group,
Set<Permission> permissions)
Grant permissions to a group. |
void |
setPermissions(Project project,
Set<Permission> permissions)
Grant permissions to a project. |
void |
setPermissions(User user,
Set<Permission> permissions)
Grant permissions to a user. |
void |
updateKeys(DbControl dc)
Generate the new keys and update all items with the new keys. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public MultiPermissions(Collection<? extends SharedItem> itemsToShare)
throws InvalidDataException,
BaseException
MultiPermissions object and feed it the
collection of Shareable items that you want to modify.
itemsToShare - The collection of items
InvalidDataException - If the collection is null or empty
BaseException - If there is another error| Method Detail |
|---|
public static boolean allSame(Collection<Set<Permission>> permissions)
Set:s all contain
the same permissions.
permissions - The collection of sets to check
Permission
public void setPermissions(User user,
Set<Permission> permissions)
throws InvalidDataException
Set or null
to remove all permissions for the user.
user - The Userpermissions - The permissions to grant
InvalidDataException - If the user is nullPermission
public void addPermissions(User user,
Set<Permission> permissions)
throws InvalidDataException
user - The Userpermissions - The permissions to grant
InvalidDataException - If the user is nullPermission
public Map<ItemKey,Set<Permission>> getPermissions(User user)
throws InvalidDataException
ItemKey found among the items passed
to the constructor, including the null item key if present. The value
of each entry is a Set containing the granted permissions.
user - The User for which we want to get the permission
Map containing a Set of
the granted permissions for each ItemKey
InvalidDataException - If the user is nullPermission
public void setPermissions(Group group,
Set<Permission> permissions)
throws InvalidDataException
Set or null
to remove all permissions for the group.
group - The Grouppermissions - The permissions to grant
InvalidDataException - If the group is nullPermission
public void addPermissions(Group group,
Set<Permission> permissions)
throws InvalidDataException
group - The Grouppermissions - The permissions to grant
InvalidDataException - If the group is nullPermission
public Map<ItemKey,Set<Permission>> getPermissions(Group group)
throws InvalidDataException
ItemKey found among the items passed
to the constructor, including the null item key if present. The value
of each entry is a Set containing the granted permissions.
group - The Group for which we want to get the permission
Map containing a Set of
the granted permissions for each ItemKey
InvalidDataException - If the group is nullPermission
public void setPermissions(Project project,
Set<Permission> permissions)
throws PermissionDeniedException,
InvalidDataException
Set or null
to remove all permissions for the project.
project - The Projectpermissions - The permissions to grant
InvalidDataException - If the project is null
PermissionDeniedException - If the logged in user's doesn't have
Permission.USE permission to the projectPermission
public void addPermissions(Project project,
Set<Permission> permissions)
throws PermissionDeniedException,
InvalidDataException
project - The Projectpermissions - The permissions to grant
InvalidDataException - If the project is null
PermissionDeniedException - If the logged in user's doesn't have
Permission.USE permission to the projectPermission
public Map<ProjectKey,Set<Permission>> getPermissions(Project project)
throws InvalidDataException
ProjectKey found among the items passed
to the constructor, including the null project key if present. The value
of each entry is a Set containing the granted permissions.
project - The Project for which we want to get the permission
Map containing a Set of
the granted permissions for each ProjectKey
InvalidDataException - If the project is nullPermissionpublic ItemQuery<User> getUsers()
public ItemQuery<Group> getGroups()
public ItemQuery<Project> getProjects()
public void updateKeys(DbControl dc)
throws PermissionDeniedException,
BaseException
dc - The DbControl object to use for database access
PermissionDeniedException - If the logged in user doesn't have
Permission.SET_PERMISSION permission on all items
BaseException - If there is another error
|
Last update: 2011-06-23 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||