设置工作流中的Closed步骤的工作流属性值,增加两个:
jira.permission.comment.user:(空)
jira.issue.editable:false
Closed这个步骤之后,可添加备注的用户为空,可编辑属性为false。
参考文章:
com.atlassian.jira.security
类WorkflowBasedPermissionManager
- java.lang.Object继承
-
- com.atlassian.jira.security.DefaultPermissionManager
-
- com.atlassian.jira.security.WorkflowBasedPermissionManager
- 所有已实现的接口:
- PermissionManager
公共类WorkflowBasedPermissionManager 扩展了DefaultPermissionManager
权限管理器,允许在工作流XML描述符中为每个工作流步骤进一步限制工作流权限。例如,如果工作流包含一个步骤:<step id =“1”name =“Open”> <meta name =“jira.status.id”> 1 </ meta> <meta name =“jira.permission.comment.group”> acme-bizusers </ meta> <meta name =“jira.permission.comment.user”> qa </ meta> <meta name =“jira.permission.edit.group.1”> jira-developers </ meta> <meta name =“jira.permission.edit.group.2”> jira-editors </ meta> <meta name =“jira.permission.edit.projectrole”> 10001 </ meta>
然后只有acme-bizusers组和用户'qa'的成员才能评论公开问题,只有'jira-developers'和'jira-editors'组成员或项目角色成员id为'10001'将能够编辑问题。当然,假设这些用户已经在权限方案中拥有相关权限。元属性还可以修改子任务的权限。例如,如果'Bug'工作流程的Open步骤具有:
<meta name =“jira.permission.subtasks.edit.group”> jira-qa </ meta>
然后,当他们的父母处于开放状态时,'jira-qa'成员只能编辑Bugs的子任务。格式为'jira.permission。[subtasks。] {permission}。{type} [。suffix]',其中:
- {permission}是指定的短名称
Permissions
- {type}是授予或拒绝拒绝权限的权限类型(组,用户,受让人,记者,潜在客户,用户CF,项目)。
- 子任务。,如果指定,则表示该权限适用于此步骤中的问题子任务。
重要说明:工作流权限只能限制 权限方案中设置的权限,而不能授予权限。
-
-
构造函数摘要
构造函数 构造函数和描述 WorkflowBasedPermissionManager(WorkflowPermissionFactory workflowPermissionFactory, PermissionContextFactory permissionContextFactory, ProjectPermissionTypesManager projectPermissionTypesManager,ProjectPermissionOverrideDescriptorCache projectPermissionOverrideDescriptorCache)
-
方法摘要
所有方法实例方法具体方法 修饰符和类型 方法和描述 boolean
hasPermission(int permissionsId, Issue issue, ApplicationUser user)
检查此用户是否有权查看指定的问题。boolean
hasPermission(int permissionsId, Project project, ApplicationUser user)
检查指定的用户是否在指定项目的上下文中具有指定的权限。boolean
hasPermission(int permissionsId, Project project, ApplicationUser user, boolean issueCreation)
检查指定的用户是否在指定项目的上下文中具有指定的权限。boolean
hasPermission(ProjectPermissionKey permissionsKey, Issue issue, ApplicationUser user)
检查此用户是否有权查看指定的问题。boolean
hasPermission(ProjectPermissionKey permissionKey, Issue issue, ApplicationUser user, com.opensymphony.workflow.loader.ActionDescriptor actionDescriptor)
在给定的工作流转换生效后,检查此用户是否具有指定问题的给定权限。boolean
hasPermission(ProjectPermissionKey permissionKey, Issue issue, ApplicationUser user, Status status)
如果问题处于给定状态,请检查此用户是否具有指定问题的给定权限。boolean
hasPermission(ProjectPermissionKey permissionsKey, Project project, ApplicationUser user)
检查指定的用户是否在指定项目的上下文中具有指定的权限。boolean
hasPermission(ProjectPermissionKey permissionsKey, Project project, ApplicationUser user, boolean issueCreation)
检查指定的用户是否在指定项目的上下文中具有指定的权限。-
从类com.atlassian.jira.security继承的方法。DefaultPermissionManager
flushCache, getAllGroups, getAllProjectPermissions, getArchivedProjectObjects, getArchivedProjects, getProjectObjects, getProjectPermission, getProjectPermissions, getProjects, getProjects, getProjects, getProjects, hasPermission, hasProjects, hasProjects,hasProjectWidePermission, isGlobalPermission, removeGroupPermissions, removeUserPermissions
-
从类java.lang继承的方法。宾语
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
从com.atlassian.jira.security接口继承的方法。PermissionManager
hasPublicAccess
-
-
-
-
构造函数详细信息
-
WorkflowBasedPermissionManager
public WorkflowBasedPermissionManager(WorkflowPermissionFactory workflowPermissionFactory, PermissionContextFactory permissionContextFactory, ProjectPermissionTypesManager projectPermissionTypesManager, ProjectPermissionOverrideDescriptorCache projectPermissionOverrideDescriptorCache)
-
-
方法细节
-
调用hasPermission
public boolean hasPermission(int permissionsId, Issue issue, ApplicationUser user)
从界面复制的描述:PermissionManager
检查此用户是否有权查看指定的问题。请注意,如果问题的通用值为null,则假定当前正在创建问题,因此权限检查调用将延迟到问题的项目对象,并将issueCreation标志设置为true。有关详细信息,请参阅JRA-14788。
- 具体说明:
hasPermission
在界面中PermissionManager
- 覆盖:
hasPermission
在班上DefaultPermissionManager
- 参数:
permissionsId
- 不是全球许可issue
- 问题(不能为空)user
- 用户对象,如果匿名访问JIRA,则可能为null- 返回:
- 如果有足够权限访问所提供的实体,则为True
-
调用hasPermission
public boolean hasPermission(@Nonnull ProjectPermissionKey permissionsKey, @ Nonull Issue issue, ApplicationUser user)
从界面复制的描述:PermissionManager
检查此用户是否有权查看指定的问题。请注意,如果问题的通用值为null,则假定当前正在创建问题,因此权限检查调用将延迟到问题的项目对象,并将issueCreation标志设置为true。有关详细信息,请参阅JRA-14788。
- 具体说明:
hasPermission
在界面中PermissionManager
- 覆盖:
hasPermission
在班上DefaultPermissionManager
- 参数:
permissionsKey
- 不是全局权限密钥issue
- 问题(不能为空)user
- 用户对象,如果匿名访问JIRA,则可能为null- 返回:
- 如果有足够权限访问所提供的实体,则为True
-
调用hasPermission
public boolean hasPermission(@Nonnull ProjectPermissionKey permissionKey, @ Nonull Issue issue, @ Nullable ApplicationUser user, @ Nullable com.opensymphony.workflow.loader.ActionDescriptor actionDescriptor)
从界面复制的描述:PermissionManager
在给定的工作流转换生效后,检查此用户是否具有指定问题的给定权限。- 具体说明:
hasPermission
在界面中PermissionManager
- 覆盖:
hasPermission
在班上DefaultPermissionManager
- 参数:
permissionKey
- 项目权限密钥。issue
- 问题(不能为空)user
- 用户对象,如果匿名访问JIRA,则可能为nullactionDescriptor
- 表示当前的工作流程转换- 返回:
- 如果有足够权限访问所提供的实体,则为True
-
调用hasPermission
public boolean hasPermission(@Nonnull ProjectPermissionKey permissionKey, @ Nonull Issue issue, @ Nullable ApplicationUser user, @ Nonull Status status)
从界面复制的描述:PermissionManager
如果问题处于给定状态,请检查此用户是否具有指定问题的给定权限。此方法在工作流转换期间非常有用,可以检查权限将处于新状态,或者(在“问题”对象中更新状态之后)以检查旧状态中的权限。
- 具体说明:
hasPermission
在界面中PermissionManager
- 覆盖:
hasPermission
在班上DefaultPermissionManager
- 参数:
permissionKey
- 项目权限密钥。issue
- 问题(不能为空)user
- 用户对象,如果匿名访问JIRA,则可能为nullstatus
- 表示我们正在检查权限的状态- 返回:
- 如果有足够权限访问所提供的实体,则为True
-
调用hasPermission
public boolean hasPermission(int permissionsId, Project project, ApplicationUser user)
从界面复制的描述:PermissionManager
检查指定的用户是否在指定项目的上下文中具有指定的权限。- 具体说明:
hasPermission
在界面中PermissionManager
- 覆盖:
hasPermission
在班上DefaultPermissionManager
- 参数:
permissionsId
- 非全局权限,即通过项目上下文授予的权限project
- 作为权限检查上下文的项目。user
- 执行权限检查的人员- 返回:
- 如果用户在提供的项目的上下文中具有指定的权限,则为true
-
调用hasPermission
public boolean hasPermission(@Nonnull ProjectPermissionKey permissionsKey, @ Nonull Project project, @ Nullable ApplicationUser user)
从界面复制的描述:PermissionManager
检查指定的用户是否在指定项目的上下文中具有指定的权限。- 具体说明:
hasPermission
在界面中PermissionManager
- 覆盖:
hasPermission
在班上DefaultPermissionManager
- 参数:
permissionsKey
- 非全局权限,即通过项目上下文授予的权限project
- 作为权限检查上下文的项目。user
- 执行权限检查的人员- 返回:
- 如果用户在提供的项目的上下文中具有指定的权限,则为true
- 也可以看看:
PermissionManager.hasProjectWidePermission(ProjectPermissionKey, Project, ApplicationUser)
-
调用hasPermission
public boolean hasPermission(int permissionsId, Project project, ApplicationUser user, 布尔问题创建)
从界面复制的描述:PermissionManager
检查指定的用户是否在指定项目的上下文中具有指定的权限。- 具体说明:
hasPermission
在界面中PermissionManager
- 覆盖:
hasPermission
在班上DefaultPermissionManager
- 参数:
permissionsId
- 非全局权限,即通过项目上下文授予的权限project
- 作为权限检查上下文的项目。user
- 执行权限检查的人员issueCreation
- 在创建问题期间是否正在检查此权限- 返回:
- 如果用户在提供的项目的上下文中具有指定的权限,则为true
-
调用hasPermission
public boolean hasPermission(@Nonnull ProjectPermissionKey permissionsKey, @ Nonull Project project, ApplicationUser user, 布尔问题创建)
从界面复制的描述:PermissionManager
检查指定的用户是否在指定项目的上下文中具有指定的权限。- 具体说明:
hasPermission
在界面中PermissionManager
- 覆盖:
hasPermission
在班上DefaultPermissionManager
- 参数:
permissionsKey
- 非全局权限,即通过项目上下文授予的权限project
- 作为权限检查上下文的项目。user
- 执行权限检查的人员issueCreation
- 在创建问题期间是否正在检查此权限- 返回:
- 如果用户在提供的项目的上下文中具有指定的权限,则为true
-
-