設置工作流中的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)
-
方法摘要
所有方法實例方法具體方法 修飾符和類型 方法和描述 booleanhasPermission(int permissionsId, Issue issue, ApplicationUser user)檢查此用戶是否有權查看指定的問題。booleanhasPermission(int permissionsId, Project project, ApplicationUser user)檢查指定的用戶是否在指定項目的上下文中具有指定的權限。booleanhasPermission(int permissionsId, Project project, ApplicationUser user, boolean issueCreation)檢查指定的用戶是否在指定項目的上下文中具有指定的權限。booleanhasPermission(ProjectPermissionKey permissionsKey, Issue issue, ApplicationUser user)檢查此用戶是否有權查看指定的問題。booleanhasPermission(ProjectPermissionKey permissionKey, Issue issue, ApplicationUser user, com.opensymphony.workflow.loader.ActionDescriptor actionDescriptor)在給定的工作流轉換生效后,檢查此用戶是否具有指定問題的給定權限。booleanhasPermission(ProjectPermissionKey permissionKey, Issue issue, ApplicationUser user, Status status)如果問題處於給定狀態,請檢查此用戶是否具有指定問題的給定權限。booleanhasPermission(ProjectPermissionKey permissionsKey, Project project, ApplicationUser user)檢查指定的用戶是否在指定項目的上下文中具有指定的權限。booleanhasPermission(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
-
-
