Class AbstractSpacePermissionManager
- java.lang.Object
-
- com.atlassian.confluence.impl.security.AbstractSpacePermissionManager
-
- All Implemented Interfaces:
SpacePermissionManagerInternal
,SpacePermissionSaverInternal
,DefaultConfluenceAccessManager.AccessManagerPermissionChecker
,SpacePermissionManager
,SpacePermissionSaver
- Direct Known Subclasses:
CoarseGrainedCachingSpacePermissionManager
,DefaultSpacePermissionManager
@ParametersAreNonnullByDefault public abstract class AbstractSpacePermissionManager extends Object implements SpacePermissionManagerInternal, DefaultConfluenceAccessManager.AccessManagerPermissionChecker
- Since:
- 7.16
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractSpacePermissionManager(PermissionCheckExemptions permissionCheckExemptions, ConfluenceAccessManager confluenceAccessManager, SpacePermissionAccessMapper spacePermissionAccessMapper, com.atlassian.crowd.embedded.api.CrowdService crowdService, AccessModeManager accessModeManager, ScopesRequestCacheDelegate scopesRequestCacheDelegate, GlobalSettingsManager settingsManager)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Set<SpacePermission>
getDefaultGlobalPermissions()
Returns the default global permissions that are created when Confluence is set up.protected abstract Iterable<String>
getGroupNamesWithPermission(@Nullable Space targetSpace, String permissionType)
boolean
groupHasPermission(String permissionType, @Nullable Space space, String group)
Checks whether the given group has the given permissionboolean
hasAllPermissions(List<String> permissionTypes, @Nullable Space space, @Nullable com.atlassian.user.User user)
Determines if remoteUser has all of the given permissions in spaceboolean
hasGlobalPermissionViaGroups(@NonNull com.atlassian.user.User user, String permissionType)
Used byDefaultConfluenceAccessManager
via an awkward circular dependency: hence this method must NOT call ConfluenceAccessManager.boolean
hasPermission(String permissionType, @Nullable Space space, @Nullable com.atlassian.user.User remoteUser)
Determines if remoteUser has the given permission in spaceboolean
hasPermissionForSpace(@Nullable com.atlassian.user.User user, List permissionTypes, @Nullable Space space)
boolean
hasPermissionNoExemptions(String permissionType, @Nullable Space space, @Nullable com.atlassian.user.User remoteUser)
Returns true if the user has the specified permission on the target space.boolean
isPermittedInReadOnlyAccessMode(String permissionType)
Check if the permission type is permitted in read only access mode-
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.access.DefaultConfluenceAccessManager.AccessManagerPermissionChecker
permissionExists
-
Methods inherited from interface com.atlassian.confluence.security.SpacePermissionManager
createDefaultSpacePermissions, createPrivateSpacePermissions, flushCaches, getAllPermissionsForGroup, getGlobalPermissions, getGlobalPermissions, getGroupsForPermissionType, getGroupsWithPermissions, getUsersForPermissionType, getUsersWithPermissions, permissionExists, removeAllPermissions, removeAllPermissionsForGroup, removeAllUserPermissions, removeGlobalPermissionForUser, removePermission
-
Methods inherited from interface com.atlassian.confluence.internal.security.SpacePermissionManagerInternal
removeAllPermissions, removeAllPermissionsForGroup, removeAllUserPermissions, removeGlobalPermissionForUser, removePermission
-
Methods inherited from interface com.atlassian.confluence.security.SpacePermissionSaver
savePermission
-
Methods inherited from interface com.atlassian.confluence.internal.security.SpacePermissionSaverInternal
savePermission
-
-
-
-
Constructor Detail
-
AbstractSpacePermissionManager
protected AbstractSpacePermissionManager(PermissionCheckExemptions permissionCheckExemptions, ConfluenceAccessManager confluenceAccessManager, SpacePermissionAccessMapper spacePermissionAccessMapper, com.atlassian.crowd.embedded.api.CrowdService crowdService, AccessModeManager accessModeManager, ScopesRequestCacheDelegate scopesRequestCacheDelegate, GlobalSettingsManager settingsManager)
-
-
Method Detail
-
hasPermission
public final boolean hasPermission(String permissionType, @Nullable Space space, @Nullable com.atlassian.user.User remoteUser)
Description copied from interface:SpacePermissionManager
Determines if remoteUser has the given permission in spaceUnless you're writing code that is part of the permission checking implementation, or you're changing space permissions, you should be using
PermissionManager
instead.- Specified by:
hasPermission
in interfaceSpacePermissionManager
- Parameters:
permissionType
- The permission type to look upspace
- The space the permission applies to (can be null for global permissions)remoteUser
- The user to look up (can be null for the anonymous user)- Returns:
- true if remoteUser has the permission, false otherwise
-
hasPermissionNoExemptions
public boolean hasPermissionNoExemptions(String permissionType, @Nullable Space space, @Nullable com.atlassian.user.User remoteUser)
Description copied from interface:SpacePermissionManager
Returns true if the user has the specified permission on the target space. This method does not allow exemptions for super-users likeSpacePermissionManager.hasPermission(String, Space, User)
does.For parameter and return value information, see
SpacePermissionManager.hasPermission(String, Space, User)
.- Specified by:
hasPermissionNoExemptions
in interfaceSpacePermissionManager
-
hasAllPermissions
public final boolean hasAllPermissions(List<String> permissionTypes, @Nullable Space space, @Nullable com.atlassian.user.User user)
Description copied from interface:SpacePermissionManager
Determines if remoteUser has all of the given permissions in spaceIf remoteUser lacks any of the given permissions, false is returned.
Unless you're writing code that is part of the permission checking implementation, or you're changing space permissions, you should be using
PermissionManager
instead.- Specified by:
hasAllPermissions
in interfaceSpacePermissionManager
- Parameters:
permissionTypes
- A List of permission types (see SpacePermission) to checkspace
- The space the permissions apply touser
- The user to look up- Returns:
- true if remoteUser has the permission, false otherwise
-
hasGlobalPermissionViaGroups
public final boolean hasGlobalPermissionViaGroups(@NonNull com.atlassian.user.User user, String permissionType)
Used byDefaultConfluenceAccessManager
via an awkward circular dependency: hence this method must NOT call ConfluenceAccessManager.- Specified by:
hasGlobalPermissionViaGroups
in interfaceDefaultConfluenceAccessManager.AccessManagerPermissionChecker
permissionType
- theSpacePermission
type to look for.- Returns:
- true if the user has this permission specifically via group memberships
-
groupHasPermission
public boolean groupHasPermission(String permissionType, @Nullable Space space, String group)
Description copied from interface:SpacePermissionManager
Checks whether the given group has the given permissionIf a null space is specified, this method looks up matching global permissions, otherwise space's permissions list is queried to see if the permission matches.
Similarly, if permissionType is not a space permission, a matching global permission is looked up.
- Specified by:
groupHasPermission
in interfaceSpacePermissionManager
- Parameters:
permissionType
- The permission type to look upspace
- The space the permission applies to (can be null for global permissions)group
- The group to look up the permission for- Returns:
- true if the group has the required permission, false otherwise
-
getGroupNamesWithPermission
protected abstract Iterable<String> getGroupNamesWithPermission(@Nullable Space targetSpace, String permissionType)
-
hasPermissionForSpace
public final boolean hasPermissionForSpace(@Nullable com.atlassian.user.User user, List permissionTypes, @Nullable Space space)
- Specified by:
hasPermissionForSpace
in interfaceSpacePermissionManager
-
getDefaultGlobalPermissions
public Set<SpacePermission> getDefaultGlobalPermissions()
Description copied from interface:SpacePermissionManager
Returns the default global permissions that are created when Confluence is set up. These will exist in a newly set up system but may be removed afterwards. Note that the returned objects are freshly created and therefore do not have IDs or other persistence data.By default, confluence-administrators group has admin access, the default confluence users group can view the system and anonymous access is disabled.
- Specified by:
getDefaultGlobalPermissions
in interfaceSpacePermissionManager
- Returns:
- a collection of
SpacePermission
s.
-
isPermittedInReadOnlyAccessMode
public boolean isPermittedInReadOnlyAccessMode(String permissionType)
Description copied from interface:SpacePermissionManager
Check if the permission type is permitted in read only access mode- Specified by:
isPermittedInReadOnlyAccessMode
in interfaceSpacePermissionManager
- Parameters:
permissionType
- the permission type to be checked- Returns:
- true if the permission type is permitted in read only access mode
-
-