com.atlassian.jira.security
Interface PermissionManager

All Superinterfaces:
JiraManager
All Known Implementing Classes:
DefaultPermissionManager, MockPermissionManager, SubvertedPermissionManager, ThreadLocalCachingPermissionManager, WorkflowBasedPermissionManager

@PublicApi
public interface PermissionManager
extends JiraManager

PermissionManager responsible for all project specific permissions.

See JIRA Permissions.

For all global Permissions it is recommended to use GlobalPermissionManager.


Method Summary
 void addPermission(int permissionsId, org.ofbiz.core.entity.GenericValue scheme, String parameter, String securityType)
          Deprecated. Use SchemeManager.createSchemeEntity(GenericValue, com.atlassian.jira.scheme.SchemeEntity) to add project permissions to a permission scheme. Use GlobalPermissionManager.addPermission(com.atlassian.jira.permission.GlobalPermissionType, String) to add global permissions. Since v6.3.
 Collection<com.atlassian.crowd.embedded.api.Group> getAllGroups(int permissionId, Project project)
          Retrieve all groups that are used in the permission globally and in the project.
 Collection<ProjectPermission> getAllProjectPermissions()
           
 Collection<Project> getProjectObjects(int permissionId, com.atlassian.crowd.embedded.api.User user)
          Deprecated. 
Since v6.0: Use getProjects(int, ApplicationUser) instead.
Since v6.3: Use getProjects(ProjectPermissionKey, ApplicationUser) instead.
 com.atlassian.fugue.Option<ProjectPermission> getProjectPermission(ProjectPermissionKey permissionKey)
          Returns a project permission matching the specified key.
 Collection<ProjectPermission> getProjectPermissions(ProjectPermissionCategory category)
           
 Collection<Project> getProjects(int permissionId, ApplicationUser user)
          Deprecated. Use getProjects(ProjectPermissionKey, ApplicationUser) instead. Since v6.3.
 Collection<Project> getProjects(int permissionId, ApplicationUser user, ProjectCategory projectCategory)
          Deprecated. Use getProjects(ProjectPermissionKey, ApplicationUser, ProjectCategory) instead. Since v6.3.
 Collection<org.ofbiz.core.entity.GenericValue> getProjects(int permissionId, com.atlassian.crowd.embedded.api.User user)
          Deprecated. Please use getProjectObjects(int, com.atlassian.crowd.embedded.api.User). Since v4.3
 Collection<org.ofbiz.core.entity.GenericValue> getProjects(int permissionId, com.atlassian.crowd.embedded.api.User user, org.ofbiz.core.entity.GenericValue category)
          Deprecated. 
Since v5.0: Use getProjects(int, User, ProjectCategory) instead.
Since v6.0: Use getProjects(int, ApplicationUser, ProjectCategory) instead.
Since v6.3: Use getProjects(ProjectPermissionKey, ApplicationUser, ProjectCategory) instead.
 Collection<Project> getProjects(int permissionId, com.atlassian.crowd.embedded.api.User user, ProjectCategory projectCategory)
          Deprecated. 
Since v6.0: Use getProjects(int, ApplicationUser, ProjectCategory) instead.
Since v6.3: Use getProjects(ProjectPermissionKey, ApplicationUser, ProjectCategory) instead.
 Collection<Project> getProjects(ProjectPermissionKey permissionKey, ApplicationUser user)
          Retrieve a list of project objects this user has the permission for
 Collection<Project> getProjects(ProjectPermissionKey permissionKey, ApplicationUser user, ProjectCategory projectCategory)
          Returns the list of projects associated with the specified category, that this user has the permissions for.
 boolean hasPermission(int permissionsId, ApplicationUser user)
          Deprecated. Use GlobalPermissionManager.hasPermission(com.atlassian.jira.permission.GlobalPermissionType, ApplicationUser) instead. Since v6.3.
 boolean hasPermission(int permissionsId, org.ofbiz.core.entity.GenericValue entity, com.atlassian.crowd.embedded.api.User u)
          Deprecated. 
