5.9 KiB
| title | label | order | desc | keywords | source |
|---|---|---|---|---|---|
| Globals Access Control | Globals | 30 | Global-level Access Control is specified within each Global's `access` property and allows you to define which users can read or update Globals. | globals, access control, permissions, documentation, Content Management System, cms, headless, javascript, node, react, nextjs | https://payloadcms.com/docs/access-control/globals |
Global Access Control is Access Control used to restrict access to Global Documents, as well as what they can and cannot see within the Admin Panel as it relates to that Global.
To add Access Control to a Global, use the access property in your Global Config:
import type { GlobalConfig } from 'payload'
export const GlobalWithAccessControl: GlobalConfig = {
// ...
access: {
// highlight-line
// ...
},
}
Config Options
Access Control is specific to the operation of the request.
To add Access Control to a Global, use the access property in the Global Config:
import { GlobalConfig } from 'payload'
const GlobalWithAccessControl: GlobalConfig = {
// ...
// highlight-start
access: {
read: ({ req: { user } }) => {...},
update: ({ req: { user } }) => {...},
// Version-enabled Globals only
readVersions: () => {...},
},
// highlight-end
}
export default Header
The following options are available:
| Function | Allows/Denies Access |
|---|---|
read |
Used in the findOne Global operation. More details. |
update |
Used in the update Global operation. More details. |
If a Global supports Versions, the following additional options are available:
| Function | Allows/Denies Access |
|---|---|
readVersions |
Used to control who can read versions, and who can't. Will automatically restrict the Admin UI version viewing access. More details. |
Read
Returns a boolean result or optionally a query constraint which limits who can read this global based on its current properties.
To add read Access Control to a Global, use the access property in the Global Config:
import { GlobalConfig } from 'payload'
const Header: GlobalConfig = {
// ...
// highlight-start
access: {
read: ({ req: { user } }) => {
return Boolean(user)
},
},
// highlight-end
}
The following arguments are provided to the read function:
| Option | Description |
|---|---|
req |
The Request object containing the currently authenticated user. |
Update
Returns a boolean result or optionally a query constraint which limits who can update this global based on its current properties.
To add update Access Control to a Global, use the access property in the Global Config:
import { GlobalConfig } from 'payload'
const Header: GlobalConfig = {
// ...
// highlight-start
access: {
update: ({ req: { user }, data }) => {
return Boolean(user)
},
},
// highlight-end
}
The following arguments are provided to the update function:
| Option | Description |
|---|---|
req |
The Request object containing the currently authenticated user. |
data |
The data passed to update the global with. |
Read Versions
If the Global has Versions enabled, the readVersions Access Control function determines whether or not the currently logged in user can access the version history of a Document.
To add Read Versions Access Control to a Global, use the readVersions property in the Global Config:
import type { GlobalConfig } from 'payload'
export const GlobalWithVersionsAccess: GlobalConfig = {
// ...
access: {
// highlight-start
readVersions: ({ req: { user } }) => {
return Boolean(user)
},
// highlight-end
},
}
**Note:** Returning a [Query](../queries/overview) will apply the constraint
to the [`versions` collection](../versions/overview#database-impact), not the
original Global.
The following arguments are provided to the readVersions function:
| Option | Description |
|---|---|
req |
The Request object containing the currently authenticated user. |