AuthzUserSubject does not include the user's groups or the org-member role (which is a db-backed system role).
(user codersdk.User)
| 852 | // AuthzUserSubject does not include the user's groups or the org-member role |
| 853 | // (which is a db-backed system role). |
| 854 | func AuthzUserSubject(user codersdk.User) rbac.Subject { |
| 855 | roles := make(rbac.RoleIdentifiers, 0, len(user.Roles)) |
| 856 | // Member role is always implied |
| 857 | roles = append(roles, rbac.RoleMember()) |
| 858 | for _, r := range user.Roles { |
| 859 | orgID, _ := uuid.Parse(r.OrganizationID) // defaults to nil |
| 860 | roles = append(roles, rbac.RoleIdentifier{ |
| 861 | Name: r.Name, |
| 862 | OrganizationID: orgID, |
| 863 | }) |
| 864 | } |
| 865 | |
| 866 | return rbac.Subject{ |
| 867 | ID: user.ID.String(), |
| 868 | Roles: roles, |
| 869 | Groups: []string{}, |
| 870 | Scope: rbac.ScopeAll, |
| 871 | } |
| 872 | } |
| 873 | |
| 874 | // AuthzUserSubjectWithDB is like AuthzUserSubject but adds db-backed roles |
| 875 | // (like organization-member). |