com.atlassian.bamboo.security.acegi.acls
Class BambooAclUpdateHelper

java.lang.Object
  extended by com.atlassian.bamboo.security.acegi.acls.BambooAclUpdateHelper

public class BambooAclUpdateHelper
extends Object

A helper class used in Acl update and creation operations

It converts between Acl and AccessControlEntry objects and a "permissionKey" which is a String representation of a Acl and AccessControlEntry combination.

The "permissionKeys" are in the format: bambooPermission_TYPE_PRINCIPAL_PERMISSION

The permission configuration UI understands this format.


Field Summary
static String BAMBOO_PERMISSION_FORM_GROUP
           
static String BAMBOO_PERMISSION_FORM_GROUP_PREFIX
           
static String BAMBOO_PERMISSION_FORM_ROLE
           
static String BAMBOO_PERMISSION_FORM_ROLE_PREFIX
           
static String BAMBOO_PERMISSION_FORM_SEPARATOR
           
static String BAMBOO_PERMISSION_FORM_USER
           
static String BAMBOO_PERMISSION_FORM_USER_PREFIX
           
static String BAMBOO_PERMISSION_PREFIX
           
 
Constructor Summary
BambooAclUpdateHelper()
           
 
Method Summary
 List<String> addViewPermissionsForEditPermissions(List<String> permissionKeys)
          For each of the WRITE permission keys in the list make sure there's corresponding READ permission.
 void buildPermissionAndUserGroupListsFromAcl(List<String> grantedPermissions, List<String> grantedUsers, List<String> grantedGroups, List<String> nonProcessedGrantedPermissions, org.acegisecurity.acls.Acl acl, boolean showAdminPermissions, BambooPermissionManager bambooPermissionManager)
          Helper conversion method for the permission configuration pages.
 List<String> buildPermissionListFromRequest(Map<String,String[]> params)
          Builds a list of permissionKeys from the request Map
 void buildUserGroupListsFromPermissions(List<String> grantedPermissions, List<String> grantedUsers, List<String> grantedGroups)
          Given a list of granted permissions (permissionKey Strings), it will populate the grantedUsers list with unique usernames of those users which have permissions.
 org.acegisecurity.acls.MutableAcl clonePermissions(com.atlassian.user.User user, Class<? extends BambooIdProvider> permissionObject, long id, org.acegisecurity.acls.Acl parentAcl)
           
 org.acegisecurity.acls.MutableAcl copyProjectPermissionsToEnvironment(com.atlassian.user.User user, Class<? extends BambooIdProvider> permissionObject, long id, org.acegisecurity.acls.Acl parentAcl)
           
 org.acegisecurity.acls.MutableAcl createNewDefaultAcl(com.atlassian.user.User user, Class<? extends Plan> planType)
          Creates a default Acl for a specific plan types which has: - All permissions for the creator (user argument) of the plan - READ permission for all logged in users - READ permission for all anonymous users
 org.acegisecurity.acls.MutableAcl createNewObjectAcl(com.atlassian.user.User user, Class<? extends BambooIdProvider> permissionObject, long id)
          Creates a default Acl for a object which has: - EDIT permission for the creator (user argument) of the deployment project - READ permission for all logged in users - READ permission for all anonymous users
 org.acegisecurity.acls.Permission getPermission(String permissionKey)
           
 String getPermissionKeyFromAce(org.acegisecurity.acls.AccessControlEntry ace)
          Given an AccessControlEntry return a String representation.
 void modifyAclAces(org.acegisecurity.acls.MutableAcl acl, List<String> newPermissionKeys)
          Updates an MutableAcl with new AccessControlEntrys with permissions represented by a list of String permissionKeys.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BAMBOO_PERMISSION_FORM_SEPARATOR

public static final String BAMBOO_PERMISSION_FORM_SEPARATOR
See Also:
Constant Field Values

BAMBOO_PERMISSION_FORM_USER

public static final String BAMBOO_PERMISSION_FORM_USER
See Also:
Constant Field Values

BAMBOO_PERMISSION_FORM_GROUP

public static final String BAMBOO_PERMISSION_FORM_GROUP
See Also:
Constant Field Values

BAMBOO_PERMISSION_FORM_ROLE

public static final String BAMBOO_PERMISSION_FORM_ROLE
See Also:
Constant Field Values

BAMBOO_PERMISSION_PREFIX

public static String BAMBOO_PERMISSION_PREFIX

BAMBOO_PERMISSION_FORM_USER_PREFIX

public static final String BAMBOO_PERMISSION_FORM_USER_PREFIX

BAMBOO_PERMISSION_FORM_GROUP_PREFIX

public static final String BAMBOO_PERMISSION_FORM_GROUP_PREFIX

BAMBOO_PERMISSION_FORM_ROLE_PREFIX

