docs/access-control/globals.mdx
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
// ...
},
}
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. |
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. |
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. |
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
},
}
The following arguments are provided to the readVersions function:
| Option | Description |
|---|---|
req | The Request object containing the currently authenticated user. |