Since v3.11: Use hasPermission(int, Issue, User) for Issues or hasPermission(int, Project, User) for Projects.
Since v6.0: Use hasPermission(int, Issue, ApplicationUser) for Issues or hasPermission(int, Project, ApplicationUser) for Projects.
Since v6.3: Use hasPermission(ProjectPermissionKey, Issue, ApplicationUser) for Issues or hasPermission(ProjectPermissionKey, Project, ApplicationUser) for Projects.
 boolean hasPermission(int permissionsId, org.ofbiz.core.entity.GenericValue project, com.atlassian.crowd.embedded.api.User user, boolean issueCreation)
          Deprecated. 
Since v3.11: Use hasPermission(int, Issue, User) for Issues or hasPermission(int, Project, User, boolean) for Projects.
Since v6.0: Use hasPermission(int, Issue, ApplicationUser) for Issues or hasPermission(int, Project, ApplicationUser, boolean) for Projects.
Since v6.3: Use hasPermission(ProjectPermissionKey, Issue, ApplicationUser) for Issues or hasPermission(ProjectPermissionKey, Project, ApplicationUser, boolean) for Projects.
 boolean hasPermission(int permissionsId, Issue issue, ApplicationUser user)
          Deprecated. Use hasPermission(ProjectPermissionKey, Issue, ApplicationUser) instead. Since v6.3.
 boolean hasPermission(int permissionsId, Issue issue, com.atlassian.crowd.embedded.api.User user)
          Deprecated. 
Since v6.0: Use hasPermission(int, Issue, ApplicationUser) instead.
Since v6.3: Use hasPermission(ProjectPermissionKey, Issue, ApplicationUser) instead.
 boolean hasPermission(int permissionsId, Project project, ApplicationUser user)
          Deprecated. Use hasPermission(ProjectPermissionKey, Project, ApplicationUser) instead. Since v6.3.
 boolean hasPermission(int permissionsId, Project project, ApplicationUser user, boolean issueCreation)
          Deprecated. Use hasPermission(ProjectPermissionKey, Project, ApplicationUser, boolean) instead. Since v6.3.
 boolean hasPermission(int permissionsId, Project project, com.atlassian.crowd.embedded.api.User user)
          Deprecated. 
Since v6.0: Use hasPermission(int, Project, ApplicationUser) instead.
Since v6.3: Use hasPermission(ProjectPermissionKey, Project, ApplicationUser) instead.
 boolean hasPermission(int permissionsId, Project project, com.atlassian.crowd.embedded.api.User user, boolean issueCreation)
          Deprecated. 
Since v6.0: Use hasPermission(int, Project, ApplicationUser, boolean) instead.
Since v6.3: Use hasPermission(ProjectPermissionKey, Project, ApplicationUser, boolean) instead.
 boolean hasPermission(int permissionsId, com.atlassian.crowd.embedded.api.User user)
          Deprecated. Use hasPermission(int, ApplicationUser) instead. Since v6.0.
 boolean hasPermission(ProjectPermissionKey permissionKey, Issue issue, ApplicationUser user)
          Checks to see if this user has permission to see the specified issue.
 boolean hasPermission(ProjectPermissionKey permissionKey, Project project, ApplicationUser user)
          Checks whether the specified user has a specified permission within the context of a specified project.
 boolean hasPermission(ProjectPermissionKey permissionKey, Project project, ApplicationUser user, boolean issueCreation)
          Checks whether the specified user has a specified permission within the context of a specified project.
 boolean hasProjects(int permissionId, ApplicationUser user)
          Deprecated. Use hasProjects(ProjectPermissionKey, ApplicationUser) instead. Since v6.3.
 boolean hasProjects(int permissionId, com.atlassian.crowd.embedded.api.User user)
          Deprecated. Use hasProjects(ProjectPermissionKey, ApplicationUser) instead. Since v6.3.
 boolean hasProjects(ProjectPermissionKey permissionKey, ApplicationUser user)
          Can this user see at least one project with this permission
 void removeGroupPermissions(String group)
          Remove all permissions that have used this group
 void removeUserPermissions(ApplicationUser user)
          Remove all permissions that have been assigned to this user
 void removeUserPermissions(String username)
          Deprecated. Use removeUserPermissions(ApplicationUser) instead. Since v6.0.
 

