Legacy Version
These are the docs for Directus 8, a legacy version of the platform. If you're looking for the current Directus 9 documentation, go here: https://docs.directus.io
Permissions
Directus permissions are extremely granular and powerful, but don't feel overwhelmed, you don't need to use or even understand the more advanced features to setup basic roles.
Collection Level
Directus supports the standard Create, Read, Update, and Delete (CRUD) permissions, and adds additional support for Comments and Explanations. Furthermore, some privileges have the ability to be scoped to the current user or other their role. Below are all of the collection-level permissions:
Create
none
(orNULL
, default) Can not create any itemsfull
Can create items
Read
none
(orNULL
, default) Can not view any itemsmine
Can only view their itemsrole
Can only view items created by members of this rolefull
Can view all items
Update
none
(orNULL
, default) Can not update any itemsmine
Can only update their itemsrole
Can only update items created by members of this rolefull
Can update all items
Delete
none
(orNULL
, default) Can not delete any itemsmine
Can only delete their itemsrole
Can only delete items created by members of this rolefull
Can delete all items
Comment
none
Can not commentread
Can only see commentscreate
Can add commentsupdate
(orNULL
, default) Can add, edit and delete their commentsfull
Can add, edit and delete any comments (including other users)
Explain (Force)
none
(orNULL
, default) Never requires "commit" commentcreate
Requires a "commit" comment on Createupdate
Requires a "commit" comment on Updatealways
Requires a "commit" comment on Create and Update
NOTE
The mine
and role
permission options are only available when the parent collection contains a created_by
field type. See below for setup.
Shortcuts
Hover over of each row to access an "All/None" shortcut per collection, or click the column header to toggle that permission for all collections.
System Permissions
There is a "Directus System Collections" toggle at the bottom of the permissions interface that lets you manage permissions for directus_files
, directus_users
, and other system collections. This is important if you are trying to enable access to relational Files or Users.
Accountability
To enforce the mine
and role
permissions described above, Directus needs to know who created an item. Additionally, you may want to track when an item was created, or when it was last updated. This can all happen automatically, but you first must include a few system fields.
- User Created – Stores the ID of the user who created this item. Setup: Create a field with the
user_created
interface- This field is required to use the
mine
androle
permissions
- This field is required to use the
- DateTime Created – Stores the GMT datetime this item was created. Setup: Create a field with the
datetime_created
interface - User Updated – Stores the ID of the last user to update this item. Setup: Create a field with the
user_updated
interface - DateTime Updated – Stores the GMT datetime this item was last updated. Setup: Create a field with the
datetime_updated
interface
TIP
There are dedicated interfaces available to make it easier to set up the above fields.
Field Level
Clicking "Fields" allows you to blacklist certain fields for either read and write. This allows you to control which fields are visible or editable within the collection. By default, fields are both readable and writable.
Status Level
Clicking "Allowed Statuses" allows you to blacklist certain status options. This allows you to control which status options a user can choose – for example, not allowing an Intern to publish items. By default, all statuses are available.
Workflow
Workflows are one of the most powerful features of Directus, allowing for all permissions to be controlled per status. Workflow is enabled by clicking the arrows at the far right to expand the collection into Workflow mode and show dedicated permission rows for each status.
In addition to the custom options set within your status interface, there is always a "On Creation" option that sets permissions for when an item is being created. This is useful because when an item is being created it doesn't yet have a status set.
Example
This feature enables absolute control over the most fluid workflows, but it can be difficult to fully understand its potential, so let's explore an example with all the bells and whistles:
Intern
- Creating – Can create Draft or Review items
- Read – Can see Draft items they created, Review items anyone in their role created, all Published items, and all Locked items
- Update – Can only update their Drafts. Can save their drafts to Review, but once submitted they can no longer be edited
- Delete – Can only delete their Drafts items
- Explain – Must leave an explanation when creating/updating Draft or Review items
- Comment – Can comment on their Draft items or Review items created by members of their role
Staff
- Creating – Can create Draft, Review, or Published items
- Read – Can see all Draft, Review, Published, and Locked items
- Update – Can update all Drafts, Review, and Published items. Published items can only be updated to Draft (not Review)
- Delete – Can only delete any Drafts or Review items, and can Delete their Published items
- Explain – Must leave an explanation when creating/updating Published items
- Comment – Can comment on any Draft, Review, or Published items
Manager
- Creating – Can create Draft, Review, Published, or Locked items
- Read – Can see all Draft, Review, Published, and Locked items
- Update – Can update all Drafts, Review, Published, and Locked items. Status can only be updated linearly
- Delete – Can delete any items except Locked
- Explain – Does not need to explain creations or updates
- Comment – Can comment on any item
Administrator
Not shown in the diagram, but worth noting: the Admin role always has full permissions and is not required to explain anything.
App Level
Below the permissions interface is a toggle to show the Directus system collections. These permissions are automatically generated when new roles are created and can be used to control certain system pages, such as: File Library, User Directory, and My Activity.
WARNING
Changing the default system permissions can result in unexpected behavior or a completely broken platform. The API and App rely on certain data. For example, full read permission for directus_users
is required. Only update these values if you know exactly what you're doing.
IP Level
You can also control access to Directus based on a user's IP address. This is useful if you need to limit access to specific offices or locations, provided they have a static IP address. Simply add a CSV of IP addresses to limit, or leave blank to not limit.