public class

GlobalPermissionGroupAssociationUtil

extends Object
java.lang.Object
   ↳ com.atlassian.jira.util.GlobalPermissionGroupAssociationUtil

Class Overview

This is a utility class to find out information about ADMINISTER and SYSTEM_ADMIN global permission information. You can use this class to find out if you are removing all the groups that grant a provided user the permission. You can also use this to find out the groups that the provided user is a member of and which is associated with the global permission.

Summary

Fields
public static final Transformer GROUP_TO_GROUPNAME Transforms a Group to its name as a String.
Public Constructors
GlobalPermissionGroupAssociationUtil(GlobalPermissionManager globalPermissionManager, GroupManager groupManager)
Public Methods
Collection<String> getAdminMemberGroups(ApplicationUser user)
Returns All the groupNames that have global "Administration" permission that this user is a member of.
List<String> getGroupNamesModifiableByCurrentUser(ApplicationUser currentUser, Collection<String> groupNames)
Determines which groups will be visible to the current user.
List<Group> getGroupsModifiableByCurrentUser(ApplicationUser currentUser, List<Group> groups)
Determines which groups will be visible to the current user.
List<Group> getNonAdminGroups(List<Group> groups)
Get all groups which have neither SYSTEM_ADMIN or ADMINISTER
Collection<String> getSysAdminMemberGroups(ApplicationUser user)
Returns All the groupNames that have global "System Administration" permission that this user is a member of.
boolean isRemovingAllMyAdminGroups(Collection<String> groupsToLeave, ApplicationUser user)
Return true if the user is trying to remove all the groups that grant them the administration permission.
boolean isRemovingAllMySysAdminGroups(Collection<String> groupsToLeave, ApplicationUser user)
Return true if the user is trying to remove all the groups that grant them the system administration permission.
boolean isUserAbleToDeleteGroup(ApplicationUser user, String groupName)
Determines, based on the users permissions, if the group can be deleted.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

public static final Transformer GROUP_TO_GROUPNAME

Transforms a Group to its name as a String.

Public Constructors

public GlobalPermissionGroupAssociationUtil (GlobalPermissionManager globalPermissionManager, GroupManager groupManager)

Public Methods

public Collection<String> getAdminMemberGroups (ApplicationUser user)

Returns All the groupNames that have global "Administration" permission that this user is a member of.

Parameters
user performing this operation.
Returns
  • a Collection of String group names that the global Admin permission is associated with and which the user is in.

public List<String> getGroupNamesModifiableByCurrentUser (ApplicationUser currentUser, Collection<String> groupNames)

Determines which groups will be visible to the current user. If the user is a SYSTEM_ADMIN then they can see all the groups, otherwise they will not be able to see the group names associated with the SYSTEM_ADMIN permission.

Parameters
currentUser performing the operation
groupNames the full set of possible group names the user might see
Returns
  • the groupNames list if they user has SYSTEM_ADMIN rights, otherwise a collection that does not contain the SYS_ADMIN group names.

public List<Group> getGroupsModifiableByCurrentUser (ApplicationUser currentUser, List<Group> groups)

Determines which groups will be visible to the current user. If the user is a SYSTEM_ADMIN then they can see all the groups, otherwise they will not be able to see the groups associated with the SYSTEM_ADMIN permission.

Parameters
currentUser performing the operation
groups the full set of possible groups the user might see
Returns
  • the groups list if they user has SYSTEM_ADMIN rights, otherwise a collection that does not contain the SYS_ADMIN groups.

public List<Group> getNonAdminGroups (List<Group> groups)

Get all groups which have neither SYSTEM_ADMIN or ADMINISTER

Parameters
groups the full set of possible groups the user might see
Returns
  • the groups list if they user has SYSTEM_ADMIN rights, otherwise a collection that does not contain the SYS_ADMIN groups.

public Collection<String> getSysAdminMemberGroups (ApplicationUser user)

Returns All the groupNames that have global "System Administration" permission that this user is a member of.

Parameters
user the user performing this operation.
Returns
  • a Collection of String group names that the global System Admin permission is associated with and which the user is in.

public boolean isRemovingAllMyAdminGroups (Collection<String> groupsToLeave, ApplicationUser user)

Return true if the user is trying to remove all the groups that grant them the administration permission.

Parameters
groupsToLeave a Collection of String, group names, that the user is trying to unassociate/remove.
user performing this operation.
Returns
  • true if removing all groups that grant the privlage, false otherwise.

public boolean isRemovingAllMySysAdminGroups (Collection<String> groupsToLeave, ApplicationUser user)

Return true if the user is trying to remove all the groups that grant them the system administration permission.

Parameters
groupsToLeave a Collection of String, group names, that the user is trying to unassociate/remove.
user performing this operation.
Returns
  • true if removing all groups that grant the privlage, false otherwise.

public boolean isUserAbleToDeleteGroup (ApplicationUser user, String groupName)

Determines, based on the users permissions, if the group can be deleted.

Parameters
user performing this operation.
groupName the group to delete
Returns
  • true if the user is has the SYSTEM_ADMIN permission or if the group is not associated with the SYSTEM_ADMIN permission.