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 voidflushCache()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)booleanhasPermission(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.booleanhasPermission(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.booleanhasPermission(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.booleanhasPermission(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)booleanhasPermission(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.booleanhasPermission(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)booleanhasPermission(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)booleanhasPermission(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.booleanhasPermission(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser, boolean createIssue)booleanhasProjects(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)booleanhasProjects(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.user.ApplicationUser applicationUser)com.atlassian.jira.security.ProjectWidePermissionhasProjectWidePermission(com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser)booleanhasPublicAccess(com.atlassian.jira.user.ApplicationUser applicationUser)voidremoveGroupPermissions(java.lang.String group)voidremoveUserPermissions(com.atlassian.jira.user.ApplicationUser applicationUser)Methods inherited from class com.deniz.jira.worklog.permissions.WorklogPROPermissionManager
doIssuePermissionCheck, doProjectPermissionCheckMethods 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:
getAllProjectPermissionsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
getAllProjectPermissionsin classAbstractWorklogPROPermissionManager
-
getProjectPermissions
public java.util.Collection<com.atlassian.jira.permission.ProjectPermission> getProjectPermissions(@Nonnull com.atlassian.jira.permission.ProjectPermissionCategory projectPermissionCategory)- Specified by:
getProjectPermissionsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
getProjectPermissionsin 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:WorklogPROPermissionManagerMaps 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:
getProjectPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
getProjectPermissionin classWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
hasPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPermissionin classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(int permissionId, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser applicationUser)Description copied from class:AbstractWorklogPROPermissionManagerWe 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:
hasPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPermissionin 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:AbstractWorklogPROPermissionManagerWe 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:
hasPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPermissionin 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:
hasPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPermissionin 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:
hasPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPermissionin classAbstractWorklogPROPermissionManager
-
hasPermission
public boolean hasPermission(int permissionId, com.atlassian.jira.project.Project project, com.atlassian.jira.user.ApplicationUser applicationUser)Description copied from class:AbstractWorklogPROPermissionManagerWe 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:
hasPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPermissionin 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:AbstractWorklogPROPermissionManagerWe 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:
hasPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPermissionin 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:
hasProjectWidePermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasProjectWidePermissionin 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:AbstractWorklogPROPermissionManagerWe 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:
hasPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPermissionin 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:
hasPermissionin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPermissionin classAbstractWorklogPROPermissionManager
-
removeGroupPermissions
public void removeGroupPermissions(java.lang.String group) throws com.atlassian.jira.exception.RemoveException- Specified by:
removeGroupPermissionsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
removeGroupPermissionsin 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:
removeUserPermissionsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
removeUserPermissionsin classAbstractWorklogPROPermissionManager- Throws:
com.atlassian.jira.exception.RemoveException
-
hasProjects
public boolean hasProjects(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
hasProjectsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasProjectsin classAbstractWorklogPROPermissionManager
-
hasProjects
public boolean hasProjects(@Nonnull com.atlassian.jira.security.plugin.ProjectPermissionKey projectPermissionKey, @Nullable com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
hasProjectsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasProjectsin classAbstractWorklogPROPermissionManager
-
getProjects
public java.util.Collection<com.atlassian.jira.project.Project> getProjects(int permissionId, com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
getProjectsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
getProjectsin 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:
getProjectsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
getProjectsin 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:
getProjectsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
getProjectsin 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:
getProjectsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
getProjectsin 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:
getArchivedProjectsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
getArchivedProjectsin classWorklogPROPermissionManager
-
flushCache
public void flushCache()- Specified by:
flushCachein interfacecom.atlassian.jira.security.PermissionManager- Overrides:
flushCachein classAbstractWorklogPROPermissionManager
-
getAllGroups
public java.util.Collection<com.atlassian.crowd.embedded.api.Group> getAllGroups(int permissionId, com.atlassian.jira.project.Project project)- Specified by:
getAllGroupsin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
getAllGroupsin classAbstractWorklogPROPermissionManager
-
hasPublicAccess
public boolean hasPublicAccess(@Nullable com.atlassian.jira.user.ApplicationUser applicationUser)- Specified by:
hasPublicAccessin interfacecom.atlassian.jira.security.PermissionManager- Overrides:
hasPublicAccessin classWorklogPROPermissionManager
-