com.atlassian.jira.security
Interface GlobalPermissionManager

All Known Implementing Classes:
DefaultGlobalPermissionManager

public interface GlobalPermissionManager

Use this manager to add/remove or check global permissions.

The system global permissions are:

Use getAllGlobalPermissions() in order to get the collection of all global permissions, which includes plugin global permissions. For project specific permissions use PermissionManager.


Method Summary
 boolean addPermission(GlobalPermissionType globalPermissionType, String group)
          Grants a user group a global permission.
 boolean addPermission(int permissionType, String group)
          Deprecated. Use addPermission(com.atlassian.jira.permission.GlobalPermissionType, String) instead.
 void clearCache()
           
 Collection<GlobalPermissionType> getAllGlobalPermissions()
           
 com.atlassian.fugue.Option<GlobalPermissionType> getGlobalPermission(GlobalPermissionKey permissionKey)
          Returns the global permission details for the given permission key.
 com.atlassian.fugue.Option<GlobalPermissionType> getGlobalPermission(int permissionId)
          Deprecated. use getGlobalPermission(GlobalPermissionKey) to get global permission by key. Eventually, we want to stop referring to Global Permission's by ID.
 com.atlassian.fugue.Option<GlobalPermissionType> getGlobalPermission(String permissionKey)
          Returns a global permission matching the specified key.
 Collection<String> getGroupNames(GlobalPermissionType globalPermissionType)
          Deprecated. Use getGroupNamesWithPermission(com.atlassian.jira.permission.GlobalPermissionKey) instead. Since v6.2.5.
 Collection<String> getGroupNames(int permissionId)
          Deprecated. Use getGroupNamesWithPermission(com.atlassian.jira.permission.GlobalPermissionKey)
 Collection<String> getGroupNamesWithPermission(GlobalPermissionKey permissionKey)
          Retrieve all the group names 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)
          Deprecated. Use getGroupsWithPermission(com.atlassian.jira.permission.GlobalPermissionKey) instead. Since v6.2.5.
 Collection<com.atlassian.crowd.embedded.api.Group> getGroupsWithPermission(int permissionId)
          Deprecated. Use getGroupsWithPermission(com.atlassian.jira.permission.GlobalPermissionKey)
 Collection<GlobalPermissionEntry> getPermissions(GlobalPermissionKey globalPermissionKey)
          Retrieve a list of user groups which have been granted the specified permission.
 Collection<GlobalPermissionEntry> getPermissions(GlobalPermissionType globalPermissionType)
          Deprecated. Use getPermissions(com.atlassian.jira.permission.GlobalPermissionKey) instead. Since v6.2.5.
 Collection<JiraPermission> getPermissions(int permissionType)
          Deprecated. Use getPermissions(com.atlassian.jira.permission.GlobalPermissionKey) instead.
 boolean hasPermission(GlobalPermissionKey globalPermissionKey, ApplicationUser user)
          Check if the given user has the given Global Permission.
 boolean hasPermission(GlobalPermissionType globalPermissionType)
          Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead. Since v6.2.5.
 boolean hasPermission(GlobalPermissionType globalPermissionType, ApplicationUser user)
          Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead. Since v6.2.5.
 boolean hasPermission(int permissionType)
          Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead.
 boolean hasPermission(int permissionType, ApplicationUser user)
          Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead.
 boolean hasPermission(int permissionType, com.atlassian.crowd.embedded.api.User user)
          Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead.
 boolean isGlobalPermission(int permissionId)
          Deprecated. Use GlobalPermissionKey instead of int. Since v6.2.5
 boolean removePermission(GlobalPermissionType globalPermissionType, String group)
          Revokes a global permission for a user group
 boolean removePermission(int permissionType, String group)
          Deprecated. Use removePermission(com.atlassian.jira.permission.GlobalPermissionType, String) instead.
 boolean removePermissions(String group)
          Revoke all global permissions for a user group.
 

Method Detail

getAllGlobalPermissions

@ExperimentalApi
Collection<GlobalPermissionType> getAllGlobalPermissions()
Returns:
the collection with all global permissions. This includes all the systems global permissions and all the plugin global permissions.

getGlobalPermission

@Internal
com.atlassian.fugue.Option<GlobalPermissionType> getGlobalPermission(int permissionId)
Deprecated. use getGlobalPermission(GlobalPermissionKey) to get global permission by key. Eventually, we want to stop referring to Global Permission's by ID.

Parameters:
permissionId - id of the permission.
Returns:
a global permission (system and pluggable) for the given permission id.

