設置工作流中的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,則可能為null -
actionDescriptor
- 表示當前的工作流程轉換 - 返回:
- 如果有足夠權限訪問所提供的實體,則為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(@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
-
-