Role Based Access Control
Video Tutorial: How to use Role Based Access Control
Manage user permissions in your organization and projects with Role Based Access Control (RBAC). This page gives an overview of RBAC, how to assign roles to users and groups, and how to create custom roles.
Overview
Semaphore uses an RBAC model to determine what actions users can take in organizations and projects.
An organization Admin or Owner must invite users via their GitHub or BitBucket accounts before they can access the Semaphore organization or any of the projects.
Role scopes
Semaphore manages roles on two levels:
- Organization: these roles allow users to perform various organizational actions. Users need to be added to the organization before they can access projects.
- Project: these roles give access to a project within the organization. Users need to have access to the repository connected to the project.
Roles can be gained in three ways:
- Direct: you can directly assign up to one organization role and one project role to the user
- Group: you can grant roles to groups. Group members gain the role assigned to the group
- Repository: users may gain project permissions based on their roles in the related repository (only on GitHub)
Permissions are additive
Permissions are additive. Users gaining permissions through multiple ways obtain the combined total of all permissions.
For example, let's say Pam has the admin role in the organization. This gives her unfettered access to all the projects in the organization. If Kevin gives her the reader role in one project, she is still effectively admin in that project. In other words, roles never subtract permissions.