In Ghostwriter <= v3.x, the role-based access controls described on this page apply only to the GraphQL API.
In those older versions, user privileges are equivalent to every account having the
manager role.Introduction
User roles are the primary authorization mechanism. There are three user roles:- User
- Manager
- Admin
user role
by default.
If you look in the Hasura GraphQL console, you will also see a
public role. Only Hasura uses this role. An
unauthenticated request (i.e., any request that lacks a valid token in a request’s Authorization header) is
considered to have the public role. Specific webhook endpoints (e.g., login) are accessible to this role.User Role Privileges
Theuser role can only access project and related client data if they:
- have been assigned to the project
- have been invited to access the client
- have been invited to access the project
user role will only see project
details if they can access the project.
A
user account can be granted special access to clients and projects via the invite system. Read below for
details.Augmenting User Permission
An admin can augment user permissions in the admin console. By default, theuser role cannot edit, update,
or delete entries in the shared Findings or Observation libraries. If you need to allow a user to maintain
these records, grant them the necessary permissions in the admin console under their user record.
The Allow Report Template Management augmentation permits a user to create, edit, protect, lint, and
delete global report templates without granting the broader client and project visibility of the manager role.
This is appropriate for roles such as technical writers who maintain shared report templates.
This augmentation does not bypass client authorization. A template manager can manage a client-scoped template
only if they already have access to that client. Users without this augmentation may continue creating and
editing unprotected templates for clients they can access.
Manager Role Privileges
Themanager role can view all clients and projects. The role can also:
- invite others to access client data
- invite others to access project data
- assign others to a project
- create and edit global report templates
- protect report templates and edit templates flagged as protected
- delete report templates
manager role.
Users with thr manager role can invite users to have full access to a client or project from the client
and project dashboards.
Admin Role Privileges
Theadmin role is only used by the GraphQL API. This role has complete access to everything available via
the API. This role can create and manage users and
modify fields not exposed to other roles.
Client and Project Invitations
Someone with themanager or admin role can invite a user to access a client or project via the
Invitations tabs on a client dashboard or the People tab on a project dashboard. Invitations help grant
access to records without requiring the user be assigned as if they are working on the project. That means
invitations are helpful tools for granting access to a client or project without altering the shape of the
project team.
Client invitations are powerful. A client invite grants access to that client and all of that client’s
projects. This is your shortcut for granting someone access to every project for a client, including any
future projects.
Project invitations grant access to the related client record and the target project, but not the client’s
other projects. It’s very similar to a project assignment, but it does not change the shape of the project
team. A project assignment and invitation have the same project-level boundary: the user can access the
related client record and assigned project, but not the client’s other projects (unless they also have a client
invite or another project-specific grant).
Invitations can be retracted at any time. The only impact is loss of access for the user.