@directus/app 9.11.0 → 9.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{authentication.df231b15.js → authentication.51ceac0b.js} +1 -1
- package/dist/assets/{cli.9da7257e.js → cli.89cdebcb.js} +1 -1
- package/dist/assets/{config-options.d7abaa21.js → config-options.64c3d803.js} +10 -10
- package/dist/assets/data-model.5a1776e0.js +1 -0
- package/dist/assets/{data-sharing.3e5d04af.js → data-sharing.26fa9c73.js} +1 -1
- package/dist/assets/display-templates.688ccdf0.js +1 -0
- package/dist/assets/fa-IR.117c6e4d.js +1 -0
- package/dist/assets/fr-CA.a3d698e2.js +1 -0
- package/dist/assets/fr-FR.91bf5a0c.js +1 -0
- package/dist/assets/{glossary.14269bbd.js → glossary.fcceab44.js} +1 -1
- package/dist/assets/{index.6e9900f6.css → index.39ef93ae.css} +1 -1
- package/dist/assets/index.711ccefb.entry.js +541 -0
- package/dist/assets/{index.eedd8c14.js → index.9a16f1fd.js} +1 -1
- package/dist/assets/{input-rich-text-html.22b8d78b.js → input-rich-text-html.a7a17352.js} +1 -1
- package/dist/assets/{insights.b8ef3fca.js → insights.addfd136.js} +1 -1
- package/dist/assets/it-IT.7fa03fbc.js +1 -0
- package/dist/assets/{items.8e48bba2.js → items.eae067cd.js} +14 -14
- package/dist/assets/pl-PL.b97e6b0a.js +1 -0
- package/dist/assets/user-directory.4f4f96ee.js +1 -0
- package/dist/assets/users-roles-permissions.bfc34421.js +1 -0
- package/dist/index.html +2 -2
- package/package.json +6 -6
- package/dist/assets/data-model.8a30a047.js +0 -1
- package/dist/assets/fa-IR.e1677687.js +0 -1
- package/dist/assets/fr-CA.5af4ee91.js +0 -1
- package/dist/assets/fr-FR.14c45a4a.js +0 -1
- package/dist/assets/index.6f51cf11.entry.js +0 -541
- package/dist/assets/it-IT.f8b95631.js +0 -1
- package/dist/assets/pl-PL.88a9500c.js +0 -1
- package/dist/assets/user-directory.14b5d728.js +0 -1
- package/dist/assets/users-roles-permissions.8f931cf8.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{w as n,y as c,z as d,A as o,E as e,C as i,W as s}from"./vendor.3b903562.js";const u={class:"markdown-body"},h=s("The User Directory is the management system for all Users within a Project. "),p=s("Users"),_=s(" are the individual accounts for logging in to the App. Each user belongs to a "),g=s("Role"),m=s(" which defines its "),f=s("Permissions"),y=s("."),b=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-directory-20220222A.webp",alt:"User Directory Page"})],-1),w=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#how-it-works"},"How it Works")]),e("li",null,[e("a",{href:"#access-permissions"},"Access Permissions")]),e("li",null,[e("a",{href:"#user-directory-page"},"User Directory Page")]),e("li",null,[e("a",{href:"#viewing-a-user"},"Viewing a User")]),e("li",null,[e("a",{href:"#user-profile-page"},"User Profile Page")]),e("li",null,[e("a",{href:"#more-help"},"More Help")])])])],-1),v=e("h2",{id:"how-it-works"},[s("How it Works "),e("a",{class:"header-anchor",href:"#how-it-works"},"#")],-1),A=s("This Module is a management system that enables one to view, invite, create, edit, and delete Users. In order to understand and use this Module effectively, you will need to understand "),U=s("Users, Roles, and Permissions"),D=s("."),S=e("h2",{id:"access-permissions"},[s("Access Permissions "),e("a",{class:"header-anchor",href:"#access-permissions"},"#")],-1),P=e("p",null,[s("The permissions configured for your Role will determine what you can see and do inside the User Directory. Roles with "),e("em",null,"Admin Access"),s(" enabled are created with full Permissions. Roles with "),e("em",null,"App Access"),s(" enabled are created with some limited Permissions configured by default. Roles that have neither "),e("em",null,"Admin"),s(" nor "),e("em",null,"App Access"),s(" enabled (such as the built-in "),e("em",null,"Public"),s(" Role) are created with no access permissions "),e("em",null,"(to anything)"),s(" by default. Default permissions can be fully configured in "),e("strong",null,"Settings > Roles & Permissions"),s(".")],-1),T=e("h2",{id:"user-directory-page"},[s("User Directory Page "),e("a",{class:"header-anchor",href:"#user-directory-page"},"#")],-1),k=s("Lists all Users in a Project, with a navigation that allows quick access to Users by Role. This page has the same functionality as other "),L=s("Content Pages"),R=s("."),I=e("video",{title:"User Directory Options",autoplay:"",muted:"",loop:"",controls:""},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-directory-options-20220222A.mp4"}),e("p",null,[s(" Your browser is not displaying the video for some reason. Here's a "),e("a",{href:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-directory-options-20220222A.mp4"},"link to the video"),s(" instead. ")])],-1),x=e("li",null,[e("strong",null,"Select All"),s(" \u2013 Selects all Users currently in queue.")],-1),C=e("li",null,[e("strong",null,"Card Size"),s(" \u2013 Toggles size of User Displays.")],-1),F=e("li",null,[e("strong",null,"Sort Field"),s(" \u2013 Selects Field used to Users by.")],-1),O=e("li",null,[e("strong",null,"Sort Direction"),s(" \u2013 Toggles ascending & descending sort order.")],-1),E=e("li",null,[e("strong",null,"Search"),s(" \u2013 Enables classic type-based searching.")],-1),M=e("li",null,[e("strong",null,"Filter"),s(" \u2013 Enables advanced query-based search.")],-1),H=e("span",{mi:"",btn:"",sec:""},"person_add",-1),z=s(" \u2013 "),N=s("Invite people"),j=s(" to become Users via email."),q=e("span",{mi:"",btn:""},"add",-1),V=s(" \u2013 "),W=s("Create User"),B=s(" manually."),K=e("p",null,[e("em",null,"The following are only visible once Users are selected.")],-1),Y=e("ul",null,[e("li",null,[e("span",{mi:"",btn:"",warn:""},"edit"),s(" \u2013 Opens a User Details page to apply a single edit across multiple Users.")]),e("li",null,[e("strong",null,[e("span",{mi:"",btn:"",dngr:""},"delete")]),s(" \u2013 Deletes one or more Users.")])],-1),G=e("h3",{id:"layout-options"},[s("Layout Options "),e("a",{class:"header-anchor",href:"#layout-options"},"#")],-1),J=e("p",null,[s("The "),e("strong",null,"Sidebar > Layout Options"),s(),e("em",null,[s("(denoted by "),e("span",{mi:"",icon:""},"layers"),s(" when Sidebar is minimized)")]),s(" allows you to adjust how Users are displayed on the User Directory.")],-1),Q=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-directory-layout-options-20220222A.webp",alt:"User Directory Layout Options"})],-1),X=e("h4",{id:"layout"},[s("Layout "),e("a",{class:"header-anchor",href:"#layout"},"#")],-1),Z=e("ul",null,[e("li",null,[e("strong",null,"Layout"),s(" \u2013 Toggles User Display from a dropdown menu.")]),e("li",null,[e("strong",null,"Image Source"),s(" \u2013 Selects the image Field for the User Display.")]),e("li",null,[e("strong",null,"Title"),s(" \u2013 Sets a title for the User via Display Templates.")]),e("li",null,[e("strong",null,"Subtitle"),s(" \u2013 Sets a subtitle for the User via Display Templates.")])],-1),$=e("h4",{id:"layout-setup"},[s("Layout Setup "),e("a",{class:"header-anchor",href:"#layout-setup"},"#")],-1),ee=e("ul",null,[e("li",null,[e("strong",null,"Image Fit"),s(" \u2013 Displays the image as cropped or contained.")]),e("li",null,[e("strong",null,"Fallback Icon"),s(" \u2013 Sets a default icon for Users that have no image set.")])],-1),se=e("h2",{id:"viewing-a-user"},[s("Viewing a User "),e("a",{class:"header-anchor",href:"#viewing-a-user"},"#")],-1),oe=e("video",{autoplay:"",muted:"",loop:"",controls:""},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/viewing-a-user-20220222A.mp4"}),e("p",null,[s(" Your browser is not displaying the video for some reason. Here's a "),e("a",{href:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/viewing-a-user-20220222A.mp4"},"link to the video"),s(" instead. ")])],-1),te=e("p",null,"Users are referenced throughout the app, often for accountability purposes. Hovering over a User in this context will provide a popover with basic information. Clicking that popover will navigate you to a view of that User\u2019s profile page.",-1),ie=e("h2",{id:"user-profile-page"},[s("User Profile Page "),e("a",{class:"header-anchor",href:"#user-profile-page"},"#")],-1),re=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-profile-20220222A.webp",alt:"The User Page"})],-1),ne=s("A User\u2019s profile page can be accessed from the User Directory or by clicking the User Menu at the bottom of the "),le=s("Module Bar"),ae=s(". The profile page has the same features and functionality as the "),ce=s("Item Page"),de=s(". Administrators can customize the Fields on this page, but the following are available by default."),ue=e("h3",{id:"user-details"},[s("User Details "),e("a",{class:"header-anchor",href:"#user-details"},"#")],-1),he=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-details-20220222A.webp",alt:"User Details"})],-1),pe=e("ul",null,[e("li",null,[e("strong",null,"First Name"),s(" \u2013 The given name.")]),e("li",null,[e("strong",null,"Last Name"),s(" \u2013 The family/surname.")]),e("li",null,[e("strong",null,"Email"),s(" \u2013 A unique email address.")]),e("li",null,[e("strong",null,"Password"),s(" \u2013 A hashed system password.")]),e("li",null,[e("strong",null,"Avatar"),s(" \u2013 An image to represent the User.")]),e("li",null,[e("strong",null,"Location"),s(" \u2013 The city, country, office, or branch name.")]),e("li",null,[e("strong",null,"Title"),s(" \u2013 The professional staff title.")]),e("li",null,[e("strong",null,"Description"),s(" \u2013 A freeform text description.")]),e("li",null,[e("strong",null,"Tags"),s(" \u2013 Keywords for search-ability.")])],-1),_e=e("h3",{id:"user-preferences"},[s("User Preferences "),e("a",{class:"header-anchor",href:"#user-preferences"},"#")],-1),ge=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-preferences-20220222A.webp",alt:"User Preferences"})],-1),me=e("ul",null,[e("li",null,[e("strong",null,"Language"),s(" \u2013 The preferred App language/locale.")]),e("li",null,[e("strong",null,"Theme"),s(" \u2013 Light or Dark mode (or based on system preferences).")]),e("li",null,[e("strong",null,"Multi-Factor Authentication"),s(" \u2013 Configuration for MFA.")]),e("li",null,[e("strong",null,"Email Notifications"),s(" \u2013 Receive emails for notifications.")])],-1),fe=e("h3",{id:"admin-options"},[s("Admin Options "),e("a",{class:"header-anchor",href:"#admin-options"},"#")],-1),ye=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/admin-options-20220222A.webp",alt:"Admin Options"})],-1),be=e("li",null,[e("strong",null,"Status"),s(" \u2013 Sets User status as Draft, Invited, Active, Suspended, Archived.")],-1),we=e("li",null,[e("strong",null,"Role"),s(" \u2013 Defines the User\u2019s Role.")],-1),ve=e("li",null,[e("strong",null,"Token"),s(" \u2013 Accepts any string as User access token. At least 19-20 characters recommended, but we give you the tools and flexibility to set this according to you own internal security policies.")],-1),Ae=e("strong",null,"Provider",-1),Ue=s(" \u2013 "),De=e("em",null,"read-only:",-1),Se=s(" SSO provider associated with User. See our built-in "),Pe=s("SSO options"),Te=s("."),ke=e("li",null,[e("strong",null,"External Identifier"),s(" \u2013 Displays external identifier generated by SSO provider.")],-1),Le=e("h3",{id:"read-only-info"},[s("Read-only Info "),e("a",{class:"header-anchor",href:"#read-only-info"},"#")],-1),Re=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-profile-sidebar-information-20220309A.webp",alt:"User Profile Sidebar Information"})],-1),Ie=e("p",null,[s("Information in the Sidebar "),e("em",null,[s("(denoted by "),e("span",{mi:"",icon:"",dark:""},"info"),s(" when Sidebar is minimized)")]),s(" also includes the following read-only details:")],-1),xe=e("ul",null,[e("li",null,[e("strong",null,"User Key"),s(" \u2013 The Primary Key of the Usser.")]),e("li",null,[e("strong",null,"Last Page"),s(" \u2013 The last App page accessed by the user.")]),e("li",null,[e("strong",null,"Last Access"),s(" \u2013 The timestamp of the User\u2019s last App or API action.")])],-1),Ce=e("h2",{id:"more-help"},[s("More Help "),e("a",{class:"header-anchor",href:"#more-help"},"#")],-1),Fe=e("p",null,[s("Looking for technical support for your non-enterprise project? Chat with thousands of engineers within our growing "),e("a",{href:"https://discord.com/invite/directus",target:"_blank",rel:"noopener noreferrer"},"Community on Discord")],-1),ze={setup(Oe,{expose:l}){const r={title:"User Directory",modularExtension:!1};return l({frontmatter:r}),(Ee,Me)=>{const t=n("router-link"),a=n("DocsWrapper");return c(),d(a,{frontmatter:r},{default:o(()=>[e("div",u,[e("blockquote",null,[e("p",null,[h,i(t,{to:"/docs/getting-started/glossary#users"},{default:o(()=>[p]),_:1}),_,i(t,{to:"/docs/getting-started/glossary#roles"},{default:o(()=>[g]),_:1}),m,i(t,{to:"/docs/getting-started/glossary#permissions"},{default:o(()=>[f]),_:1}),y])]),b,w,v,e("p",null,[A,i(t,{to:"/docs/configuration/users-roles-permissions.md"},{default:o(()=>[U]),_:1}),D]),S,P,T,e("p",null,[k,i(t,{to:"/docs/app/content-collections/"},{default:o(()=>[L]),_:1}),R]),I,e("ul",null,[x,C,F,O,E,M,e("li",null,[H,z,i(t,{to:"/docs/configuration/users-roles-permissions/#inviting-a-user"},{default:o(()=>[N]),_:1}),j]),e("li",null,[q,V,i(t,{to:"/docs/configuration/users-roles-permissions/#creating-a-user"},{default:o(()=>[W]),_:1}),B])]),K,Y,G,J,Q,X,Z,$,ee,se,oe,te,ie,re,e("p",null,[ne,i(t,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[le]),_:1}),ae,i(t,{to:"/docs/app/content-items/"},{default:o(()=>[ce]),_:1}),de]),ue,he,pe,_e,ge,me,fe,ye,e("ul",null,[be,we,ve,e("li",null,[Ae,Ue,De,Se,i(t,{to:"/docs/configuration/sso"},{default:o(()=>[Pe]),_:1}),Te]),ke]),Le,Re,Ie,xe,Ce,Fe])]),_:1})}}};export{ze as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{w as o,y as c,z as u,A as t,E as e,C as l,W as s}from"./vendor.3b903562.js";const d={class:"markdown-body"},h=s("Users"),g=s(" are the individual accounts for authenticating into the API and App. Each user belongs to a "),_=s("Role"),p=s(" which defines its access "),f=s("Permissions"),m=s("."),v=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#creating-a-user"},"Creating a User")]),e("li",null,[e("a",{href:"#inviting-a-user"},"Inviting a User")]),e("li",null,[e("a",{href:"#configuring-a-user"},"Configuring a User")]),e("li",null,[e("a",{href:"#archiving-a-user"},"Archiving a User")]),e("li",null,[e("a",{href:"#deleting-a-user"},"Deleting a User")]),e("li",null,[e("a",{href:"#creating-a-role"},"Creating a Role")]),e("li",null,[e("a",{href:"#configuring-a-role"},"Configuring a Role")]),e("li",null,[e("a",{href:"#deleting-a-role"},"Deleting a Role")]),e("li",null,[e("a",{href:"#configuring-permissions"},"Configuring Permissions")]),e("li",null,[e("a",{href:"#configuring-workflows"},"Configuring Workflows")])])])],-1),b=e("h2",{id:"creating-a-user"},[s("Creating a User "),e("a",{class:"header-anchor",href:"#creating-a-user"},"#")],-1),y=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"add"),s(" in the header")]),e("li",null,[s("Enter an "),e("strong",null,"Email Address")]),e("li",null,[s("Optional: Complete the "),e("strong",null,"other user form fields")]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"check"),s(" to save the user.")])],-1),w=e("h2",{id:"inviting-a-user"},[s("Inviting a User "),e("a",{class:"header-anchor",href:"#inviting-a-user"},"#")],-1),A=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,[s("Click "),e("span",{mi:"",btn:"",sec:""},"person_add"),s(" in the header")]),e("li",null,[s("Enter "),e("strong",null,"one or more email addresses"),s(", separated by new lines, in the modal")]),e("li",null,[s("Select the "),e("strong",null,"Role"),s(" you want to assign to the user(s)")]),e("li",null,[s("Click "),e("strong",null,"Invite")])],-1),k=e("p",null,"At this point the invited user(s) will receive an email with a link to the App where they set a password and enable their account.",-1),C=e("h2",{id:"configuring-a-user"},[s("Configuring a User "),e("a",{class:"header-anchor",href:"#configuring-a-user"},"#")],-1),P=e("li",null,[s("Navigate to the "),e("strong",null,"User Library")],-1),R=e("li",null,[e("strong",null,"Click on the user"),s(" you wish to manage")],-1),U=e("strong",null,"Complete the form",-1),I=s(" of "),D=s("User Fields"),T=e("p",null,"The User Detail is only editable by the current user and admins, and the following fields are only available to admins:",-1),F=e("li",null,[e("strong",null,"Status"),s(" \u2014 Determines if an account is able to access the platform or not. Only the "),e("code",null,"active"),s(" state is able to authenticate, all others are simply descriptive inactive states. "),e("ul",null,[e("li",null,[e("strong",null,"Draft"),s(" \u2014 An incomplete user; no App/API access")]),e("li",null,[e("strong",null,"Invited"),s(" \u2014 Has a pending invite to the project; no App/API access until accepted")]),e("li",null,[e("strong",null,"Active"),s(" \u2014 The only status that has proper access to the App and API")]),e("li",null,[e("strong",null,"Suspended"),s(" \u2014 A user that has been temporarily disabled; no App/API access")]),e("li",null,[e("strong",null,"Archived"),s(" \u2014 A soft-deleted user; no App/API access")])])],-1),N=e("li",null,[e("strong",null,"Role"),s(" \u2014 The user\u2019s role determines their permissions and access")],-1),S=e("strong",null,"Token",-1),x=s(" \u2014 A user\u2019s token is an alternate way to "),E=s("authenticate into the API"),L=s(" using a static string. When NULL, the token is disabled. When enabled, ensure that a secure string is used."),W=e("h2",{id:"archiving-a-user"},[s("Archiving a User "),e("a",{class:"header-anchor",href:"#archiving-a-user"},"#")],-1),j=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,"Click the user you with to archive to go to their User Detail page"),e("li",null,[s("Click on "),e("span",{mi:"",btn:"",warn:""},"archive"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Archive"),s(" in the dialog")])],-1),q=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Disables Access"),e("p",null,[s("Archiving uses "),e("em",null,"soft-delete"),s(", therefore archived users are unable to access the App or API.")])],-1),V=e("h2",{id:"deleting-a-user"},[s("Deleting a User "),e("a",{class:"header-anchor",href:"#deleting-a-user"},"#")],-1),z=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library")]),e("li",null,"Select one or more users you wish to delete"),e("li",null,[s("Click on "),e("span",{mi:"",btn:"",dngr:""},"delete"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Delete"),s(" in the dialog")])],-1),B=e("div",{class:"danger hint"},[e("div",{class:"hint-title"},"Irreversible Change"),e("p",null,"Unlike the soft-delete of archiving, this process is a hard-delete. Therefore, this action is permanent and can not be undone. Please proceed with caution.")],-1),M=e("h2",{id:"creating-a-role"},[s("Creating a Role "),e("a",{class:"header-anchor",href:"#creating-a-role"},"#")],-1),O=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions")])]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"add"),s(" in the header")]),e("li",null,[s("Enter a unique "),e("strong",null,"Role Name")]),e("li",null,[s("Enabling "),e("strong",null,"App Access"),s(" allows logging in to the App")]),e("li",null,[s("Enabling "),e("strong",null,"Admin Access"),s(" gives full permission to project data and Settings")]),e("li",null,[s("Click on "),e("strong",null,"Save"),s(" to save the role")])],-1),Y=e("h2",{id:"configuring-a-role"},[s("Configuring a Role "),e("a",{class:"header-anchor",href:"#configuring-a-role"},"#")],-1),G=e("ul",null,[e("li",null,[e("strong",null,"Permissions"),s(" \u2014 Defines the role\u2019s access permissions")]),e("li",null,[e("strong",null,"Role Name"),s(" \u2014 This is the name of the role")]),e("li",null,[e("strong",null,"Role Icon"),s(" \u2014 The icon used throughout the App when referencing this role")]),e("li",null,[e("strong",null,"Description"),s(" \u2014 A helpful note that explains the role\u2019s purpose")]),e("li",null,[e("strong",null,"App Access"),s(" \u2014 Allows logging in to the App")]),e("li",null,[e("strong",null,"Admin Access"),s(" \u2014 Gives full permission to project data and Settings")]),e("li",null,[e("strong",null,"IP Access"),s(" \u2014 An allow-list of IP addresses from which the platform can be accessed, empty allows all")]),e("li",null,[e("strong",null,"Require 2FA"),s(" \u2014 Forces all users within this role to use two-factor authentication")]),e("li",null,[e("strong",null,"Users in Role"),s(" \u2014 A list of all users within this role")])],-1),H=e("h2",{id:"deleting-a-role"},[s("Deleting a Role "),e("a",{class:"header-anchor",href:"#deleting-a-role"},"#")],-1),K=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" [Role Name]")])]),e("li",null,[s("Click "),e("span",{mi:"",btn:"",dngr:""},"delete"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Delete"),s(" in the dialog")])],-1),J={class:"warning hint"},Q=e("div",{class:"hint-title"},"Users in a Deleted Role",-1),X=s("If you delete a role that still has users in it, those users will be given a "),Z=e("code",null,"NULL",-1),$=s(" role, which denies their App access and limits them to the "),ee=s("Public Role"),se=s(" permissions. They can then be reassigned to a new role by an admin."),te=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Last Admin"),e("p",null,"You must maintain at least one role/user with Admin Access so that you can still properly manage the project.")],-1),ne=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Public Role"),e("p",null,"You can not delete the Public role, as it is part of the core platform. To disable it completely, simply turn off all Public access permissions.")],-1),le=e("h2",{id:"configuring-permissions"},[s("Configuring Permissions "),e("a",{class:"header-anchor",href:"#configuring-permissions"},"#")],-1),ie=e("p",null,"Directus possesses an extremely granular, yet easy to configure, permissions system. When creating a new role, permissions are disabled for all project collections by default \u2014 allowing you to give explicit access to only what is required. Individual permissions are applied to the role, and each is scoped to a specific collection and CRUD action (create, read, update, delete).",-1),oe=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Saves Automatically"),e("p",null,"Every change made to the permissions of a role is saved automatically and instantly.")],-1),ae=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Admin Roles"),e("p",null,[s("If a role is set to "),e("strong",null,"Admin Access"),s(" then it is granted complete access to the platform, and therefore the permission configuration field is disabled.")])],-1),re=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" [Role Name]")])]),e("li",null,[s("Scroll to the "),e("strong",null,"Permissions"),s(" section")]),e("li",null,[e("strong",null,"Click the icon"),s(" for the collection (row) and action (column) you want to set")]),e("li",null,[s("Choose the desired permission level: "),e("span",{mi:"",icon:""},"check"),s(),e("strong",null,"All Access"),s(", "),e("span",{mi:"",icon:""},"block"),s(),e("strong",null,"No Access"),s(", or "),e("span",{mi:"",icon:""},"rule"),s(),e("strong",null,"Use Custom")])],-1),ce=e("p",null,[e("strong",null,[s("If you selected \u201C"),e("span",{mi:"",icon:""},"check"),s(" All Access\u201D or \u201C"),e("span",{mi:"",icon:""},"block"),s(" No Access\u201D then setup is complete.")]),s(" If you chose to customize permissions then continue with the appropriate guide below based on the relevant "),e("em",null,"action"),s(".")],-1),ue=e("h3",{id:"create-(custom-access)"},[s("Create (Custom Access) "),e("a",{class:"header-anchor",href:"#create-(custom-access)"},"#")],-1),de=e("ol",{start:"5"},[e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields accept a value on create. Fields are individually toggled.")]),e("li",null,[e("strong",null,"Field Validation"),s(" define the rules for field values on create")]),e("li",null,[e("strong",null,"Field Presets"),s(" control the field defaults when creating an item")])],-1),he=e("h3",{id:"read-(custom-access)"},[s("Read (Custom Access) "),e("a",{class:"header-anchor",href:"#read-(custom-access)"},"#")],-1),ge={start:"5"},_e=e("strong",null,"Item Permissions",-1),pe=s(" control which items can be read, as defined by the "),fe=s("Filter Rules"),me=s(" entered."),ve=e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields can be read. Fields are individually toggled.")],-1),be=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Read Field Permissions"),e("p",null,[s("The Directus App always requires read access to the Primary Key field (eg: "),e("code",null,"id"),s(") so it can uniquely identify items. Also, if a Collection has \u201CArchive\u201D or \u201CSort\u201D fields configured, those fields will also need read access to use the App\u2019s soft-delete and manual sorting features.")])],-1),ye=e("h3",{id:"update-(custom-access)"},[s("Update (Custom Access) "),e("a",{class:"header-anchor",href:"#update-(custom-access)"},"#")],-1),we={start:"5"},Ae=e("strong",null,"Item Permissions",-1),ke=s(" control which items can be updated, as defined by "),Ce=s("Filter Rules"),Pe=s("."),Re=e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields can be updated. Fields are individually toggled.")],-1),Ue=e("strong",null,"Field Validation",-1),Ie=s(" define the rules for field values on update, as defined by "),De=s("Filter Rules"),Te=s("."),Fe=e("li",null,[e("strong",null,"Field Presets"),s(" control the field defaults when updating an item")],-1),Ne=e("h3",{id:"delete-(custom-access)"},[s("Delete (Custom Access) "),e("a",{class:"header-anchor",href:"#delete-(custom-access)"},"#")],-1),Se={start:"5"},xe=e("strong",null,"Item Permissions",-1),Ee=s(" control which items can be deleted, as defined by the "),Le=s("Filter Rules"),We=s(" entered."),je=e("hr",null,null,-1),qe=e("h3",{id:"configuring-public-permissions"},[s("Configuring Public Permissions "),e("a",{class:"header-anchor",href:"#configuring-public-permissions"},"#")],-1),Ve=e("p",null,"The Public permissions control what project data is accessible without authentication. This is managed via the Public \u201Crole\u201D, which is included in the system by default and can not be deleted.",-1),ze=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Private by Default"),e("p",null,"All of the data within the platform is private by default. Permissions for the public role can be granted on a case-by-case basis by administrators.")],-1),Be=e("h3",{id:"configuring-system-permissions"},[s("Configuring System Permissions "),e("a",{class:"header-anchor",href:"#configuring-system-permissions"},"#")],-1),Me=e("p",null,[s("In addition to permissions for "),e("em",null,"your"),s(" custom collections, you can also customize the permissions for "),e("em",null,"system"),s(" collections. It is important to note that when App Access is enabled for a role, Directus will automatically add permission for the necessary system collections. To edit system permissions, simply click \u201CSystem Collections\u201D at the bottom of the permissions configuration.")],-1),Oe=e("p",null,"There are two pre-configured options you can use for resetting the role\u2019s system permissions and ensure proper App access. To access these, click \u201CSystem Collections\u201D to expand, and then click one of the buttons at the bottom of the listing.",-1),Ye=e("ul",null,[e("li",null,[e("strong",null,"App Access Minimum"),s(" \u2014 The minimum permissions required to properly access the App")]),e("li",null,[e("strong",null,"Recommended Defaults"),s(" \u2014 More permissive but balanced for a better App user experience")])],-1),Ge=e("h2",{id:"configuring-workflows"},[s("Configuring Workflows "),e("a",{class:"header-anchor",href:"#configuring-workflows"},"#")],-1),He=e("p",null,"Workflows are a way to add structured stages to the flow of content authoring. They are primarily defined through the permissions for a Collection, but can be further enhanced via email notifications, custom interfaces, and automation. Directus supports endlessly configurable workflows, so we will only cover one simple example below.",-1),Ke=s("To create a structured workflow for "),Je=e("strong",null,"Articles",-1),Qe=s(", the first step is "),Xe=s("Creating a Field"),Ze=s(" to track the article \u201Cstatus\u201D \u2014 we\u2019ll call it "),$e=e("strong",null,"Status",-1),es=s(", but it can be named anything."),ss=e("li",null,[s("Next, create different Roles for each stage of the workflow, such as "),e("code",null,"author"),s(" and "),e("code",null,"manager"),s(".")],-1),ts=e("li",null,[s("Finally, configure the Role permissions based on the possible values of that Status field, such as "),e("code",null,"draft"),s(", "),e("code",null,"review"),s(", "),e("code",null,"approved"),s(", and "),e("code",null,"published"),s(", so that they are properly restricted to create content and update the status. "),e("ul",null,[e("li",null,[s("The Author can create content, but only save a status of "),e("code",null,"draft"),s(" or "),e("code",null,"review"),s(".")]),e("li",null,[s("The Manager has additional permissions that allow them to save statuses of "),e("code",null,"approved"),s(" or "),e("code",null,"published"),s(".")])])],-1),as={setup(ns,{expose:a}){const i={title:"Users, Roles & Permissions",modularExtension:!1};return a({frontmatter:i}),(ls,is)=>{const n=o("router-link"),r=o("DocsWrapper");return c(),u(r,{frontmatter:i},{default:t(()=>[e("div",d,[e("blockquote",null,[e("p",null,[l(n,{to:"/docs/getting-started/glossary/#users"},{default:t(()=>[h]),_:1}),g,l(n,{to:"/docs/getting-started/glossary/#roles"},{default:t(()=>[_]),_:1}),p,l(n,{to:"/docs/getting-started/glossary/#permissions"},{default:t(()=>[f]),_:1}),m])]),v,b,y,w,A,k,C,e("ol",null,[P,R,e("li",null,[U,I,l(n,{to:"/docs/app/user-directory/#editing-a-user"},{default:t(()=>[D]),_:1})])]),T,e("ul",null,[F,N,e("li",null,[S,x,l(n,{to:"/docs/reference/authentication/"},{default:t(()=>[E]),_:1}),L])]),W,j,q,V,z,B,M,O,Y,G,H,K,e("div",J,[Q,e("p",null,[X,Z,$,l(n,{to:"/docs/configuration/users-roles-permissions/#configuring-public-permissions"},{default:t(()=>[ee]),_:1}),se])]),te,ne,le,ie,oe,ae,re,ce,ue,de,he,e("ol",ge,[e("li",null,[_e,pe,l(n,{to:"/docs/configuration/filter-rules"},{default:t(()=>[fe]),_:1}),me]),ve]),be,ye,e("ol",we,[e("li",null,[Ae,ke,l(n,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[Ce]),_:1}),Pe]),Re,e("li",null,[Ue,Ie,l(n,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[De]),_:1}),Te]),Fe]),Ne,e("ol",Se,[e("li",null,[xe,Ee,l(n,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[Le]),_:1}),We])]),je,qe,Ve,ze,Be,Me,Oe,Ye,Ge,He,e("ol",null,[e("li",null,[Ke,Je,Qe,l(n,{to:"/docs/configuration/data-model/#creating-a-field"},{default:t(()=>[Xe]),_:1}),Ze,$e,es]),ss,ts])])]),_:1})}}};export{as as default};
|