Method Detail

getAllProjectPermissions

Collection<ProjectPermission> getAllProjectPermissions()
Returns:
all project permissions.
Since:
v6.3

getProjectPermissions

Collection<ProjectPermission> getProjectPermissions(@Nonnull
                                                    ProjectPermissionCategory category)
Parameters:
category - project permission category.
Returns:
all project permissions of the specified category.
Since:
v6.3

getProjectPermission

com.atlassian.fugue.Option<ProjectPermission> getProjectPermission(@Nonnull
                                                                   ProjectPermissionKey permissionKey)
Returns a project permission matching the specified key.

Parameters:
permissionKey - A project permission key.
Returns:
a project permission for the given permission key. Option.none() if there is no permission with this key.
Since:
v6.3

addPermission

@Deprecated
void addPermission(int permissionsId,
                              org.ofbiz.core.entity.GenericValue scheme,
                              String parameter,
                              String securityType)
                   throws CreateException
Deprecated. Use SchemeManager.createSchemeEntity(GenericValue, com.atlassian.jira.scheme.SchemeEntity) to add project permissions to a permission scheme. Use GlobalPermissionManager.addPermission(com.atlassian.jira.permission.GlobalPermissionType, String) to add global permissions. Since v6.3.

Grants a permission to the system.

Parameters:
permissionsId - Permissions value. E.g. See Permissions.ADMINISTER
scheme - If null permission is global otherwise it is added to the scheme
parameter - Used for e.g. group name
securityType - e.g. GroupDropdown.DESC
Throws:
CreateException - if permission creation fails

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 com.atlassian.crowd.embedded.api.User user)
Deprecated. Use hasPermission(int, ApplicationUser) instead. Since v6.0.

Checks to see if this user has the specified permission. It will check only global permissions as there are no other permissions to check.

Parameters:
permissionsId - permission id
user - user, can be null - anonymous user
Returns:
true if user is granted given permission, false otherwise
See Also:
GlobalPermissionManager.hasPermission(int, User)

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 ApplicationUser user)
Deprecated. Use GlobalPermissionManager.hasPermission(com.atlassian.jira.permission.GlobalPermissionType, ApplicationUser) instead. Since v6.3.

Checks to see if this user has the specified permission. It will check only global permissions as there are no other permissions to check.

Parameters:
permissionsId - permission id
user - user, can be null - anonymous user
Returns:
true if user is granted given permission, false otherwise
See Also:
GlobalPermissionManager.hasPermission(int, User)

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 org.ofbiz.core.entity.GenericValue entity,
                                 com.atlassian.crowd.embedded.api.User u)
Deprecated. 
Since v3.11: Use hasPermission(int, Issue, User) for Issues or hasPermission(int, Project, User) for Projects.
Since v6.0: Use hasPermission(int, Issue, ApplicationUser) for Issues or hasPermission(int, Project, ApplicationUser) for Projects.
Since v6.3: Use hasPermission(ProjectPermissionKey, Issue, ApplicationUser) for Issues or hasPermission(ProjectPermissionKey, Project, ApplicationUser) for Projects.

Checks to see if this has permission to see the specified entity. Check Permissions scheme(s) if the entity is project. Check Permissions scheme(s) and issue level security scheme(s) if the entity is an issue.

Parameters:
permissionsId - Not a global permission
entity - Not null. Must be either an issue or project.
u - User object, possibly null if JIRA is accessed anonymously
Returns:
True if there are sufficient rights to access the entity supplied
Throws:
IllegalArgumentException - If the entity supplied is NOT an issue or project.

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 Issue issue,
                                 com.atlassian.crowd.embedded.api.User user)
Deprecated. 
Since v6.0: Use hasPermission(int, Issue, ApplicationUser) instead.
Since v6.3: Use hasPermission(ProjectPermissionKey, Issue, ApplicationUser) instead.

Checks to see if this user has permission to see the specified issue.

Note that if the issue's generic value is null, it is assumed that the issue is currently being created, and so the permission check call is deferred to the issue's project object, with the issueCreation flag set to true. See JRA-14788 for more info.

