com.atlassian.jira.security.roles
Class DefaultProjectRoleManager

java.lang.Object
  extended by com.atlassian.jira.security.roles.DefaultProjectRoleManager
All Implemented Interfaces:
ProjectRoleManager

public class DefaultProjectRoleManager
extends Object
implements ProjectRoleManager

See Also:
ProjectRoleManager

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.atlassian.jira.security.roles.ProjectRoleManager
ProjectRoleManager.ProjectIdToProjectRoleIdsMap
 
Constructor Summary
DefaultProjectRoleManager(ProjectRoleAndActorStore projectRoleAndActorStore)
           
 
Method Summary
 void applyDefaultsRolesToProject(Project project)
          This method will insert all the default roles into the role associations for the provided project.
 ProjectRoleManager.ProjectIdToProjectRoleIdsMap createProjectIdToProjectRolesMap(ApplicationUser user, Collection<Long> projectIds)
           
 ProjectRoleManager.ProjectIdToProjectRoleIdsMap createProjectIdToProjectRolesMap(com.atlassian.crowd.embedded.api.User user, Collection<Long> projectIds)
           
 ProjectRole createRole(ProjectRole projectRole)
          Creates a project role object
 void deleteRole(ProjectRole projectRole)
          Deletes a project role object
 DefaultRoleActors getDefaultRoleActors(ProjectRole projectRole)
          This method will return the default role actors for a ProjectRole
 Collection<Long> getProjectIdsContainingRoleActorByNameAndType(String key, String type)
          Returns the project id's which contain a role actor of the specified name and type within any role.
 Map<Long,List<String>> getProjectIdsForUserInGroupsBecauseOfRole(List<Long> projectsToLimitBy, ProjectRole projectRole, String projectRoleType, String userName)
          Returns a Map of Lists.
 ProjectRole getProjectRole(Long id)
          Retrieves a project role object
 ProjectRole getProjectRole(String name)
          Retrieves a project role object by name
 ProjectRoleActors getProjectRoleActors(ProjectRole projectRole, Project project)
          This method will retrieve the object that represents the actors associate with the given projectRole and project context
 Collection<ProjectRole> getProjectRoles()
          Get all the ProjectRoles available in JIRA.
 Collection<ProjectRole> getProjectRoles(ApplicationUser user, Project project)
          This will return all the ProjectRoles that the user is currently a member of for the given project.
 Collection<ProjectRole> getProjectRoles(com.atlassian.crowd.embedded.api.User user, Project project)
          This will return all the ProjectRoles that the user is currently a member of for the given project.
 boolean isRoleNameUnique(String name)
          Will tell you if a role name exists or not.
 boolean isUserInProjectRole(ApplicationUser user, ProjectRole projectRole, Project project)
          Returns true only if the given user is in the given project role for the given project.
 boolean isUserInProjectRole(com.atlassian.crowd.embedded.api.User user, ProjectRole projectRole, Project project)
          Returns true only if the given user is in the given project role for the given project.
 void removeAllRoleActorsByNameAndType(String key, String type)
          This will remove all role actors with the specified name and the specified type.
 void removeAllRoleActorsByProject(Project project)
          Will remove all role actors associated with the specified project.
 List<Long> roleActorOfTypeExistsForProjects(List<Long> projectsToLimitBy, ProjectRole projectRole, String projectRoleType, String projectRoleParameter)
          Returns a list of projectId's for which the role actor of the specified type exists in the project for the provided projectRole.
 void updateDefaultRoleActors(DefaultRoleActors defaultRoleActors)
          This method will update the associations of actors for the default projectRole, specified by the given defaultRoleActors object.
 void updateProjectRoleActors(ProjectRoleActors projectRoleActors)
          Commits the given ProjectRoleActors to permanent store, saving any updates made.
 void updateRole(ProjectRole projectRole)
          Updates a project role object
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultProjectRoleManager

public DefaultProjectRoleManager(ProjectRoleAndActorStore projectRoleAndActorStore)
Method Detail

getProjectRoles

public Collection<ProjectRole> getProjectRoles()
Description copied from interface: ProjectRoleManager
Get all the ProjectRoles available in JIRA. Currently this list is global.

Specified by:
getProjectRoles in interface ProjectRoleManager
Returns:
The global list of project roles in JIRA

getProjectRoles

public Collection<ProjectRole> getProjectRoles(ApplicationUser user,
                                               Project project)
Description copied from interface: ProjectRoleManager
This will return all the ProjectRoles that the user is currently a member of for the given project.

Specified by:
getProjectRoles in interface ProjectRoleManager
Parameters:
user - the user
project - the project
Returns:
a Collection of ProjectRoles.

getProjectRoles

public Collection<ProjectRole> getProjectRoles(com.atlassian.crowd.embedded.api.User user,
                                               Project project)
