Introduction ⇑ top
Roles were introduced in 3.2. Their purpose is to act as permissions templates so you won't have to manually add permissions to users when assigning them a role in a project. This also has the benefit of actually linking the project roles to actual permissions, so that a project "developer" now has permissions relating to being a developer.
How they work ⇑ top
As mentioned earlier, roles are permission templates. This means that you can specify - on a project-specific basis
- which project-specific permissions a user will get when given a certain role in your project. This way, when adding someone to the team as, say, a "Developer", they will get permissions related to their role. You can easily mix and match roles and give people several roles in a project. As the only act as "grant templates", when permissions are different in two roles, whoever is assigned to both roles will get the sum of all permissions in those roles.
Keep in mind that as the roles are only permission templates, users will not be given new permissions if you update the template
. To update users' permissions after updating the role template, you need to re-add them to the project with that role.
Configuring roles ⇑ top
Global roles ⇑ top
The Bug Genie comes with a set of roles by default (read more about this in DefaultRoles
). You can add more global roles from the roles configuration section (Configure -> roles).
Creating a new role ⇑ top
Click the "Create new role" button on the configure roles page. Enter the new role name, and press "Create role". The new role will appear in the list below with an empty permission set, and you can then proceed to edit which permissions it includes, just as any other role.
Editing a role ⇑ top
Click the "Edit" button next to the role name in the role list. From the "edit" menu that appears you can change the name and update the permissions granted in that template. Use the checkboxes to add that permission to the role. Any project-specific permission can be added here.
Project-specific roles ⇑ top
You can add project-specific roles in project settings (Project -> Settings -> Roles and permissions). These roles will only be available to this project when adding members to the project team. They do not differ in functionality from the global roles apart from this.
Role handling ⇑ top
Giving someone a role ⇑ top
You don't actually "give someone a role", you add them to the project team with a permission template. Whenever you add someone to the project team in the project team configuration, they get the role name as their project role, and the role permission template will be used to give them project permissions. If you give someone more than one role, they will get the sum of permissions from those roles. You can edit specific permissions (such as removing one of the permissions given via the role) after you've added someone to the team. Their permissions (from the role) will not be updated if the role permission list is updated.
Removing someone from a role ⇑ top
Whenever you remove someone from a team, they will still keep all their project permissions until you remove their last role. That way, if you give someone two roles, you will either have to remove their second role permissions manually if you remove one of their roles, or remove them from the team entirely and then re-add them with the role you like them to have.