Parameters:
permissionsId - Not a global permission
issue - The Issue (cannot be null)
user - User object, possibly null if JIRA is accessed anonymously
Returns:
True if there are sufficient rights to access the entity supplied

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 Issue issue,
                                 ApplicationUser user)
Deprecated. Use hasPermission(ProjectPermissionKey, Issue, ApplicationUser) instead. Since v6.3.

Checks to see if this user has permission to see the specified issue.

Note that if the issue's generic value is null, it is assumed that the issue is currently being created, and so the permission check call is deferred to the issue's project object, with the issueCreation flag set to true. See JRA-14788 for more info.

Parameters:
permissionsId - Not a global permission
issue - The Issue (cannot be null)
user - User object, possibly null if JIRA is accessed anonymously
Returns:
True if there are sufficient rights to access the entity supplied

hasPermission

boolean hasPermission(@Nonnull
                      ProjectPermissionKey permissionKey,
                      @Nonnull
                      Issue issue,
                      @Nullable
                      ApplicationUser user)
Checks to see if this user has permission to see the specified issue.

Note that if the issue's generic value is null, it is assumed that the issue is currently being created, and so the permission check call is deferred to the issue's project object, with the issueCreation flag set to true. See JRA-14788 for more info.

Parameters:
permissionKey - Not a global permission key
issue - The Issue (cannot be null)
user - User object, possibly null if JIRA is accessed anonymously
Returns:
True if there are sufficient rights to access the entity supplied
Since:
v6.3

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 Project project,
                                 com.atlassian.crowd.embedded.api.User user)
Deprecated. 
Since v6.0: Use hasPermission(int, Project, ApplicationUser) instead.
Since v6.3: Use hasPermission(ProjectPermissionKey, Project, ApplicationUser) instead.

Checks whether the specified user has a specified permission within the context of a specified project.

Parameters:
permissionsId - A non-global permission, i.e. a permission that is granted via a project context
project - The project that is the context of the permission check.
user - The person to perform the permission check for
Returns:
true if the user has the specified permission in the context of the supplied project

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 Project project,
                                 ApplicationUser user)
Deprecated. Use hasPermission(ProjectPermissionKey, Project, ApplicationUser) instead. Since v6.3.

Checks whether the specified user has a specified permission within the context of a specified project.

Parameters:
permissionsId - A non-global permission, i.e. a permission that is granted via a project context
project - The project that is the context of the permission check.
user - The person to perform the permission check for
Returns:
true if the user has the specified permission in the context of the supplied project

hasPermission

boolean hasPermission(@Nonnull
                      ProjectPermissionKey permissionKey,
                      @Nonnull
                      Project project,
                      @Nullable
                      ApplicationUser user)
Checks whether the specified user has a specified permission within the context of a specified project.

Parameters:
permissionKey - A non-global permission, i.e. a permission that is granted via a project context
project - The project that is the context of the permission check.
user - The person to perform the permission check for
Returns:
true if the user has the specified permission in the context of the supplied project
Since:
v6.3

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 Project project,
                                 com.atlassian.crowd.embedded.api.User user,
                                 boolean issueCreation)
Deprecated. 
Since v6.0: Use hasPermission(int, Project, ApplicationUser, boolean) instead.
Since v6.3: Use hasPermission(ProjectPermissionKey, Project, ApplicationUser, boolean) instead.

Checks whether the specified user has a specified permission within the context of a specified project.

Parameters:
permissionsId - A non-global permission, i.e. a permission that is granted via a project context
project - The project that is the context of the permission check.
user - The person to perform the permission check for
issueCreation - Whether this permission is being checked during issue creation
Returns:
true if the user has the specified permission in the context of the supplied project

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 Project project,
                                 ApplicationUser user,
                                 boolean issueCreation)
Deprecated. Use hasPermission(ProjectPermissionKey, Project, ApplicationUser, boolean) instead. Since v6.3.

Checks whether the specified user has a specified permission within the context of a specified project.

