Package com.atlassian.jira.permission
Class WorkflowBasedPermissionSchemeManager
java.lang.Object
com.atlassian.jira.scheme.AbstractSchemeManager
com.atlassian.jira.permission.DefaultPermissionSchemeManager
com.atlassian.jira.permission.WorkflowBasedPermissionSchemeManager
- All Implemented Interfaces:
GroupConfigurable,Startable,InitializingComponent,PermissionSchemeManager,SchemeManager
public class WorkflowBasedPermissionSchemeManager
extends DefaultPermissionSchemeManager
implements Startable
Custom permission scheme manager that allows the list of assignable users to be restricted by workflow state.
In jira-workflow.xml, every step can have a meta attribute stating which groups are assignable:
<step id="23" name="Pending Biz User Approval"> .... <meta name="jira.permission.assignable.group">acme-bizusers</meta>
When getUsers(Long, PermissionContext) is called to discover assignable users,
this permission scheme manager first does the regular "Assignable" check, and then filters returned users for membership
of the 'jira.permission.assignable.group' (in this example). If jira.permission.assignable.* isn't specified for a step, all permission-derived users
are returned.
-
Field Summary
Fields inherited from class com.atlassian.jira.scheme.AbstractSchemeManager
cacheManager, groupManager, projectManager, schemeFactory, securityTypeManagerFields inherited from interface com.atlassian.jira.scheme.SchemeManager
PROJECT_ASSOCIATION -
Constructor Summary
ConstructorsConstructorDescriptionWorkflowBasedPermissionSchemeManager(ProjectManager projectManager, PermissionTypeManager permissionTypeManager, WorkflowPermissionFactory workflowPermissionFactory, PermissionContextFactory permissionContextFactory, OfBizDelegator ofBizDelegator, SchemeFactory schemeFactory, com.atlassian.event.api.EventPublisher eventPublisher, NodeAssociationStore nodeAssociationStore, GroupManager groupManager, com.atlassian.cache.CacheManager cacheManager, PermissionSchemeAttributeManager permissionSchemeAttributeManager, SubTaskManager subTaskManager) -
Method Summary
Modifier and TypeMethodDescriptiongetUsers(ProjectPermissionKey permissionKey, PermissionContext ctx) getUsers(Long permissionId, PermissionContext ctx) voidonClearCache(ClearCacheEvent event) voidvoidstart()Registers this CachingFieldConfigContextPersister's cache in the JIRA instrumentation.Methods inherited from class com.atlassian.jira.permission.DefaultPermissionSchemeManager
afterInstantiation, createSchemeAddedToProjectEvent, createSchemeCopiedEvent, createSchemeCreatedEvent, createSchemeEntity, createSchemeEntityDeletedEvent, createSchemeEntityNoEvent, createSchemeRemovedFromProjectEvent, createSchemeUpdatedEvent, deleteEntities, deleteEntity, deleteScheme, flushSchemeEntities, getDefaultDescriptionKey, getDefaultNameKey, getEntities, getEntities, getEntities, getEntities, getEntities, getEntities, getEntities, getEntities, getEntities, getEntityName, getGroups, getGroups, getGroups, getPermissionSchemeEntries, getPermissionSchemeEntries, getPermissionSchemeEntries, getSchemeDesc, getSchemeEntityName, getSchemeFor, getSchemeIdFor, getSchemesContainingEntity, hasExtendedProjectAdministration, hasProjectWidePermission, hasSchemePermission, hasSchemePermission, hasSchemePermission, hasSchemePermission, isGroupUsed, makeSchemeEntity, removeEntities, removeEntities, removeEntitiesReturningAffectedEntities, swapParameterForEntitiesOfTypeMethods inherited from class com.atlassian.jira.scheme.AbstractSchemeManager
addDefaultSchemeToProject, addDefaultSchemeToProject, addSchemeToProject, addSchemeToProject, copyScheme, copyScheme, createDefaultScheme, createScheme, createSchemeAndEntities, createSchemeGenericValue, createSchemeNoEvent, createSchemeObject, flushProjectSchemes, getApplicationI18n, getAssociatedSchemes, getAssociationType, getDefaultScheme, getDefaultSchemeObject, getEntities, getEntitiesByIds, getEntity, getNameForCopy, getProjects, getScheme, getScheme, getSchemeObject, getSchemeObject, getSchemeObjects, getSchemes, getSchemes, getUnassociatedSchemes, getUsers, getUsers, getUsers, removeSchemesFromProject, removeSchemesFromProject, schemeExists, updateScheme, updateSchemeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.atlassian.jira.config.group.GroupConfigurable
isGroupUsedMethods inherited from interface com.atlassian.jira.permission.PermissionSchemeManager
getAssociationTypeMethods inherited from interface com.atlassian.jira.scheme.SchemeManager
addDefaultSchemeToProject, addDefaultSchemeToProject, addSchemeToProject, addSchemeToProject, copyScheme, copyScheme, createDefaultScheme, createScheme, createSchemeAndEntities, createSchemeObject, getAssociatedSchemes, getDefaultScheme, getDefaultSchemeObject, getEntities, getEntitiesByIds, getEntity, getProjects, getScheme, getScheme, getSchemeObject, getSchemeObject, getSchemeObjects, getSchemes, getSchemes, getUnassociatedSchemes, getUsers, getUsers, getUsers, removeSchemesFromProject, removeSchemesFromProject, schemeExists, updateScheme, updateScheme
-
Constructor Details
-
WorkflowBasedPermissionSchemeManager
public WorkflowBasedPermissionSchemeManager(ProjectManager projectManager, PermissionTypeManager permissionTypeManager, WorkflowPermissionFactory workflowPermissionFactory, PermissionContextFactory permissionContextFactory, OfBizDelegator ofBizDelegator, SchemeFactory schemeFactory, com.atlassian.event.api.EventPublisher eventPublisher, NodeAssociationStore nodeAssociationStore, GroupManager groupManager, com.atlassian.cache.CacheManager cacheManager, PermissionSchemeAttributeManager permissionSchemeAttributeManager, SubTaskManager subTaskManager)
-
-
Method Details
-
start
Description copied from class:DefaultPermissionSchemeManagerRegisters this CachingFieldConfigContextPersister's cache in the JIRA instrumentation.- Specified by:
startin interfaceStartable- Overrides:
startin classDefaultPermissionSchemeManager- Throws:
Exception
-
onClearCache
- Overrides:
onClearCachein classDefaultPermissionSchemeManager
-
onSchemePermissionsFKChangedEvent
- Overrides:
onSchemePermissionsFKChangedEventin classDefaultPermissionSchemeManager
-
getUsers
- Specified by:
getUsersin interfacePermissionSchemeManager- Specified by:
getUsersin interfaceSchemeManager- Overrides:
getUsersin classAbstractSchemeManager
-
getUsers
public Collection<ApplicationUser> getUsers(@Nonnull ProjectPermissionKey permissionKey, @Nonnull PermissionContext ctx) - Specified by:
getUsersin interfacePermissionSchemeManager- Overrides:
getUsersin classDefaultPermissionSchemeManager
-