Globals 访问控制
全局访问控制(Global Access Control)是用于限制对全局文档访问的访问控制,同时也控制用户在管理面板中能看到和不能看到与该全局相关的内容。
要为全局添加访问控制,请在全局配置中使用 access
属性:
import type { GlobalConfig } from 'payload'
export const GlobalWithAccessControl: GlobalConfig = {
// ...
access: {
// highlight-line
// ...
},
}
配置选项
访问控制(Access Control)是针对请求操作的具体控制。
要为Global添加访问控制,请在Global Config中使用access
属性:
import { GlobalConfig } from 'payload'
const GlobalWithAccessControl: GlobalConfig = {
// ...
// highlight-start
access: {
read: ({ req: { user } }) => {...},
update: ({ req: { user } }) => {...},
// 仅适用于启用版本的Global
readVersions: () => {...},
},
// highlight-end
}
export default Header
可用选项如下:
函数 | 允许/拒绝访问 |
---|---|
read | 用于findOne 全局操作。更多详情。 |
update | 用于update 全局操作。更多详情。 |
如果Global支持版本控制,则还有以下额外选项可用:
函数 | 允许/拒绝访问 |
---|---|
readVersions | 用于控制谁可以读取版本,谁不能。将自动限制Admin UI的版本查看权限。更多详情。 |
读取控制
返回一个布尔值结果或可选的查询约束,用于根据全局配置的当前属性限制谁可以读取它。
要为全局配置添加读取访问控制,请在全局配置中使用 access
属性:
import { GlobalConfig } from 'payload'
const Header: GlobalConfig = {
// ...
// highlight-start
access: {
read: ({ req: { user } }) => {
return Boolean(user)
},
},
// highlight-end
}
read
函数接收以下参数:
选项 | 描述 |
---|---|
req | 包含当前认证用户 user 的请求对象。 |
更新
返回一个布尔值结果,或者可选地返回一个查询约束,该约束基于全局配置的当前属性限制谁可以更新它。
要为全局配置添加更新访问控制,请在全局配置中使用 access
属性:
import { GlobalConfig } from 'payload'
const Header: GlobalConfig = {
// ...
// highlight-start
access: {
update: ({ req: { user }, data }) => {
return Boolean(user)
},
},
// highlight-end
}
update
函数接收以下参数:
选项 | 描述 |
---|---|
req | 包含当前认证用户 user 的请求对象。 |
data | 用于更新全局配置的数据。 |
读取版本
如果 Global 启用了版本控制,readVersions
访问控制函数将决定当前登录用户是否可以访问文档的版本历史记录。
要为 Collection 添加读取版本访问控制,请在 Global Config 中使用 readVersions
属性:
import type { GlobalConfig } from 'payload'
export const GlobalWithVersionsAccess: GlobalConfig = {
// ...
access: {
// highlight-start
readVersions: ({ req: { user } }) => {
return Boolean(user)
},
// highlight-end
},
}
readVersions
函数接收以下参数:
选项 | 描述 |
---|---|
req | 包含当前认证用户 user 的请求对象。 |