Description copied from interface: ProjectRoleManager
This will return all the ProjectRoles that the user is currently a member of for the given project.

Specified by:
getProjectRoles in interface ProjectRoleManager
Parameters:
user - the user
project - the project
Returns:
a Collection of ProjectRoles.

getProjectRole

public ProjectRole getProjectRole(Long id)
Description copied from interface: ProjectRoleManager
Retrieves a project role object

Specified by:
getProjectRole in interface ProjectRoleManager
Returns:
the project role based on the id or null if it doesn't exist.

getProjectRole

public ProjectRole getProjectRole(String name)
Description copied from interface: ProjectRoleManager
Retrieves a project role object by name

Specified by:
getProjectRole in interface ProjectRoleManager
Returns:
the project role based on the name or null if it doesn't exist.

createRole

public ProjectRole createRole(ProjectRole projectRole)
Description copied from interface: ProjectRoleManager
Creates a project role object

Specified by:
createRole in interface ProjectRoleManager
Parameters:
projectRole - the project role to create, if the id field is non-null then this will be ignored. Only the roles name and description are used by this method.
Returns:
the created project role object

isRoleNameUnique

public boolean isRoleNameUnique(String name)
Description copied from interface: ProjectRoleManager
Will tell you if a role name exists or not.

Specified by:
isRoleNameUnique in interface ProjectRoleManager
Parameters:
name - the name of the project role to check
Returns:
true if unique, false if one already exists with that name

deleteRole

public void deleteRole(ProjectRole projectRole)
Description copied from interface: ProjectRoleManager
Deletes a project role object

Specified by:
deleteRole in interface ProjectRoleManager

updateRole

public void updateRole(ProjectRole projectRole)
Description copied from interface: ProjectRoleManager
Updates a project role object

Specified by:
updateRole in interface ProjectRoleManager

getProjectRoleActors

public ProjectRoleActors getProjectRoleActors(ProjectRole projectRole,
                                              Project project)
Description copied from interface: ProjectRoleManager
This method will retrieve the object that represents the actors associate with the given projectRole and project context

Specified by:
getProjectRoleActors in interface ProjectRoleManager
Returns:
the projectRoleActors object for the given projectRole and project context

updateProjectRoleActors

public void updateProjectRoleActors(ProjectRoleActors projectRoleActors)
Description copied from interface: ProjectRoleManager
Commits the given ProjectRoleActors to permanent store, saving any updates made.

Specified by:
updateProjectRoleActors in interface ProjectRoleManager

getDefaultRoleActors

public DefaultRoleActors getDefaultRoleActors(ProjectRole projectRole)
Description copied from interface: ProjectRoleManager
This method will return the default role actors for a ProjectRole

Specified by:
getDefaultRoleActors in interface ProjectRoleManager

updateDefaultRoleActors

public void updateDefaultRoleActors(DefaultRoleActors defaultRoleActors)
Description copied from interface: ProjectRoleManager
This method will update the associations of actors for the default projectRole, specified by the given defaultRoleActors object. The actors will be updated to reflect the state of the roleActors set contained within the given defaultRoleActors object.

Specified by:
updateDefaultRoleActors in interface ProjectRoleManager

applyDefaultsRolesToProject

public void applyDefaultsRolesToProject(Project project)
Description copied from interface: ProjectRoleManager
This method will insert all the default roles into the role associations for the provided project. If one of the default actors is already associated with the project, we will leave that association. NOTE: This method is meant to only be called immediatly after a project is created.

Specified by:
applyDefaultsRolesToProject in interface ProjectRoleManager
Parameters:
project - the project to associate the role defaults with

removeAllRoleActorsByNameAndType

public void removeAllRoleActorsByNameAndType(String key,
                                             String type)
Description copied from interface: ProjectRoleManager
This will remove all role actors with the specified name and the specified type. This method should be used to clean up after the actual subject of the role actor has been deleted (ex. deleting a user from the system).

Specified by:
removeAllRoleActorsByNameAndType in interface ProjectRoleManager
type - this is the role type parameter, (ex. GroupRoleActor.TYPE, UserRoleActor.TYPE)

removeAllRoleActorsByProject

public void removeAllRoleActorsByProject(Project project)
Description copied from interface: ProjectRoleManager
Will remove all role actors associated with the specified project. This method should be used to clean up just before the actual project has been deleted (ex. deleting a project from the system).

Specified by:
removeAllRoleActorsByProject in interface ProjectRoleManager
Parameters:
project - this is the project that the role actors are associated with

isUserInProjectRole

public boolean isUserInProjectRole(ApplicationUser user,
                                   ProjectRole projectRole,
                                   Project project)
