权限 Permissions

Directus 中权限集合的 REST 和 GraphQL API 文档。权限分配给角色,并控制整个平台的数据访问。

权限对象

id uuid
权限规则的主键。

role many-to-one
此权限适用的角色。 多对一到 rolesnull 用于公共权限。

collection string
此权限规则适用的集合。

action string
此权限规则适用于什么 CRUD 操作。 createreadupdatedelete 之一。

permissions object
在允许角色更改项目之前,项目必须通过什么规则。 遵循 过滤规则规范

validation object
在允许角色提交它们以进行插入/更新之前,提供的值必须通过哪些规则。 遵循 过滤规则规范

preset object
角色的其他默认值。

fields array
允许用户更改哪些字段。

json
{
  "id": 34,
  "role": "c86c2761-65d3-43c3-897f-6f74ad6a5bd7",
  "collection": "pages",
  "action": "create",
  "permissions": null,
  "validation": {
    "title": {
      "_contains": "Directus"
    }
  },
  "presets": {
    "published": false
  },
  "fields": ["title", "translations"]
}

列出权限

列出 Directus 中存在的所有权限。

权限
此端点中返回的数据将根据用户的权限进行过滤。 例如,角色的权限不会返回当前用户的角色以外的其他角色。

查询参数

支持所有全局查询参数

返回

最多包含 limit 权限对象 的数组。 如果没有项目 可用,数据将是一个空数组。

REST API

GET /permissions
SEARCH /permissions

Learn more about SEARCH ->

GraphQL

POST /graphql/system
graphql
type Query {
 permissions: directus_permissions
}
示例
graphql
query {
 permissions {
  action
  role
  collection
 }
}

检索权限

按主键列出现有权限。

查询参数

支持所有全局查询参数

返回

返回请求的 权限对象

REST API

GET /permissions/:id
示例
json
// GET /permissions/34

{
  "data": {
    "id": 34,
    "role": "c86c2761-65d3-43c3-897f-6f74ad6a5bd7",
    "collection": "pages",
    "action": "create",
    "permissions": null,
    "validation": {
      "title": {
        "_contains": "Directus"
      }
    },
    "presets": {
      "published": false
    },
    "fields": ["title", "translations"]
  }
}

GraphQL

POST /graphql/system
graphql
type Query {
 permissions_by_id(id: ID!): directus_permissions
}
示例
graphql
query {
 permissions_by_id(id: 34) {
  role
  collection
  action
 }
}

创建权限规则

创建新的权限规则

查询参数

支持所有全局查询参数

请求正文

部分权限对象actioncollection 是必需的。

返回

返回所创建权限的 权限对象

REST API

POST /permissions
示例
json
// Request

{
  "collection": "pages",
  "action": "read",
  "role": "c86c2761-65d3-43c3-897f-6f74ad6a5bd7",
  "fields": ["id", "title"]
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 create_permissions_item(data: create_directus_permissions_input!): directus_permissions
}
示例
graphql
mutation {
 create_permissions_item(
  data: { collection: "pages", action: "read", role: "c86c2761-65d3-43c3-897f-6f74ad6a5bd7", fields: ["id", "title"] }
 ) {
  id
  collection
  action
 }
}

创建多个权限规则

创建多个新的权限规则

查询参数

支持所有全局查询参数

请求正文

部分 权限对象 的数组。 actioncollection 是必需的。

返回

返回已创建权限的 权限对象

REST API

POST /permissions
示例
json
// Request

[
  {
    "collection": "pages",
    "action": "read",
    "role": "c86c2761-65d3-43c3-897f-6f74ad6a5bd7",
    "fields": ["id", "title"]
  },
  {
    "collection": "pages",
    "action": "create",
    "role": "c86c2761-65d3-43c3-897f-6f74ad6a5bd7",
    "fields": ["id", "title"]
  }
]

GraphQL

POST /graphql/system
graphql
type Mutation {
 create_permissions_items(data: [create_directus_permissions_input!]!): [directus_permissions]
}
示例
graphql
mutation {
 create_permissions_items(
  data: [
   { collection: "pages", action: "read", role: "c86c2761-65d3-43c3-897f-6f74ad6a5bd7", fields: ["id", "title"] }
   { collection: "pages", action: "create", role: "c86c2761-65d3-43c3-897f-6f74ad6a5bd7", fields: ["id", "title"] }
  ]
 ) {
  id
  collection
  action
 }
}

更新权限

更新现有的权限规则。

查询参数

支持所有全局查询参数

请求正文

部分权限对象

返回

返回更新权限的 权限对象

REST API

PATCH /permissions/:id
示例
json
// PATCH /permissions/34

{
  "fields": ["id", "title", "body"]
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 update_permissions_item(id: ID!, data: update_directus_permissions_input!): directus_permissions
}
示例
graphql
mutation {
 update_permissions_item(id: 34, data: { fields: ["id", "title", "body"] }) {
  id
  action
  collection
 }
}

更新多个权限

更新多个现有权限规则。

查询参数

支持所有全局查询参数

请求正文

请求正文

keys 必填
您要更新的权限的主键数组。

数据 必填
权限对象 的任何属性。

返回

返回更新权限的 权限对象

REST API

PATCH /permissions
示例
json
// PATCH /permissions

{
  "keys": [34, 65],
  "data": {
    "fields": ["id", "title", "body"]
  }
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 update_permissions_items(id: [ID!]!, data: update_directus_permissions_input!): [directus_permissions]
}
示例
graphql
mutation {
 update_permissions_items(ids: [34, 64], data: { fields: ["id", "title", "body"] }) {
  id
  action
  collection
 }
}

删除权限

删除现有权限规则

Returns

Empty body.

REST API

DELETE /permissions/:id
示例
DELETE /permissions/34

GraphQL

POST /graphql/system
graphql
type Mutation {
 delete_permissions_item(id: ID!): delete_one
}
示例
graphql
mutation {
 delete_permissions_item(id: 34) {
  id
 }
}

删除多个权限

删除多个现有权限规则

请求体

An array of permission primary keys

Returns

Empty body.

REST API

DELETE /permissions
示例
json
// DELETE /permissions

[34, 64]

GraphQL

POST /graphql/system
graphql
type Mutation {
 delete_permissions_items(ids: [ID!]!): delete_many
}
示例
graphql
mutation {
 delete_permissions_items(ids: [34, 64]) {
  ids
 }
}