getGlobalPermission

@ExperimentalApi
com.atlassian.fugue.Option<GlobalPermissionType> getGlobalPermission(@Nonnull
                                                                                     GlobalPermissionKey permissionKey)
Returns the global permission details for the given permission key.

Parameters:
permissionKey - the global permission key
Returns:
the global permission details for the given permission key.
Since:
6.2.5

getGlobalPermission

@ExperimentalApi
com.atlassian.fugue.Option<GlobalPermissionType> getGlobalPermission(@Nonnull
                                                                                     String permissionKey)
Returns a global permission matching the specified key.

Parameters:
permissionKey - the key of the permission declared by global permission module.
Returns:
a global permission for the given permission key.

addPermission

boolean addPermission(int permissionType,
                      String group)
Deprecated. Use addPermission(com.atlassian.jira.permission.GlobalPermissionType, String) instead.

Grants a user group a global permission.

Parameters:
permissionType - the global permission id.
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 the permission was added.

addPermission

@ExperimentalApi
boolean addPermission(GlobalPermissionType globalPermissionType,
                                      String group)
Grants a user group a global permission.

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

Collection<JiraPermission> getPermissions(int permissionType)
Deprecated. Use getPermissions(com.atlassian.jira.permission.GlobalPermissionKey) instead.

Retrieve a list of user groups which have been granted a specified permission. The returned JiraPermission 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.

Parameters:
permissionType - The key of pluggable global permission. Must be a global permission.
Returns:
Collection of JiraPermission.getPermType(), must never return null.

getPermissions

@Internal
Collection<GlobalPermissionEntry> getPermissions(GlobalPermissionType globalPermissionType)
Deprecated. Use getPermissions(com.atlassian.jira.permission.GlobalPermissionKey) instead. Since v6.2.5.

Retrieve a list of user groups which have been granted a specified permission. The returned JiraPermission 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.

Parameters:
globalPermissionType - global permission, must not be null.
Returns:
Collection of JiraPermission.getPermType(), must never return null.

getPermissions

@ExperimentalApi
@Nonnull
Collection<GlobalPermissionEntry> getPermissions(@Nonnull
                                                                         GlobalPermissionKey globalPermissionKey)
Retrieve a list of user groups which have been granted the specified permission.

The returned GlobalPermissionEntry contains a reference to the user group.

Parameters:
globalPermissionKey - global permission, must not be null.
Returns:
Collection of GlobalPermissionEntry, never null.
Since:
6.2.5

removePermission

boolean removePermission(int permissionType,
                         String group)
Deprecated. Use removePermission(com.atlassian.jira.permission.GlobalPermissionType, String) instead.

Revokes a global permission for a user group

Parameters:
permissionType - 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

@ExperimentalApi
boolean removePermission(GlobalPermissionType globalPermissionType,
                                         String group)
Revokes a global permission for a user group

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

boolean removePermissions(String group)
Revoke all global permissions for a user group.

Parameters:
group - cannot NOT be null and the group must exist.
Returns:
true, if this group does not have any global permissions

hasPermission

boolean hasPermission(int permissionType)
Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead.

Check if a global permission is granted for an anonymous user.

If the permission is Permissions.ADMINISTER and the lookup is false then the same query will be executed for the Permissions.SYSTEM_ADMIN permission type, since it is implied that having a Permissions.SYSTEM_ADMIN permission grants Permissions.ADMINISTER rights.

Note: Use hasPermission(int, User) method is you have the user object, i.e. user is not anonymous.

If you are using this method directly, consider using PermissionManager.hasPermission(int, User) instead as it handles logged in and anonymous users as well.

Parameters:
permissionType - must be global permission
Returns:
true the anonymous user has the permission of given type, false otherwise
See Also:
hasPermission(int, User)

hasPermission

@Internal
boolean hasPermission(@Nonnull
                               GlobalPermissionType globalPermissionType)
Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead. Since v6.2.5.

Left in here temporarily in case it is being used by SD 2.0


hasPermission

boolean hasPermission(int permissionType,
                      com.atlassian.crowd.embedded.api.User user)
Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead.

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 the Permissions.SYSTEM_ADMIN permission type, since it is implied that having a Permissions.SYSTEM_ADMIN permission grants Permissions.ADMINISTER rights.

Note: Use 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, User) instead as it handles logged in and anonymous users as well.

Parameters:
permissionType - must be a global permission
user - must not be null
Returns:
true if the given user has the permission of given type, otherwise false
See Also:
hasPermission(int), PermissionManager.hasPermission(int, User)

