com.atlassian.jira.permission
Class WorkflowBasedPermissionSchemeManager

java.lang.Object
  extended by com.atlassian.jira.scheme.AbstractSchemeManager
      extended by com.atlassian.jira.permission.DefaultPermissionSchemeManager
          extended by com.atlassian.jira.permission.WorkflowBasedPermissionSchemeManager
All Implemented Interfaces:
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">${pkey}-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.

See Also:
WorkflowBasedPermissionManager

Field Summary
 
Fields inherited from class com.atlassian.jira.scheme.AbstractSchemeManager
projectManager, schemeFactory
 
Fields inherited from interface com.atlassian.jira.scheme.SchemeManager
PROJECT_ASSOCIATION
 
Constructor Summary
WorkflowBasedPermissionSchemeManager(ProjectManager projectManager, PermissionTypeManager permissionTypeManager, WorkflowPermissionFactory workflowPermissionFactory, PermissionContextFactory permissionContextFactory, OfBizDelegator ofBizDelegator, SchemeFactory schemeFactory, com.atlassian.event.api.EventPublisher eventPublisher, AssociationManager associationManager, GroupManager groupManager)
           
 
Method Summary
 Collection<com.atlassian.crowd.embedded.api.User> getUsers(Long permissionId, PermissionContext ctx)
           
 void onClearCache(ClearCacheEvent event)
           
 void start()
          This method wil be called after the plugin system is fully initialised and all components added to the dependency injection framework.
 
Methods inherited from class com.atlassian.jira.permission.DefaultPermissionSchemeManager
copySchemeEntity, createSchemeEntity, deleteEntity, flushSchemeEntities, getDefaultDescriptionKey, getDefaultNameKey, getEntities, getEntities, getEntities, getEntities, getEntities, getEntities, getEntityName, getGroups, getGroups, getSchemeDesc, getSchemeEntityName, getSchemesContainingEntity, hasSchemeAuthority, hasSchemeAuthority, removeEntities, removeEntities
 
Methods inherited from class com.atlassian.jira.scheme.AbstractSchemeManager
addDefaultSchemeToProject, addDefaultSchemeToProject, addSchemeToProject, addSchemeToProject, copyScheme, copyScheme, createDefaultScheme, createScheme, createSchemeAndEntities, createSchemeGenericValue, createSchemeObject, deleteScheme, flushProjectSchemes, getAssociatedSchemes, getAssociationType, getDefaultScheme, getDefaultSchemeObject, getEntities, getEntity, getProjects, getProjects, getScheme, getScheme, getSchemeFor, 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.permission.PermissionSchemeManager
getAssociationType
 
Methods inherited from interface com.atlassian.jira.scheme.SchemeManager
addDefaultSchemeToProject, addDefaultSchemeToProject, addSchemeToProject, addSchemeToProject, copyScheme, copyScheme, createDefaultScheme, createScheme, createSchemeAndEntities, createSchemeObject, deleteScheme, getAssociatedSchemes, getDefaultScheme, getDefaultSchemeObject, getEntities, getEntity, getProjects, getProjects, getScheme, getScheme, getSchemeFor, getSchemeObject, getSchemeObject, getSchemeObjects, getSchemes, getSchemes, getUnassociatedSchemes, getUsers, getUsers, getUsers, removeSchemesFromProject, removeSchemesFromProject, schemeExists, updateScheme, updateScheme
 

Constructor Detail

WorkflowBasedPermissionSchemeManager

public WorkflowBasedPermissionSchemeManager(ProjectManager projectManager,
                                            PermissionTypeManager permissionTypeManager,
                                            WorkflowPermissionFactory workflowPermissionFactory,
                                            PermissionContextFactory permissionContextFactory,
                                            OfBizDelegator ofBizDelegator,
                                            SchemeFactory schemeFactory,
                                            com.atlassian.event.api.EventPublisher eventPublisher,
                                            AssociationManager associationManager,
                                            GroupManager groupManager)
Method Detail

start

public void start()
           throws Exception
Description copied from interface: Startable
This method wil be called after the plugin system is fully initialised and all components added to the dependency injection framework.

Specified by:
start in interface Startable
Throws:
Exception - Allows implementations to throw an Exception.

onClearCache

@EventListener
public void onClearCache(ClearCacheEvent event)
Overrides:
onClearCache in class DefaultPermissionSchemeManager

getUsers

public Collection<com.atlassian.crowd.embedded.api.User> getUsers(Long permissionId,
                                                                  PermissionContext ctx)
Specified by:
getUsers in interface SchemeManager
Overrides:
getUsers in class AbstractSchemeManager


Copyright © 2002-2012 Atlassian. All Rights Reserved.