Skip to content
Operations

Users and roles

Invite people, give them roles, and decide exactly what each role may do — down to a single collection.

On this page

#Users

Add people under Users. Without a password, Lettern emails an invitation link to set one. People manage their own name, password, two-factor authentication and API tokens under Account.

Super administrators may do everything regardless of role; keep that to one or two people.

Someone whose roles don't include Access the admin is a site visitor. They appear under Visitors and use the public account pages instead of the admin. The member role is there for them, and pages can be limited to a role.

Entry authorship is separate from roles and edit history. Editors can assign or clear an entry's author through its details panel; see Entries.

Admin user pickers use users/lookup, available with admin.access. It returns paginated PersonSummary records containing only id, name, initials and avatar. This lets editors find an author without access to user-management records, email addresses or roles. Use the protected user-management abilities when you need to administer accounts.

#Profile fields

Every account has a name, an email and roles. For anything else — a bio, a job title, a photo — add fields under Users → Profile fields, with the same field editor collections use. They are stored in content/users.yaml; people fill them in under Account, admins in the user dialog. Required profile fields may stay empty until someone completes their profile. Agents read and change them through users/fields, and data on users/update and account/update.

#Roles

Roles are lists of permissions, edited under Settings → Roles (from the letterncms/users module) and stored in config/roles.yaml — a settings namespace like any other, so agents change them with settings/update. The Administrator role always exists and keeps every permission. Lettern starts with three:

RoleCan
AdministratorEverything.
EditorAll content, media, menus, forms, comments and publishing the site.
AuthorWrite and edit content and upload media, but not publish; comment.

#Permissions

Permissions are dotted names; * matches any part:

PermissionAllows
admin.accessSigning in to the admin.
entries.pages.view, .create, .edit, .publish, .deleteWorking with one collection — entries.*.edit for all of them. entries.templates.* and entries.components.* decide who designs templates and components.
media.view, media.upload, media.edit, media.deleteMedia.
globals.view, globals.edit, globals.manageGlobal sets: reading, changing values, creating sets and changing their fields.
collections.manageCreating and changing collections and fieldsets.
users.view, users.manage, tokens.manage, audit.viewPeople, tokens and the audit log.
settings.manage, packages.manageSettings, the design system, modules and plugins.
site.buildPublishing the whole site.
blocks.htmlAdding raw HTML blocks — only for trusted people.
site.codeEditing the site's custom CSS and JavaScript — only for trusted people.

Each permission belongs to the module or plugin that registers it, so switching one off removes its permissions from Roles too. Plugins register their own (forms.view, navigation.manage, comments.moderate, assistant.use…); Roles lists every permission with a description. A user's permissions are the union of their roles. API tokens can only narrow them further.