Fill Assign-To by looking at permission groups
The plugin is deprecated in Trac 1.1.3 and later (trac:#11839). Groups and permissions can be included in the set_owner workflow attribute when the action contains the set_owner or may_set_owner workflow operation (see trac:wiki:1.1/TracWorkflow for more details). The plugin should be uninstalled when upgrading to Trac 1.1.3 or later.
This plugin is an IValidOwnerProvider, providing the FlexibleAssignToPlugin with a specific method to determine user lists for the Assign-To dropdown box.
The list of users is constructed by looking into the permissions table for all-lowercase usernames which are members of certain (configurable) groups.
There is both a global configuration option for a list of such group names, as well as a per-workflow-step variable which takes precedence when it exists.
The groups do not need to have any special permissions defined. Group resolution is done recursively (to a hardcoded depth of 5).
General instructions on installing Trac plugins can be found on the TracPlugins page.
Activate the component in trac.ini like this:
[components] groupingassignto.* = enabled
Add a new section, headed [groupingassignto]. Put an owner_group = Some_Group setting there - by default, any user who is directly or indirectly a member of that group, will be shown in the Assign-To box.
For each individual workflow step where you would like to have a different list of usernames in the Assign-To box, write a workflow setting <stepname>.owner_group = Some_Other_Group.
Instead of single group names, you can also list multiple group names separated by a pipe symbol, like this: <stepname>.owner_group = This_Group | That_Group. The Assign-To box will list all users who are member of either group.
Assuming permission groups Owner_All, Owner_Developer, and Owner_Developer_Management, and an already existing workflow step submit-to-development, the following configuration will
- by default, put all users of group Owner_All into the assign-to box
- for the special workflow step, put there the users from either group Owner_Developer or Owner_Developer_Manager.
[groupingassignto] owner_group = Owner_All [ticket-workflow] ... submit-to-development.owner_group = Owner_Developer | Owner_Developer_Manager
If you have any issues, create a new ticket.
Download the zipped source from here.