Description copied from interface: ProjectRoleManager
Returns true only if the given user is in the given project role for the given project. This could be because they are a member of a particular group (groups can be in roles) as well as being a user in a role.

Specified by:
isUserInProjectRole in interface ProjectRoleManager
Parameters:
user - The user to check. If user is null, this will implicitly return false.
projectRole - The role.
project - The project.
Returns:
true if the User is in the role.

isUserInProjectRole

public boolean isUserInProjectRole(com.atlassian.crowd.embedded.api.User user,
                                   ProjectRole projectRole,
                                   Project project)
Description copied from interface: ProjectRoleManager
Returns true only if the given user is in the given project role for the given project. This could be because they are a member of a particular group (groups can be in roles) as well as being a user in a role.

Specified by:
isUserInProjectRole in interface ProjectRoleManager
Parameters:
user - The user to check. If user is null, this will implicitly return false.
projectRole - The role.
project - The project.
Returns:
true if the User is in the role.

getProjectIdsContainingRoleActorByNameAndType

public Collection<Long> getProjectIdsContainingRoleActorByNameAndType(String key,
                                                                      String type)
Description copied from interface: ProjectRoleManager
Returns the project id's which contain a role actor of the specified name and type within any role. This is a method that is provided so that you can efficiently tell which users or groups have been associated with any role within projects.

Specified by:
getProjectIdsContainingRoleActorByNameAndType in interface ProjectRoleManager
Parameters:
key - this is the name that the role actor is stored under (ex. username of 'admin', group name of 'jira-users')
type - this is the role type parameter, (ex. GroupRoleActor.TYPE, UserRoleActor.TYPE)
Returns:
a collection of Long project id's which have a role which contains the role actor with the specified name and type.

roleActorOfTypeExistsForProjects

public List<Long> roleActorOfTypeExistsForProjects(List<Long> projectsToLimitBy,
                                                   ProjectRole projectRole,
                                                   String projectRoleType,
                                                   String projectRoleParameter)
Description copied from interface: ProjectRoleManager
Returns a list of projectId's for which the role actor of the specified type exists in the project for the provided projectRole. This is a method that is meant to efficiently allow discovery of whether a UserRoleActor exists in a project role for a subset of projects.

Specified by:
roleActorOfTypeExistsForProjects in interface ProjectRoleManager
Parameters:
projectsToLimitBy - this will limit the range of projects the method queries. This is a list of Long, project id's. The returned list will be either the same as this list or a subset.
projectRole - the project role to find out if an actor is a member of.
projectRoleType - the type of role actor you want to query for, in most cases this will be UserRoleActor.TYPE.
projectRoleParameter - the parameter describing the role actor, in the case of a UserRoleActor this will be the username.
Returns:
A list of Long, project id's. If a projectId is in this list then the project contains has a role associated for the passed in actor and project role.

getProjectIdsForUserInGroupsBecauseOfRole

public Map<Long,List<String>> getProjectIdsForUserInGroupsBecauseOfRole(List<Long> projectsToLimitBy,
                                                                        ProjectRole projectRole,
                                                                        String projectRoleType,
                                                                        String userName)
Description copied from interface: ProjectRoleManager
Returns a Map of Lists. The key of the map is a Long, project id and the value of the map is a list of group names that the user is a member of for the project. This method is meant to provide an efficient means to discover which groups that are associated with a project role implicitly include the specified user in that project role. We allow you to specify a range of projectsToLimitBy so that you can perform only one query to find this information for many projects for a single projectRole.

Specified by:
getProjectIdsForUserInGroupsBecauseOfRole in interface ProjectRoleManager
Parameters:
projectsToLimitBy - this will limit the range of projects the method queries. This is a list of Long, project id's. The returned list will be either the same as this list or a subset.
projectRole - the project role to find out if an actor is a member of.
projectRoleType - the type of role actor you want to query for, in most cases this will be UserRoleActor.TYPE.
userName - the username to find out if the user is in the role because of a group
Returns:
Returns a Map of Lists. The key of the map is a Long, project id and the value of the map is a list of group names that the user is a member of for the project.

createProjectIdToProjectRolesMap

public ProjectRoleManager.ProjectIdToProjectRoleIdsMap createProjectIdToProjectRolesMap(com.atlassian.crowd.embedded.api.User user,
                                                                                        Collection<Long> projectIds)
Specified by:
createProjectIdToProjectRolesMap in interface ProjectRoleManager

createProjectIdToProjectRolesMap

public ProjectRoleManager.ProjectIdToProjectRoleIdsMap createProjectIdToProjectRolesMap(ApplicationUser user,
                                                                                        Collection<Long> projectIds)
Specified by:
createProjectIdToProjectRolesMap in interface ProjectRoleManager


Copyright © 2002-2014 Atlassian. All Rights Reserved.