hasPermission

boolean hasPermission(int permissionType,
                      ApplicationUser user)
Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead.

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 the Permissions.SYSTEM_ADMIN permission type, since it is implied that having a Permissions.SYSTEM_ADMIN permission grants Permissions.ADMINISTER rights.

Note: Use 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, User) instead as it handles logged in and anonymous users as well.

Parameters:
permissionType - must be a global permission
user - must not be null
Returns:
true if the given user has the permission of given type, otherwise false
See Also:
hasPermission(int), PermissionManager.hasPermission(int, User)

hasPermission

@Internal
boolean hasPermission(@Nonnull
                               GlobalPermissionType globalPermissionType,
                               @Nullable
                               ApplicationUser user)
Deprecated. Use hasPermission(com.atlassian.jira.permission.GlobalPermissionKey, com.atlassian.jira.user.ApplicationUser) instead. Since v6.2.5.

Left in here temporarily in case it is being used by SD 2.0


hasPermission

@ExperimentalApi
boolean hasPermission(@Nonnull
                                      GlobalPermissionKey globalPermissionKey,
                                      @Nullable
                                      ApplicationUser user)
Check if the given user has the given Global Permission.

If the permission type is Permissions.ADMINISTER and the lookup is false then the same query will be executed for the Permissions.SYSTEM_ADMIN permission type, since it is implied that having a Permissions.SYSTEM_ADMIN permission grants Permissions.ADMINISTER rights.

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.
Since:
6.2.5

getGroupsWithPermission

Collection<com.atlassian.crowd.embedded.api.Group> getGroupsWithPermission(int permissionId)
Deprecated. Use getGroupsWithPermission(com.atlassian.jira.permission.GlobalPermissionKey)

Retrieve all the groups with this permission. Only groups directly associated with the permission will be returned.

Parameters:
permissionId - must be a global permission
Returns:
a Collection of Group's, will never be null.

getGroupsWithPermission

@Internal
Collection<com.atlassian.crowd.embedded.api.Group> getGroupsWithPermission(@Nonnull
                                                                                    GlobalPermissionType globalPermissionType)
Deprecated. Use getGroupsWithPermission(com.atlassian.jira.permission.GlobalPermissionKey) instead. Since v6.2.5.

Retrieve all the groups with this permission. Only groups directly associated with the permission will be returned.

Parameters:
globalPermissionType - global permission, must not be null.
Returns:
a Collection of Group's, will never be null.

getGroupsWithPermission

@ExperimentalApi
@Nonnull
Collection<com.atlassian.crowd.embedded.api.Group> getGroupsWithPermission(@Nonnull
                                                                                                   GlobalPermissionKey permissionKey)
Retrieve all the groups with the given permission.

Only groups directly associated with the permission will be returned.

Parameters:
permissionKey - global permission, must not be null.
Returns:
a Collection of Group's, will never be null.
Since:
6.2.5

getGroupNames

Collection<String> getGroupNames(int permissionId)
Deprecated. Use getGroupNamesWithPermission(com.atlassian.jira.permission.GlobalPermissionKey)

Retrieve all the group names with this permission. Only group names directly associated with the permission will be returned.

Parameters:
permissionId - must be a global permission
Returns:
a Collection of String, group names, will never be null.

getGroupNames

@Internal
Collection<String> getGroupNames(@Nonnull
                                          GlobalPermissionType globalPermissionType)
Deprecated. Use getGroupNamesWithPermission(com.atlassian.jira.permission.GlobalPermissionKey) instead. Since v6.2.5.

Retrieve all the group names with this permission. Only group names directly associated with the permission will be returned.

Parameters:
globalPermissionType - global permission, must not be null.
Returns:
a Collection of String, group names, will never be null.

getGroupNamesWithPermission

@ExperimentalApi
@Nonnull
Collection<String> getGroupNamesWithPermission(@Nonnull
                                                                       GlobalPermissionKey permissionKey)
Retrieve all the group names with this permission. Only group names directly associated with the permission will be returned.

Parameters:
permissionKey - global permission, must not be null.
Returns:
a Collection of String, group names, will never be null.
Since:
6.2.5

isGlobalPermission

@ExperimentalApi
boolean isGlobalPermission(int permissionId)
Deprecated. Use GlobalPermissionKey instead of int. Since v6.2.5

Parameters:
permissionId - id of the permission to check.
Returns:
true if provided id is the id of a global permission.

clearCache

@Internal
void clearCache()


Copyright © 2002-2014 Atlassian. All Rights Reserved.