Class WorklogPROWorkflowBasedPermissionManager
java.lang.Object
com.deniz.jira.worklog.permissions.AbstractWorklogPROPermissionManager
com.deniz.jira.worklog.permissions.WorklogPROPermissionManager
com.deniz.jira.worklog.permissions.WorklogPROWorkflowBasedPermissionManager
- All Implemented Interfaces:
com.atlassian.jira.security.PermissionManager
,WPPermissionManager
public class WorklogPROWorkflowBasedPermissionManager extends WorklogPROPermissionManager
At first this was a decorator around PermissionManager but it caused cyclic dependency when
starting jira.
Users can prevent working on issue using workflow properties. See WLP-836 for more details.
Also note that jira.permission.work.denied means work is denied for edit and delete to. This is why
we are checking WORK_ON_ISSUE even if when we are moving a worklog or deleting editing a worklog.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.deniz.jira.worklog.permissions.WPPermissionManager
WPPermissionManager.Access
-
Field Summary
Fields inherited from class com.deniz.jira.worklog.permissions.AbstractWorklogPROPermissionManager
internalIssuesService, issueSecuritySchemeManager, permissionManager, permissionSchemeManager
-
Constructor Summary
Constructors Constructor Description WorklogPROWorkflowBasedPermissionManager(com.atlassian.jira.user.util.UserManager userManager, com.atlassian.jira.permission.PermissionContextFactory permissionContextFactory, com.atlassian.jira.security.PermissionManager permissionManager, com.atlassian.jira.issue.security.IssueSecuritySchemeManager issueSecuritySchemeManager, com.atlassian.jira.permission.PermissionSchemeManager permissionSchemeManager, InternalIssuesService internalIssuesService)
-
Method Summary
Modifier and Type Method Description void
flushCache()
java.util.Collection<com.atlassian.crowd.embedded.api.Group>
getAllGroups(int permissionId, com.atlassian.jira.project.Project project)
java.util.Collection<com.atlassian.jira.permission.ProjectPermission>
getAllProjectPermissions()
java.util.Collection<com.atlassian.jira.project.Project>
getArchivedProjects(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.user.ApplicationUser applicationUser)
io.atlassian.fugue.Option<com.atlassian.jira.permission.ProjectPermission>
getProjectPermission(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey)
Maps from permission key to permission module description in xml file.java.util.Collection<com.atlassian.jira.permission.ProjectPermission>
getProjectPermissions(com.atlassian.jira.permission.ProjectPermissionCategory projectPermissionCategory)
java.util.Collection<com.atlassian.jira.project.Project>
getProjects(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)
java.util.Collection<com.atlassian.jira.project.Project>
getProjects(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser, com.atlassian.jira.project.ProjectCategory projectCategory)
java.util.Collection<com.atlassian.jira.project.Project>
getProjects(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.user.ApplicationUser applicationUser)
java.util.Collection<com.atlassian.jira.project.Project>
getProjects(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.user.ApplicationUser applicationUser, com.atlassian.jira.project.ProjectCategory projectCategory)
boolean
hasPermission(int permissionId, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser applicationUser)
We handle "WORK_ON_ISSUE" and other worklog related permissions as a special case in this method to allow collaborators to log work if they have permission granted to them.boolean
hasPermission(int permissionId, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser)
We handle "WORK_ON_ISSUE" and other worklog related permissions as a special case in this method to allow collaborators to log work if they have permission granted to them.boolean
hasPermission(int permissionId, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser, boolean createIssue)
We handle "WORK_ON_ISSUE" and other worklog related permissions as a special case in this method to allow collaborators to log work if they have permission granted to them.boolean
hasPermission(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)
boolean
hasPermission(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser applicationUser)
We handle "Worklog Related Permissions" as a special case in this method to allow collaborators to log work if they have permission granted to them.boolean
hasPermission(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser applicationUser, com.atlassian.jira.issue.status.Status status)
boolean
hasPermission(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser applicationUser, com.opensymphony.workflow.loader.ActionDescriptor actionDescriptor)
boolean
hasPermission(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser)
We handle "WORK_ON_ISSUE" and other worklog related permissions as a special case in this method to allow collaborators to log work if they have permission granted to them.boolean
hasPermission(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser, boolean createIssue)
boolean
hasProjects(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)
boolean
hasProjects(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.user.ApplicationUser applicationUser)
com.atlassian.jira.security.ProjectWidePermission
hasProjectWidePermission(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser)
boolean
hasPublicAccess(com.atlassian.jira.user.ApplicationUser applicationUser)
void
removeGroupPermissions(java.lang.String group)
void
removeUserPermissions(com.atlassian.jira.user.ApplicationUser applicationUser)
Methods inherited from class com.deniz.jira.worklog.permissions.WorklogPROPermissionManager
doIssuePermissionCheck, doProjectPermissionCheck
Methods inherited from class com.deniz.jira.worklog.permissions.AbstractWorklogPROPermissionManager
checkPermissionToViewWorklog, convertToProjectPermissionKey, doIssuePermissionCheck, doIssuePermissionCheckImp, doPermissionSchemeCheck, hasPermissionToViewEstimates, hasPermissionToViewWorklog, isWorklogPermission
-
Constructor Details
-
WorklogPROWorkflowBasedPermissionManager
public WorklogPROWorkflowBasedPermissionManager(com.atlassian.jira.user.util.UserManager userManager, com.atlassian.jira.permission.PermissionContextFactory permissionContextFactory, com.atlassian.jira.security.PermissionManager permissionManager, com.atlassian.jira.issue.security.IssueSecuritySchemeManager issueSecuritySchemeManager, com.atlassian.jira.permission.PermissionSchemeManager permissionSchemeManager, InternalIssuesService internalIssuesService)
-
-
Method Details
-
getAllProjectPermissions
public java.util.Collection<com.atlassian.jira.permission.ProjectPermission> getAllProjectPermissions()- Specified by:
getAllProjectPermissions
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
getAllProjectPermissions
in classAbstractWorklogPROPermissionManager
-
getProjectPermissions
public java.util.Collection<com.atlassian.jira.permission.ProjectPermission> getProjectPermissions(@Nonnull com.atlassian.jira.permission.ProjectPermissionCategory projectPermissionCategory)- Specified by:
getProjectPermissions
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
getProjectPermissions
in classAbstractWorklogPROPermissionManager
-
getProjectPermission
public io.atlassian.fugue.Option<com.atlassian.jira.permission.ProjectPermission> getProjectPermission(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey)Description copied from class:WorklogPROPermissionManager
Maps from permission key to permission module description in xml file. Description includes more information about the permission such as whether it is applicable to/available for archived entities.- Specified by:
getProjectPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
getProjectPermission
in classWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
hasPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPermission
in classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(int permissionId, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser applicationUser)Description copied from class:AbstractWorklogPROPermissionManager
We handle "WORK_ON_ISSUE" and other worklog related permissions as a special case in this method to allow collaborators to log work if they have permission granted to them.- Specified by:
hasPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPermission
in classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nonnull com.atlassian.jira.issue.Issue issue, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser)Description copied from class:AbstractWorklogPROPermissionManager
We handle "Worklog Related Permissions" as a special case in this method to allow collaborators to log work if they have permission granted to them.- Specified by:
hasPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPermission
in classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nonnull com.atlassian.jira.issue.Issue issue, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser, @Nullable com.opensymphony.workflow.loader.ActionDescriptor actionDescriptor)- Specified by:
hasPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPermission
in classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nonnull com.atlassian.jira.issue.Issue issue, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser, @Nonnull com.atlassian.jira.issue.status.Status status)- Specified by:
hasPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPermission
in classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(int permissionId, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser)Description copied from class:AbstractWorklogPROPermissionManager
We handle "WORK_ON_ISSUE" and other worklog related permissions as a special case in this method to allow collaborators to log work if they have permission granted to them.- Specified by:
hasPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPermission
in classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nonnull com.atlassian.jira.project.Project project, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser)Description copied from class:AbstractWorklogPROPermissionManager
We handle "WORK_ON_ISSUE" and other worklog related permissions as a special case in this method to allow collaborators to log work if they have permission granted to them.- Specified by:
hasPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPermission
in classAbstractWorklogPROPermissionManager
-
hasProjectWidePermission
@Nonnull public com.atlassian.jira.security.ProjectWidePermission hasProjectWidePermission(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nonnull com.atlassian.jira.project.Project project, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
hasProjectWidePermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasProjectWidePermission
in classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(int permissionId, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser, boolean createIssue)Description copied from class:AbstractWorklogPROPermissionManager
We handle "WORK_ON_ISSUE" and other worklog related permissions as a special case in this method to allow collaborators to log work if they have permission granted to them.- Specified by:
hasPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPermission
in classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nonnull com.atlassian.jira.project.Project project, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser, boolean createIssue)- Specified by:
hasPermission
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPermission
in classAbstractWorklogPROPermissionManager
-
removeGroupPermissions
public void removeGroupPermissions(java.lang.String group) throws com.atlassian.jira.exception.RemoveException- Specified by:
removeGroupPermissions
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
removeGroupPermissions
in classAbstractWorklogPROPermissionManager
- Throws:
com.atlassian.jira.exception.RemoveException
-
removeUserPermissions
public void removeUserPermissions(com.atlassian.jira.user.ApplicationUser applicationUser) throws com.atlassian.jira.exception.RemoveException- Specified by:
removeUserPermissions
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
removeUserPermissions
in classAbstractWorklogPROPermissionManager
- Throws:
com.atlassian.jira.exception.RemoveException
-
hasProjects
public boolean hasProjects(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
hasProjects
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasProjects
in classAbstractWorklogPROPermissionManager
-
hasProjects
public boolean hasProjects(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
hasProjects
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasProjects
in classAbstractWorklogPROPermissionManager
-
getProjects
public java.util.Collection<com.atlassian.jira.project.Project> getProjects(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
getProjects
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
getProjects
in classAbstractWorklogPROPermissionManager
-
getProjects
public java.util.Collection<com.atlassian.jira.project.Project> getProjects(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
getProjects
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
getProjects
in classAbstractWorklogPROPermissionManager
-
getProjects
public java.util.Collection<com.atlassian.jira.project.Project> getProjects(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser, com.atlassian.jira.project.ProjectCategory projectCategory)- Specified by:
getProjects
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
getProjects
in classAbstractWorklogPROPermissionManager
-
getProjects
public java.util.Collection<com.atlassian.jira.project.Project> getProjects(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser, @Nullable com.atlassian.jira.project.ProjectCategory projectCategory)- Specified by:
getProjects
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
getProjects
in classAbstractWorklogPROPermissionManager
-
getArchivedProjects
public java.util.Collection<com.atlassian.jira.project.Project> getArchivedProjects(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
getArchivedProjects
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
getArchivedProjects
in classWorklogPROPermissionManager
-
flushCache
public void flushCache()- Specified by:
flushCache
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
flushCache
in classAbstractWorklogPROPermissionManager
-
getAllGroups
public java.util.Collection<com.atlassian.crowd.embedded.api.Group> getAllGroups(int permissionId, com.atlassian.jira.project.Project project)- Specified by:
getAllGroups
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
getAllGroups
in classAbstractWorklogPROPermissionManager
-
hasPublicAccess
public boolean hasPublicAccess(@Nullable com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
hasPublicAccess
in interfacecom.atlassian.jira.security.PermissionManager
- Overrides:
hasPublicAccess
in classWorklogPROPermissionManager
-