Parameters:
permissionsId - A non-global permission, i.e. a permission that is granted via a project context
project - The project that is the context of the permission check.
user - The person to perform the permission check for
issueCreation - Whether this permission is being checked during issue creation
Returns:
true if the user has the specified permission in the context of the supplied project

hasPermission

boolean hasPermission(@Nonnull
                      ProjectPermissionKey permissionKey,
                      @Nonnull
                      Project project,
                      @Nullable
                      ApplicationUser user,
                      boolean issueCreation)
Checks whether the specified user has a specified permission within the context of a specified project.

Parameters:
permissionKey - A non-global permission, i.e. a permission that is granted via a project context
project - The project that is the context of the permission check.
user - The person to perform the permission check for
issueCreation - Whether this permission is being checked during issue creation
Returns:
true if the user has the specified permission in the context of the supplied project
Since:
v6.3

hasPermission

@Deprecated
boolean hasPermission(int permissionsId,
                                 org.ofbiz.core.entity.GenericValue project,
                                 com.atlassian.crowd.embedded.api.User user,
                                 boolean issueCreation)
Deprecated. 
Since v3.11: Use hasPermission(int, Issue, User) for Issues or hasPermission(int, Project, User, boolean) for Projects.
Since v6.0: Use hasPermission(int, Issue, ApplicationUser) for Issues or hasPermission(int, Project, ApplicationUser, boolean) for Projects.
Since v6.3: Use hasPermission(ProjectPermissionKey, Issue, ApplicationUser) for Issues or hasPermission(ProjectPermissionKey, Project, ApplicationUser, boolean) for Projects.

Does the same as hasPermission(int,org.ofbiz.core.entity.GenericValue,User) except the entity is a project GenericValue.

Parameters:
permissionsId - Not a global permission
project - Not null.
user - User object, possibly null if JIRA is accessed anonymously
issueCreation - Whether this permission is being checked during issue creation
Returns:
True if there are sufficient rights to access the entity supplied

removeGroupPermissions

void removeGroupPermissions(String group)
                            throws RemoveException
Remove all permissions that have used this group

Parameters:
group - The name of the group that needs to be removed, must NOT be null and must be a real group
Throws:
RemoveException - if permission removal fails

removeUserPermissions

@Deprecated
void removeUserPermissions(String username)
                           throws RemoveException
Deprecated. Use removeUserPermissions(ApplicationUser) instead. Since v6.0.

Remove all permissions that have used this username

Parameters:
username - username of the user whose permissions are to be removed
Throws:
RemoveException - if permission removal fails

removeUserPermissions

void removeUserPermissions(ApplicationUser user)
                           throws RemoveException
Remove all permissions that have been assigned to this user

Parameters:
user - the user whose permissions are to be removed
Throws:
RemoveException
Since:
v6.0

hasProjects

@Deprecated
boolean hasProjects(int permissionId,
                               com.atlassian.crowd.embedded.api.User user)
Deprecated. Use hasProjects(ProjectPermissionKey, ApplicationUser) instead. Since v6.3.

Can this user see at least one project with this permission

Parameters:
permissionId - must NOT be a global permission
user - user being checked
Returns:
true the given user can see at least one project with the given permission, false otherwise

hasProjects

@Deprecated
boolean hasProjects(int permissionId,
                               ApplicationUser user)
Deprecated. Use hasProjects(ProjectPermissionKey, ApplicationUser) instead. Since v6.3.

Can this user see at least one project with this permission

Parameters:
permissionId - must NOT be a global permission
user - user being checked
Returns:
true the given user can see at least one project with the given permission, false otherwise

hasProjects

boolean hasProjects(@Nonnull
                    ProjectPermissionKey permissionKey,
                    @Nullable
                    ApplicationUser user)
Can this user see at least one project with this permission

Parameters:
permissionKey - must NOT be a global permission
user - user being checked
Returns:
true the given user can see at least one project with the given permission, false otherwise
Since:
v6.3

getProjects

@Deprecated
Collection<org.ofbiz.core.entity.GenericValue> getProjects(int permissionId,
                                                                      com.atlassian.crowd.embedded.api.User user)
