基础工作流 Basic Workflows

工作流是使用自定义访问权限将结构化阶段添加到内容创建或数据生成流中。 工作流使您能够完成诸如在多个角色之间传递正在进行的工作、构建决策树等等!_

解释

请记住,您的基本 CRUDS 权限 定义角色可以和不能对集合中的所有项目执行的操作。 自定义访问权限 更进一步,让您定义角色可以和不可以对每个项目执行的操作 集合,基于其字段值

工作流是您使用这些权限技术为内容或数据创建创建结构化阶段的时候。 简单来说,就是当你有两个或更多的角色,你在内容创建过程的每个阶段给他们不同的权限。

您可以配置无数种可能的工作流程。 但是对于这个秘籍,我们将配置一个简单的工作流程,其中“作者”和“编辑”一起工作以创建、共同编辑和发布“文章”。

工作流

对于这个秘籍,我们的工作流程将分为三个阶段,draftunder reviewpublished,这将在 status 字段中定义。

statusAuthorEditor
Article is not yet createdAuthor can create new items in articles, but only with a status of draft.Editor cannot create new items in articles.
DraftAuthor creates and edits the article. Then can set status to under review when ready.Editor has either read-only, or no permissions at all.
Under ReviewAuthor can edit the article's content, but not the status field.Editor can edit the article, as well as set status to Draft or Published.
PublishedAuthor is no longer responsible for article, and has read-only permissions.Editor has permissions to update or delete the article.

整个工作流程是使用权限创建的。 创建这些阶段所需要做的就是根据 status 的值有条件地更改 articles 中每个项目的 authoreditor 权限。

A Workflow

How-To Guide

要求
要实施工作流程,您需要:

  • 了解 Directus 中的 permissionsfilters
  • 具有某种内容的集合。 在这个秘籍中,我们将使用一个名为 articles 的集合。
  • 该集合上的一个字段,用于有条件地验证。 我们将使用“状态”字段。
  • 将用于创作内容的两个_(或更多)_角色。 我们将使用 writereditor 角色。

要为“文章”创建结构化工作流,请按照以下步骤操作。

  1. 首先,创建一个字段来跟踪文章状态。 我们将此字段称为“status”,但它可以命名为任何名称。
  2. 创建字段 带有下拉界面。 将其命名为“状态”并添加您的内容创建过程所需的阶段_(“草稿”、“正在审查”和“已发布”)_。
  3. 接下来,创建两个角色authoreditor
  4. 最后配置 自定义访问权限 基于 status 字段值的每个角色。
    • 对于 author 角色:
      • Create > Use Custom > Field Validation 下设置过滤器,以确保作者只能创建处于“草稿”状态的文章。
      • 启用所有读取权限。
      • 更新 > 使用自定义 > 项目权限 下设置过滤器,以确保用户可以更新处于“草稿”或“正在审查”状态的文章。
      • Update > Use Custom > Field Validation 下设置过滤器,以确保用户只能将文章状态更新为“under review”。
      • 限制删除权限。
      • 限制共享权限。
    • 对于 editor 角色:
      • 限制创建权限。
      • 启用所有读取权限。
      • Update > Use Custom > Item Permissions 下设置过滤器,以确保用户只能更新处于“under review”状态的文章。
      • Update > Use Custom > Field Validation 下设置过滤器,以确保用户只能将状态更新为“已发布”。
      • 限制删除权限。
      • 限制共享权限。

最后的提示

本秘籍涵盖了一个简单的工作流程示例。 当您继续前进并创建自己的定制工作流程时,请记住:

  • 您可以使用任意数量的角色。
  • 您可以使用任何集合或相关链接的集合。
  • 您可以通过向“状态”字段添加更多值来在工作流程中添加更多阶段。

请务必密切注意您如何为工作流配置自定义访问权限。 无意的错误配置可能会产生副作用。

在我们上面简单的“文章”工作流程中,两个团队成员之间的共同编辑工作流程中的轻微配置错误_可能_不是大问题。 但在其他情况下,它可能会产生重大后果。 例如,让我们想象一下:

  • writereditor 角色是 teacherstudent 角色。
  • articles 集合改为 tests 集合。
  • 如果测试是“未开始”、“进行中”或“已提交”,则定义“状态”字段。

这里的一个小错误配置可能会破坏学术诚信。 这里有几个潜在的问题:

  • 学生重新参加/重新编辑他们自己提交的测试。
  • 学生参加/编辑/删除其他学生的测试。
  • 教师修改他们喜欢或不喜欢的学生的成绩。
  • 超越!

创建您自己的工作流时,最好定义所涉及的每个角色、工作流中的每个阶段以及每个角色在每个阶段拥有的明确权限集。

下一步
可以使用自定义 Interfacesflows 进一步增强工作流程。