Class DefaultGlobalPermissionManager
- All Implemented Interfaces:
GroupConfigurable
,GlobalPermissionManager
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultGlobalPermissionManager
(com.atlassian.crowd.embedded.api.CrowdService crowdService, OfBizDelegator ofBizDelegator, com.atlassian.event.api.EventPublisher eventPublisher, GlobalPermissionTypesManager globalPermissionTypesManager, com.atlassian.cache.CacheManager cacheManager, ApplicationRoleManager applicationRoleManager, GroupManager groupManager, RecoveryMode recoveryMode, FeatureManager featureManager, ScopesRequestCacheDelegate scopesRequestCacheDelegate, RequestCacheFactory requestCacheFactory) -
Method Summary
Modifier and TypeMethodDescriptionboolean
addPermission
(int permissionId, String group) Adds a global permissionboolean
addPermission
(GlobalPermissionType globalPermissionType, String group) Grants a user group a global permission.void
io.atlassian.fugue.Option<GlobalPermissionType>
getGlobalPermission
(int permissionId) io.atlassian.fugue.Option<GlobalPermissionType>
getGlobalPermission
(GlobalPermissionKey permissionKey) Returns the global permission details for the given permission key.io.atlassian.fugue.Option<GlobalPermissionType>
getGlobalPermission
(String permissionKey) Returns a global permission matching the specified key.getGroupNames
(int permissionId) Retrieve all the group names with this permission.getGroupNames
(GlobalPermissionType globalPermissionType) Retrieve all the group names with this permission.getGroupNamesWithPermission
(GlobalPermissionKey permissionKey) Retrieve all the group names with this permission.Collection<com.atlassian.crowd.embedded.api.Group>
getGroupsWithPermission
(int permissionId) Retrieve all the groups with this permission.Collection<com.atlassian.crowd.embedded.api.Group>
getGroupsWithPermission
(GlobalPermissionKey permissionKey) Retrieve all the groups with the given permission.Collection<com.atlassian.crowd.embedded.api.Group>
getGroupsWithPermission
(GlobalPermissionType globalPermissionType) Retrieve all the groups with this permission.getPermissions
(int permissionType) Retrieve a list of user groups which have been granted a specified permission.getPermissions
(GlobalPermissionKey globalPermissionKey) Retrieve a list of user groups which have been granted the specified permission.getPermissions
(GlobalPermissionType globalPermissionType) Retrieve a list of user groups which have been granted a specified permission.boolean
hasPermission
(int permissionId) Check if a global anonymous permission existsboolean
hasPermission
(int permissionId, ApplicationUser user) Check if a global permission for one of the users groups exists.boolean
hasPermission
(GlobalPermissionKey globalPermissionKey, ApplicationUser user) Check if the given user has the given Global Permission.boolean
hasPermission
(GlobalPermissionType globalPermissionType) Left in here temporarily in case it is being used by SD 2.0boolean
hasPermission
(GlobalPermissionType globalPermissionType, ApplicationUser user) Left in here temporarily in case it is being used by SD 2.0protected boolean
hasPermission
(GlobalPermissionEntry permissionEntry) boolean
isGlobalPermission
(int permissionId) boolean
isGroupUsed
(com.atlassian.crowd.embedded.api.Group group) Determine whether configuration exists for the specifiedGroup
.boolean
isPermissionManagedByJira
(GlobalPermissionKey permissionKey) Checks if jira should be responsible for managing a permission.void
onClearCache
(ClearCacheEvent event) boolean
removePermission
(int permissionId, String group) Revokes a global permission for a user groupboolean
removePermission
(GlobalPermissionType globalPermissionType, String group) Revokes a global permission for a user groupboolean
removePermissions
(String group) Revoke all global permissions for a user group.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.atlassian.jira.config.group.GroupConfigurable
isGroupUsed
-
Constructor Details
-
DefaultGlobalPermissionManager
public DefaultGlobalPermissionManager(com.atlassian.crowd.embedded.api.CrowdService crowdService, OfBizDelegator ofBizDelegator, com.atlassian.event.api.EventPublisher eventPublisher, GlobalPermissionTypesManager globalPermissionTypesManager, com.atlassian.cache.CacheManager cacheManager, ApplicationRoleManager applicationRoleManager, GroupManager groupManager, RecoveryMode recoveryMode, FeatureManager featureManager, ScopesRequestCacheDelegate scopesRequestCacheDelegate, RequestCacheFactory requestCacheFactory)
-
-
Method Details
-
onClearCache
-
getAllGlobalPermissions
- Specified by:
getAllGlobalPermissions
in interfaceGlobalPermissionManager
- Returns:
- the collection with all global permissions. This includes all the systems global permissions and all the plugin global permissions.
-
getGlobalPermission
- Specified by:
getGlobalPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionId
- id of the permission.- Returns:
- a global permission (system and pluggable) for the given permission id.
-
getGlobalPermission
public io.atlassian.fugue.Option<GlobalPermissionType> getGlobalPermission(@Nonnull String permissionKey) Description copied from interface:GlobalPermissionManager
Returns a global permission matching the specified key.- Specified by:
getGlobalPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionKey
- the key of the permission declared by global permission module.- Returns:
- a global permission for the given permission key.
-
getGlobalPermission
public io.atlassian.fugue.Option<GlobalPermissionType> getGlobalPermission(@Nonnull GlobalPermissionKey permissionKey) Description copied from interface:GlobalPermissionManager
Returns the global permission details for the given permission key.- Specified by:
getGlobalPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionKey
- the global permission key- Returns:
- the global permission details for the given permission key.
-
addPermission
Adds a global permission- Specified by:
addPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionId
- must be a global permission typegroup
- can be null if it is anyone permission- Returns:
- True if the permission was added
-
addPermission
Description copied from interface:GlobalPermissionManager
Grants a user group a global permission.- Specified by:
addPermission
in interfaceGlobalPermissionManager
- Parameters:
globalPermissionType
- global permission, must not be null.group
- the name of the group. Null means "anyone" group. The JIRA use, admin and sysadmin permission cannot be granted to "anyone".- Returns:
- true if permission was added.
-
getPermissions
Description copied from interface:GlobalPermissionManager
Retrieve a list of user groups which have been granted a specified permission. The returnedJiraPermission
contains a reference to the user group.JiraPermission.getScheme()
is always NULL, because Global permission are not configured using schemes.JiraPermission.getType()
will always return "group", because global permissions can only be granted to groups.- Specified by:
getPermissions
in interfaceGlobalPermissionManager
- Parameters:
permissionType
- The key of pluggable global permission. Must be a global permission.- Returns:
- Collection of
JiraPermission.getPermType()
, must never return null.
-
getPermissions
Description copied from interface:GlobalPermissionManager
Retrieve a list of user groups which have been granted a specified permission. The returnedJiraPermission
contains a reference to the user group.JiraPermission.getScheme()
is always NULL, because Global permission are not configured using schemes.JiraPermission.getType()
will always return "group", because global permissions can only be granted to groups.- Specified by:
getPermissions
in interfaceGlobalPermissionManager
- Parameters:
globalPermissionType
- global permission, must not be null.- Returns:
- Collection of
JiraPermission.getPermType()
, must never return null.
-
getPermissions
@Nonnull public Collection<GlobalPermissionEntry> getPermissions(@Nonnull GlobalPermissionKey globalPermissionKey) Description copied from interface:GlobalPermissionManager
Retrieve a list of user groups which have been granted the specified permission.The returned
GlobalPermissionEntry
contains a reference to the user group.- Specified by:
getPermissions
in interfaceGlobalPermissionManager
- Parameters:
globalPermissionKey
- global permission, must not be null.- Returns:
- Collection of
GlobalPermissionEntry
, never null.
-
removePermission
Description copied from interface:GlobalPermissionManager
Revokes a global permission for a user group- Specified by:
removePermission
in interfaceGlobalPermissionManager
- Parameters:
permissionId
- the global permission.group
- the group name. NULL means the anyone group.- Returns:
- true if the permission was revoked, false if not (e.g. the group does not have this permission)
-
removePermission
Description copied from interface:GlobalPermissionManager
Revokes a global permission for a user group- Specified by:
removePermission
in interfaceGlobalPermissionManager
- Parameters:
globalPermissionType
- global permission, must not be null.group
- the group name. NULL means the anyone group.- Returns:
- true if the permission was revoked, false if not (e.g. the group does not have this permission)
-
removePermissions
Description copied from interface:GlobalPermissionManager
Revoke all global permissions for a user group.- Specified by:
removePermissions
in interfaceGlobalPermissionManager
- Parameters:
group
- cannot NOT be null and the group must exist.- Returns:
- true, if this group does not have any global permissions
-
hasPermission
public boolean hasPermission(int permissionId) Check if a global anonymous permission exists- Specified by:
hasPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionId
- must be global permission- Returns:
- true the anonymous user has the permission of given type, false otherwise
- See Also:
-
hasPermission
Description copied from interface:GlobalPermissionManager
Left in here temporarily in case it is being used by SD 2.0- Specified by:
hasPermission
in interfaceGlobalPermissionManager
-
hasPermission
Description copied from interface:GlobalPermissionManager
Check if a global permission for one of the users groups exists.If the permission type is
Permissions.ADMINISTER
and the lookup is false then the same query will be executed for thePermissions.SYSTEM_ADMIN
permission type, since it is implied that having aPermissions.SYSTEM_ADMIN
permission grantsPermissions.ADMINISTER
rights.Note: Use
GlobalPermissionManager.hasPermission(int)
method is you do not have the user object, i.e. user is anonymous.If you are using this method directly, consider using
PermissionManager.hasPermission(int, ApplicationUser)
instead as it handles logged in and anonymous users as well.- Specified by:
hasPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionId
- must be a global permissionuser
- must not be null- Returns:
- true if the given user has the permission of given type, otherwise false
- See Also:
-
hasPermission
public boolean hasPermission(@Nonnull GlobalPermissionKey globalPermissionKey, @Nullable ApplicationUser user) Description copied from interface:GlobalPermissionManager
Check if the given user has the given Global Permission.If the permission type is
GlobalPermissionKey.ADMINISTER
and the lookup is false then the same query will be executed for theGlobalPermissionKey.SYSTEM_ADMIN
permission type, since it is implied that having aGlobalPermissionKey.SYSTEM_ADMIN
permission grantsGlobalPermissionKey.ADMINISTER
rights.- Specified by:
hasPermission
in interfaceGlobalPermissionManager
- Parameters:
globalPermissionKey
- global permission, must not be null.user
- The user - can be null indicating "anonymous"- Returns:
- true if the given user has the permission of given type, otherwise false.
-
hasPermission
public boolean hasPermission(@Nonnull GlobalPermissionType globalPermissionType, @Nullable ApplicationUser user) Description copied from interface:GlobalPermissionManager
Left in here temporarily in case it is being used by SD 2.0- Specified by:
hasPermission
in interfaceGlobalPermissionManager
-
getGroupsWithPermission
Description copied from interface:GlobalPermissionManager
Retrieve all the groups with this permission. Only groups directly associated with the permission will be returned.- Specified by:
getGroupsWithPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionId
- must be a global permission- Returns:
- a Collection of
Group
's, will never be null.
-
getGroupsWithPermission
public Collection<com.atlassian.crowd.embedded.api.Group> getGroupsWithPermission(@Nonnull GlobalPermissionType globalPermissionType) Description copied from interface:GlobalPermissionManager
Retrieve all the groups with this permission. Only groups directly associated with the permission will be returned.- Specified by:
getGroupsWithPermission
in interfaceGlobalPermissionManager
- Parameters:
globalPermissionType
- global permission, must not be null.- Returns:
- a Collection of
Group
's, will never be null.
-
getGroupsWithPermission
@Nonnull public Collection<com.atlassian.crowd.embedded.api.Group> getGroupsWithPermission(@Nonnull GlobalPermissionKey permissionKey) Description copied from interface:GlobalPermissionManager
Retrieve all the groups with the given permission.Only groups directly associated with the permission will be returned.
- Specified by:
getGroupsWithPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionKey
- global permission, must not be null.- Returns:
- a Collection of
Group
's, will never be null.
-
getGroupNames
Description copied from interface:GlobalPermissionManager
Retrieve all the group names with this permission. Only group names directly associated with the permission will be returned.- Specified by:
getGroupNames
in interfaceGlobalPermissionManager
- Parameters:
permissionId
- must be a global permission- Returns:
- a Collection of String, group names, will never be null.
-
getGroupNames
Description copied from interface:GlobalPermissionManager
Retrieve all the group names with this permission. Only group names directly associated with the permission will be returned.- Specified by:
getGroupNames
in interfaceGlobalPermissionManager
- Parameters:
globalPermissionType
- global permission, must not be null.- Returns:
- a Collection of String, group names, will never be null.
-
getGroupNamesWithPermission
@Nonnull public Collection<String> getGroupNamesWithPermission(@Nonnull GlobalPermissionKey permissionKey) Description copied from interface:GlobalPermissionManager
Retrieve all the group names with this permission. Only group names directly associated with the permission will be returned.- Specified by:
getGroupNamesWithPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionKey
- global permission, must not be null.- Returns:
- a Collection of String, group names, will never be null.
-
isGlobalPermission
public boolean isGlobalPermission(int permissionId) - Specified by:
isGlobalPermission
in interfaceGlobalPermissionManager
- Parameters:
permissionId
- id of the permission to check.- Returns:
- true if provided id is the id of a global permission.
-
clearCache
public void clearCache()- Specified by:
clearCache
in interfaceGlobalPermissionManager
-
isPermissionManagedByJira
Description copied from interface:GlobalPermissionManager
Checks if jira should be responsible for managing a permission. I.e. in on demand mode USE permission might be managed by User Manager, therefore admin should not be able to add it via jira.- Specified by:
isPermissionManagedByJira
in interfaceGlobalPermissionManager
- Parameters:
permissionKey
- global permission- Returns:
- true if permission is managed by jira, false otherwise.
-
hasPermission
-
isGroupUsed
public boolean isGroupUsed(@Nonnull com.atlassian.crowd.embedded.api.Group group) Description copied from interface:GroupConfigurable
Determine whether configuration exists for the specifiedGroup
.- Specified by:
isGroupUsed
in interfaceGroupConfigurable
- Parameters:
group
- that may or may not exist.- Returns:
- true if the group is used in the components configuration.
-