com.atlassian.confluence.security.administrators
Class AbstractEditPermissionsAdministrator

java.lang.Object
  extended by com.atlassian.confluence.security.administrators.DefaultPermissionsAdministrator
      extended by com.atlassian.confluence.security.administrators.AbstractEditPermissionsAdministrator
All Implemented Interfaces:
EditPermissionsAdministrator, PermissionsAdministrator
Direct Known Subclasses:
EditGlobalPermissionsAdministrator, EditSpacePermissionsAdministrator

public abstract class AbstractEditPermissionsAdministrator
extends DefaultPermissionsAdministrator
implements EditPermissionsAdministrator

Contains all the common functionality of the global and space edit permissions administrators


Nested Class Summary
 
Nested classes/interfaces inherited from class com.atlassian.confluence.security.administrators.DefaultPermissionsAdministrator
DefaultPermissionsAdministrator.AnonymousPermissionRow, DefaultPermissionsAdministrator.GroupPermissionRow, DefaultPermissionsAdministrator.UserPermissionRow
 
Field Summary
static String PARAMETER_PREFIX
           
protected  com.atlassian.user.User remoteUser
           
protected  SearchEntitiesManager searchEntitiesManager
           
protected  SetSpacePermissionChecker setSpacePermissionChecker
           
 
Fields inherited from class com.atlassian.confluence.security.administrators.DefaultPermissionsAdministrator
permissions, spacePermissionManager
 
Fields inherited from interface com.atlassian.confluence.security.administrators.EditPermissionsAdministrator
MAX_ENTRIES
 
Constructor Summary
protected AbstractEditPermissionsAdministrator(SpacePermissionManager spacePermissionManager, PermissionResolver permissionResolver, SetSpacePermissionChecker setSpacePermissionChecker, SearchEntitiesManager searchEntitiesManager, SettingsManager settingsManager)
           
 
Method Summary
 void addAllPermissions(Set<SpacePermission> permissionsToAdd)
          Adds the given set of permissions if the current user has permission to do so, otherwise does nothing silently.
 List<String> addGuardPermissionToGroups(List<String> groupNames, UserAccessor userAccessor, String guardPermission)
          Add the guard permissions for each group if they exist
 List<String> addGuardPermissionToUsers(List<String> userNames, UserAccessor userAccessor, String guardPermission)
          Add the guard permissions for each user if they exist
 void applyPermissionChanges(Collection<SpacePermission> oldPermissions, Collection<SpacePermission> newPermissions)
          Given the old permissions and new permissions, apply necessary permission changes to make old permissions the same as new permissions
protected  Collection<SpacePermission> buildPermissionsFromWebForm(Space space, Map formParameters, String parameterQualifier)
          Private implementation that doesn't check to ensure space key is null
protected  boolean canAddPermission(SpacePermission permission)
          Used by both space and global permission administrators to determine if the user can add the permission.
 void denyAnonymousPermissions(Collection<SpacePermission> currentPermissions, Set<SpacePermission> permissionsToAdd, Set<SpacePermission> permissionsToRemove)
          Removes all anonymous permissions
 int getNumOfGroupEntries()
          Returns the number of group entries that are to be added.
 int getNumOfUserEntries()
          Returns the number of user entries that are to be added.
 boolean isGroupsToAddEmpty(Map requestParams)
          Validate if the number of groups to add is empty Validation only occurs if the group add button is pressed
 boolean isGroupsToAddTooLarge(Map requestParams)
          Validate if the number of groups to add is greater than maximum allowed.
 boolean isRemoveAllAdminPermissions(Set<SpacePermission> permissionsToRemove)
          Returns if all admin permissions would be removed by the request.
 boolean isUsersToAddEmpty(Map requestParams)
          Validate if the number of users to add is empty Validation only occurs if the user add button is pressed
 boolean isUsersToAddTooLarge(Map requestParams)
          Validate if the number of users to add is greater than maximum allowed.
 void removeAllPermissions(Set<SpacePermission> permissionsToRemove)
          Removes the given set of permissions if the current user has permission to do so, otherwise does nothing silently.
 void removePermission(SpacePermission permissionToRemove)
          Removes the given permission if the current user has permission to do so, otherwise does nothing silently.
 void setGroupsToAdd(List<String> groupsToAdd)
          Set the groups to add from the UI
 void setRemoteUser(com.atlassian.user.User remoteUser)
          The current logged in user
 void setUsersToAdd(List<String> usersToAdd)
          Set the users to add from the UI
 void splitPermissions(Collection<SpacePermission> existingPermissions, Collection<SpacePermission> initialPermissions, Collection<SpacePermission> requestedPermissions, Set<SpacePermission> permissionsToAdd, Set<SpacePermission> permissionsToRemove)
          Determine which permissions need to be added or removed.
 