Deprecated. Please use getProjectObjects(int, com.atlassian.crowd.embedded.api.User). Since v4.3

Retrieve a list of projects this user has the permission for

Parameters:
permissionId - must NOT be a global permission
user - user
Returns:
a collection of GenericValue objects

getProjectObjects

@Deprecated
Collection<Project> getProjectObjects(int permissionId,
                                                 com.atlassian.crowd.embedded.api.User user)
Deprecated. 
Since v6.0: Use getProjects(int, ApplicationUser) instead.
Since v6.3: Use getProjects(ProjectPermissionKey, ApplicationUser) instead.

Retrieve a list of project objects this user has the permission for

Parameters:
permissionId - must NOT be a global permission
user - user
Returns:
a collection of Project objects

getProjects

@Deprecated
Collection<Project> getProjects(int permissionId,
                                           ApplicationUser user)
Deprecated. Use getProjects(ProjectPermissionKey, ApplicationUser) instead. Since v6.3.

Retrieve a list of project objects this user has the permission for

Parameters:
permissionId - must NOT be a global permission
user - user
Returns:
a collection of Project objects

getProjects

Collection<Project> getProjects(@Nonnull
                                ProjectPermissionKey permissionKey,
                                @Nullable
                                ApplicationUser user)
Retrieve a list of project objects this user has the permission for

Parameters:
permissionKey - must NOT be a global permission
user - user
Returns:
a collection of Project objects
Since:
v6.3

getProjects

@Deprecated
Collection<org.ofbiz.core.entity.GenericValue> getProjects(int permissionId,
                                                                      com.atlassian.crowd.embedded.api.User user,
                                                                      org.ofbiz.core.entity.GenericValue category)
Deprecated. 
Since v5.0: Use getProjects(int, User, ProjectCategory) instead.
Since v6.0: Use getProjects(int, ApplicationUser, ProjectCategory) instead.
Since v6.3: Use getProjects(ProjectPermissionKey, ApplicationUser, ProjectCategory) instead.

Retrieve a list of projects associated with the specified category, that this user has the permissions for

Parameters:
permissionId - permission id
user - user
category - GenericValue representing category
Returns:
a collection of GenericValue objects

getProjects

@Deprecated
Collection<Project> getProjects(int permissionId,
                                           com.atlassian.crowd.embedded.api.User user,
                                           ProjectCategory projectCategory)
Deprecated. 
Since v6.0: Use getProjects(int, ApplicationUser, ProjectCategory) instead.
Since v6.3: Use getProjects(ProjectPermissionKey, ApplicationUser, ProjectCategory) instead.

Returns the list of projects associated with the specified category, that this user has the permissions for.

Parameters:
permissionId - permission id
user - user
projectCategory - the ProjectCategory
Returns:
the list of projects associated with the specified category, that this user has the permissions for.

getProjects

@Deprecated
Collection<Project> getProjects(int permissionId,
                                           ApplicationUser user,
                                           ProjectCategory projectCategory)
Deprecated. Use getProjects(ProjectPermissionKey, ApplicationUser, ProjectCategory) instead. Since v6.3.

Returns the list of projects associated with the specified category, that this user has the permissions for.

Parameters:
permissionId - permission id
user - user
projectCategory - the ProjectCategory
Returns:
the list of projects associated with the specified category, that this user has the permissions for.

getProjects

Collection<Project> getProjects(@Nonnull
                                ProjectPermissionKey permissionKey,
                                @Nullable
                                ApplicationUser user,
                                @Nonnull
                                ProjectCategory projectCategory)
Returns the list of projects associated with the specified category, that this user has the permissions for.

Parameters:
permissionKey - permission key
user - user
projectCategory - the ProjectCategory
Returns:
the list of projects associated with the specified category, that this user has the permissions for.
Since:
v6.3

getAllGroups

Collection<com.atlassian.crowd.embedded.api.Group> getAllGroups(int permissionId,
                                                                Project project)
Retrieve all groups that are used in the permission globally and in the project.

Parameters:
permissionId - permission id
project - project from which to retrieve groups
Returns:
a collection of Groups


Copyright © 2002-2014 Atlassian. All Rights Reserved.