jira设置问题关闭之后不能继续编辑和添加备注

设置工作流中的Closed步骤的工作流属性值,增加两个:

jira.permission.comment.user:(空)

jira.issue.editable:false

Closed这个步骤之后,可添加备注的用户为空,可编辑属性为false。

参考文章:

com.atlassian.jira.security

类WorkflowBasedPermissionManager

  • 所有已实现的接口:
    PermissionManager
    直接已知子类:
    ThreadLocalCachingPermissionManager


    公共类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,项目)
    • 子任务。,如果指定,则表示该权限适用于此步骤中的问题子任务。

      重要说明:工作流权限只能限制 权限方案中设置的权限,而不能授予权限。

    也可以看看:
    WorkflowBasedPermissionSchemeManager
    • 方法细节

      • 调用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,
                                      @ Nonull 
                                     Status  status)
        从界面复制的描述: PermissionManager
        如果问题处于给定状态,请检查此用户是否具有指定问题的给定权限。

        此方法在工作流转换期间非常有用,可以检查权限将处于新状态,或者(在“问题”对象中更新状态之后)以检查旧状态中的权限。

        具体说明:
        hasPermission 在界面中 PermissionManager
        覆盖:
        hasPermission 在班上 DefaultPermissionManager
        参数:
        permissionKey - 项目权限密钥。
        issue - 问题(不能为空)
        user - 用户对象,如果匿名访问JIRA,则可能为null
        status - 表示我们正在检查权限的状态
        返回:
        如果有足够权限访问所提供的实体,则为True
      • 调用hasPermission

        public boolean hasPermission(int permissionsId,
                                      Project  project,
                                      ApplicationUser  user)
        从界面复制的描述: PermissionManager
        检查指定的用户是否在指定项目的上下文中具有指定的权限。
        具体说明:
        hasPermission 在界面中 PermissionManager
        覆盖:
        hasPermission 在班上 DefaultPermissionManager
        参数:
        permissionsId - 非全局权限,即通过项目上下文授予的权限
        project - 作为权限检查上下文的项目。
        user - 执行权限检查的人员
        返回:
        如果用户在提供的项目的上下文中具有指定的权限,则为true
      • 调用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
原文地址:https://www.cnblogs.com/chenliangcl/p/11200547.html