Methods inherited from class com.atlassian.confluence.security.administrators.DefaultPermissionsAdministrator
buildAnonymousPermissionRow, buildGroupPermissionTable, buildUserPermissionTable, getPermissions, resetPermissions
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.atlassian.confluence.security.administrators.EditPermissionsAdministrator
addPermission, buildPermissionsFromWebForm, createGroupGuardPermission, createUserGuardPermission, getAdministrativePermissionType, getInitialPermissionsFromForm, getRequestedPermissionsFromForm
 
Methods inherited from interface com.atlassian.confluence.security.administrators.PermissionsAdministrator
buildAnonymousPermissionRow, buildGroupPermissionTable, buildUserPermissionTable, getPermissions
 

Field Detail

setSpacePermissionChecker

protected final SetSpacePermissionChecker setSpacePermissionChecker

searchEntitiesManager

protected final SearchEntitiesManager searchEntitiesManager

remoteUser

protected com.atlassian.user.User remoteUser

PARAMETER_PREFIX

public static final String PARAMETER_PREFIX
See Also:
Constant Field Values
Constructor Detail

AbstractEditPermissionsAdministrator

protected AbstractEditPermissionsAdministrator(SpacePermissionManager spacePermissionManager,
                                               PermissionResolver permissionResolver,
                                               SetSpacePermissionChecker setSpacePermissionChecker,
                                               SearchEntitiesManager searchEntitiesManager,
                                               SettingsManager settingsManager)
Method Detail

isGroupsToAddTooLarge

public boolean isGroupsToAddTooLarge(Map requestParams)
Validate if the number of groups to add is greater than maximum allowed. Validation only occurs if the group add button is pressed

Specified by:
isGroupsToAddTooLarge in interface EditPermissionsAdministrator
Parameters:
requestParams - params from the request
Returns:
true if limit is exceeded.

isGroupsToAddEmpty

public boolean isGroupsToAddEmpty(Map requestParams)
Validate if the number of groups to add is empty Validation only occurs if the group add button is pressed

Specified by:
isGroupsToAddEmpty in interface EditPermissionsAdministrator
Parameters:
requestParams - params from the request
Returns:
true if groups are empty

getNumOfGroupEntries

public int getNumOfGroupEntries()
Returns the number of group entries that are to be added.

Specified by:
getNumOfGroupEntries in interface EditPermissionsAdministrator
Returns:
the number of group entries that are to be added

isUsersToAddTooLarge

public boolean isUsersToAddTooLarge(Map requestParams)
Validate if the number of users to add is greater than maximum allowed. Validation only occurs if the user add button is pressed

Specified by:
isUsersToAddTooLarge in interface EditPermissionsAdministrator
Parameters:
requestParams - params from the request
Returns:
true if limit is exceeded.

isUsersToAddEmpty

public boolean isUsersToAddEmpty(Map requestParams)
Validate if the number of users to add is empty Validation only occurs if the user add button is pressed

Specified by:
isUsersToAddEmpty in interface EditPermissionsAdministrator
Parameters:
requestParams - params from the request
Returns:
true if users are empty

getNumOfUserEntries

public int getNumOfUserEntries()
Returns the number of user entries that are to be added.

Specified by:
getNumOfUserEntries in interface EditPermissionsAdministrator
Returns:
the number of user entries that are to be added

splitPermissions

public void splitPermissions(Collection<SpacePermission> existingPermissions,
                             Collection<SpacePermission> initialPermissions,
                             Collection<SpacePermission> requestedPermissions,
                             Set<SpacePermission> permissionsToAdd,
                             Set<SpacePermission> permissionsToRemove)
Determine which permissions need to be added or removed. Given a collection of how permissions are now (existingPermissions) and how you wish the permissions to be (newPermissions), this will populate the collections permissionsToAdd and permissionsToRemove with those permissions that you will need to add or remove to reach the desired state.

Specified by:
splitPermissions in interface EditPermissionsAdministrator
Parameters:
existingPermissions - the currently existing permissions
initialPermissions - the permissions the user was initially shown
requestedPermissions - the new state we want these permissions to be in
permissionsToAdd - collection into which permissions that need adding will be placed
permissionsToRemove - collection into which permissions that need removing will be placed

