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
,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
groupManager, projectManager, schemeFactory, securityTypeManager
Fields 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) -
Method Summary
Modifier and TypeMethodDescriptiongetUsers
(ProjectPermissionKey permissionKey, PermissionContext ctx) getUsers
(Long permissionId, PermissionContext ctx) void
onClearCache
(ClearCacheEvent event) void
void
start()
Registers this CachingFieldConfigContextPersister's cache in the JIRA instrumentation.Methods inherited from class com.atlassian.jira.permission.DefaultPermissionSchemeManager
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, swapParameterForEntitiesOfType
Methods 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, updateScheme
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.atlassian.jira.config.group.GroupConfigurable
isGroupUsed
Methods inherited from interface com.atlassian.jira.permission.PermissionSchemeManager
getAssociationType
Methods 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)
-
-
Method Details
-
start
Description copied from class:DefaultPermissionSchemeManager
Registers this CachingFieldConfigContextPersister's cache in the JIRA instrumentation.- Specified by:
start
in interfaceStartable
- Overrides:
start
in classDefaultPermissionSchemeManager
- Throws:
Exception
- Allows implementations to throw an Exception.
-
onClearCache
- Overrides:
onClearCache
in classDefaultPermissionSchemeManager
-
onSchemePermissionsFKChangedEvent
- Overrides:
onSchemePermissionsFKChangedEvent
in classDefaultPermissionSchemeManager
-
getUsers
- Specified by:
getUsers
in interfacePermissionSchemeManager
- Specified by:
getUsers
in interfaceSchemeManager
- Overrides:
getUsers
in classAbstractSchemeManager
-
getUsers
public Collection<ApplicationUser> getUsers(@Nonnull ProjectPermissionKey permissionKey, @Nonnull PermissionContext ctx) - Specified by:
getUsers
in interfacePermissionSchemeManager
- Overrides:
getUsers
in classDefaultPermissionSchemeManager
-