public static final String BAMBOO_PERMISSION_FORM_ROLE_PREFIX
Constructor Detail

BambooAclUpdateHelper

public BambooAclUpdateHelper()
Method Detail

buildPermissionListFromRequest

public List<String> buildPermissionListFromRequest(Map<String,String[]> params)
Builds a list of permissionKeys from the request Map

Parameters:
params - - param list from action.
Returns:
List of Strings representing permissions in the request map

buildUserGroupListsFromPermissions

public void buildUserGroupListsFromPermissions(List<String> grantedPermissions,
                                               List<String> grantedUsers,
                                               List<String> grantedGroups)
Given a list of granted permissions (permissionKey Strings), it will populate the grantedUsers list with unique usernames of those users which have permissions. Likewise, it will populate the grantedGroups list with unique group names of those groups which have permissions.

Parameters:
grantedPermissions -
grantedUsers -
grantedGroups -

addViewPermissionsForEditPermissions

@NotNull
public List<String> addViewPermissionsForEditPermissions(@NotNull
                                                                 List<String> permissionKeys)
For each of the WRITE permission keys in the list make sure there's corresponding READ permission.


buildPermissionAndUserGroupListsFromAcl

public void buildPermissionAndUserGroupListsFromAcl(@NotNull
                                                    List<String> grantedPermissions,
                                                    @NotNull
                                                    List<String> grantedUsers,
                                                    @NotNull
                                                    List<String> grantedGroups,
                                                    @NotNull
                                                    List<String> nonProcessedGrantedPermissions,
                                                    @NotNull
                                                    org.acegisecurity.acls.Acl acl,
                                                    boolean showAdminPermissions,
                                                    @NotNull
                                                    BambooPermissionManager bambooPermissionManager)
Helper conversion method for the permission configuration pages.

Takes in an Acl and populates three lists from this Acl: - grantedPermissions - a list of String in format: bambooPermission_TYPE_PRINCIPAL_PERMISSION - grantedUsers - a list of String usernames - who have at least one AccessControlEntry against the Acl - grantedGroups - a list of String groupnames - who have at least one AccessControlEntry against the Acl - nonProcessedGrantedPermissions - a list of permissions, that are not processed - so could not be changed here. It is introduced to avoid cleaning up permissions, that are not visible for user performing this action

Parameters:
grantedPermissions -
grantedUsers -
grantedGroups -
nonProcessedGrantedPermissions -
acl -
showAdminPermissions -
bambooPermissionManager -

modifyAclAces

public void modifyAclAces(org.acegisecurity.acls.MutableAcl acl,
                          List<String> newPermissionKeys)
Updates an MutableAcl with new AccessControlEntrys with permissions represented by a list of String permissionKeys.

Parameters:
acl -
newPermissionKeys -

getPermissionKeyFromAce

public String getPermissionKeyFromAce(org.acegisecurity.acls.AccessControlEntry ace)
Given an AccessControlEntry return a String representation.

Parameters:
ace -
Returns:

createNewDefaultAcl

public org.acegisecurity.acls.MutableAcl createNewDefaultAcl(@NotNull
                                                             com.atlassian.user.User user,
                                                             Class<? extends Plan> planType)
Creates a default Acl for a specific plan types which has: - All permissions for the creator (user argument) of the plan - READ permission for all logged in users - READ permission for all anonymous users

Parameters:
user - to create acl for.
planType - to create acl for.
Returns:
MutableAcl representing a default permission set

createNewObjectAcl

@NotNull
public org.acegisecurity.acls.MutableAcl createNewObjectAcl(@NotNull
                                                                    com.atlassian.user.User user,
                                                                    Class<? extends BambooIdProvider> permissionObject,
                                                                    long id)
Creates a default Acl for a object which has: - EDIT permission for the creator (user argument) of the deployment project - READ permission for all logged in users - READ permission for all anonymous users

Parameters:
user - to create acl for.
permissionObject - to create acl for.
Returns:
MutableAcl representing a default permission set

copyProjectPermissionsToEnvironment

@NotNull
public org.acegisecurity.acls.MutableAcl copyProjectPermissionsToEnvironment(@NotNull
                                                                                     com.atlassian.user.User user,
                                                                                     Class<? extends BambooIdProvider> permissionObject,
                                                                                     long id,
                                                                                     org.acegisecurity.acls.Acl parentAcl)

clonePermissions

@NotNull
public org.acegisecurity.acls.MutableAcl clonePermissions(@NotNull
                                                                  com.atlassian.user.User user,
                                                                  Class<? extends BambooIdProvider> permissionObject,
                                                                  long id,
                                                                  org.acegisecurity.acls.Acl parentAcl)

getPermission

public org.acegisecurity.acls.Permission getPermission(String permissionKey)


Copyright © 2015 Atlassian Software Systems Pty Ltd. All rights reserved.