buildPermissionsFromWebForm

protected Collection<SpacePermission> buildPermissionsFromWebForm(Space space,
                                                                  Map formParameters,
                                                                  String parameterQualifier)
Private implementation that doesn't check to ensure space key is null


isRemoveAllAdminPermissions

public boolean isRemoveAllAdminPermissions(Set<SpacePermission> permissionsToRemove)
Returns if all admin permissions would be removed by the request.

Specified by:
isRemoveAllAdminPermissions in interface EditPermissionsAdministrator
Parameters:
permissionsToRemove - - permissions to be removed
Returns:
true if all admin permissions would be removed by the request

denyAnonymousPermissions

public void denyAnonymousPermissions(Collection<SpacePermission> currentPermissions,
                                     Set<SpacePermission> permissionsToAdd,
                                     Set<SpacePermission> permissionsToRemove)
Removes all anonymous permissions

Specified by:
denyAnonymousPermissions in interface EditPermissionsAdministrator
Parameters:
currentPermissions - - current state of the permissions
permissionsToAdd - - permissions to be added
permissionsToRemove - - permissions to be removed

addAllPermissions

public void addAllPermissions(Set<SpacePermission> permissionsToAdd)
Adds the given set of permissions if the current user has permission to do so, otherwise does nothing silently.

Specified by:
addAllPermissions in interface EditPermissionsAdministrator
Parameters:
permissionsToAdd - the set of permissions you want rid of.

removeAllPermissions

public void removeAllPermissions(Set<SpacePermission> permissionsToRemove)
Removes the given set of permissions if the current user has permission to do so, otherwise does nothing silently.

Specified by:
removeAllPermissions in interface EditPermissionsAdministrator
Parameters:
permissionsToRemove - the permission you want rid of.

canAddPermission

protected boolean canAddPermission(SpacePermission permission)
Used by both space and global permission administrators to determine if the user can add the permission. The criteria to be met are: - User has the right to add the permission - permission does not exist already. - permission is a valid anonymous permission.

Parameters:
permission - permission to be added
Returns:
true if the permission can be added.

removePermission

public void removePermission(SpacePermission permissionToRemove)
Removes the given permission if the current user has permission to do so, otherwise does nothing silently.

Specified by:
removePermission in interface EditPermissionsAdministrator
Parameters:
permissionToRemove - the permission you want rid of.

addGuardPermissionToUsers

public List<String> addGuardPermissionToUsers(List<String> userNames,
                                              UserAccessor userAccessor,
                                              String guardPermission)
Add the guard permissions for each user if they exist

Specified by:
addGuardPermissionToUsers in interface EditPermissionsAdministrator
Parameters:
userNames - - names of the users to be added
userAccessor - - user accessor
guardPermission - - the name of the guard permission to add
Returns:
false if an error occurred.

addGuardPermissionToGroups

public List<String> addGuardPermissionToGroups(List<String> groupNames,
                                               UserAccessor userAccessor,
                                               String guardPermission)
Add the guard permissions for each group if they exist

Specified by:
addGuardPermissionToGroups in interface EditPermissionsAdministrator
Parameters:
groupNames - - names of the groups to be added
userAccessor - - user accessor
guardPermission - - the name of the guard permission to add
Returns:
false if an error occurred.

setUsersToAdd

public void setUsersToAdd(List<String> usersToAdd)
Set the users to add from the UI

Parameters:
usersToAdd - a list of user names

setGroupsToAdd

public void setGroupsToAdd(List<String> groupsToAdd)
Set the groups to add from the UI

Parameters:
groupsToAdd - a list of group names

setRemoteUser

public void setRemoteUser(com.atlassian.user.User remoteUser)
The current logged in user

Parameters:
remoteUser - current logged in user

applyPermissionChanges

public void applyPermissionChanges(Collection<SpacePermission> oldPermissions,
                                   Collection<SpacePermission> newPermissions)
                            throws IllegalArgumentException
Description copied from interface: EditPermissionsAdministrator
Given the old permissions and new permissions, apply necessary permission changes to make old permissions the same as new permissions

Specified by:
applyPermissionChanges in interface EditPermissionsAdministrator
Parameters:
oldPermissions - - initial permissions
newPermissions - - expected permissions
Throws:
IllegalArgumentException


Copyright © 2003-2012 Atlassian. All Rights Reserved.