sebastianhofer/be-permissions

使后端权限可分发

安装量: 2,677

依赖项: 0

建议者: 0

安全: 0

星级: 2

关注者: 1

分支: 0

开放问题: 3

类型:typo3-cms-extension

0.7.3 2022-10-18 17:32 UTC

README

此扩展提供了一些命令行命令,用于将 be_groups 记录导出到/从 YAML 文件导入。

文档

扩展使用 config/be_groups(与 config/sites 平行)文件夹来存储导出的 be_group 文件。它还提供了一个 API。

功能

  • 命令
    • 导入/导出 be_groups 到/从 YAML
    • 为您的 CI 流程提供单独的部署命令
    • 从远程系统同步本地 be_groups
    • 初始化所有现有组为代码管理的
    • 合并本地组和远程组并将它们导出
  • 自动导出并保存 be_groups 记录(需要通过功能切换启用)
  • 部署命令尊重代码管理组的两个选项
    • 扩展:仅添加权限,不会删除任何权限。
    • 覆盖:整个组将被覆盖。更改将在部署后消失。
  • TYPO3 后端模块
    • 查看文件和 be_groups 的状态/差异
    • 手动导入/导出 be_groups
    • 在部署后以 '扩展' 标记覆盖组(从这些组中删除权限)
  • 编辑标记为代码管理的 be_groups
    • 覆盖:在生产环境中不可用
    • 扩展:在生产环境中将导致警告信息

安装

$ composer req sebastianhofer/be-permissions

快速入门

  1. 安装扩展
  2. 转到 TYPO3 后端中的 be_groups 记录
  3. 启用 code_manages_group,选择一个 deploy_processing 方法并保存(标识符应自动创建)
  4. 使用导出命令导出(见下文)
  5. 将生成的 YAML 文件添加到 git
  6. 部署您的代码并执行部署命令(见下文)

be_groups 变更

扩展向 be_groups 添加了三个新字段。

code_managed_group

勾选此复选框使组可用于所有导入和导出命令。

identifier

此字段将 YAML 文件与 be_groups 记录连接起来。这是因为 uid 是自增的,因此在使用它作为标识符的情况下,在远程系统上创建新 be_groups 会导致失败。标识符用于在放置所有 be_group 文件的文件夹中创建一个文件夹。

deploy_processing

有两种方法导入 be_group.yaml

覆盖

在这种情况下,数据库中的记录字段将简单地由 be_group.yaml 中的值覆盖。

扩展

在这种情况下,权限将被合并。这意味着只有在未设置的情况下才添加权限,但不会删除任何权限。

命令

导出命令

$ ./vendor/bin/typo3cms bepermission:export [arguments]

此命令导出所有标记为 code_managed_group 的 be_groups 记录到 YAML 文件,或仅导出具有指定标识符的记录。

扩展命令

$ ./vendor/bin/typo3cms bepermission:extend [arguments]

此命令导入具有指定标识符的 YAML 文件,使用部署处理 'extend'(见上文)。

覆盖命令

$ ./vendor/bin/typo3cms bepermission:overrule [arguments]

此命令导入具有指定标识符的 YAML 文件,使用部署处理 'overrule'(见上文)。

同步命令

$ ./vendor/bin/typo3cms bepermission:syncprodbegroups [arguments]

此命令将给定远程(生产)主机上的所有标记为 code_managed_group 的记录同步到本地系统。这通过 REST API 完成(见配置部分)。这将覆盖您的本地记录!

参数:组标识符

合并和导出命令

$ ./vendor/bin/typo3cms bepermission:mergeprodandexport [arguments]

此命令将给定远程(生产)主机上所有标记为 code_managed_group 的记录与本地记录合并。这是通过 REST API 实现的(参见配置部分)。之后,它将结果导出到 yaml 文件中。

参数:组标识符

部署命令

$ ./vendor/bin/typo3cms bepermission:deploy

此命令根据选定的 deploy_processing 导入所有 yaml 文件。可用于部署配方。

初始化命令

$ ./vendor/bin/typo3cms bepermission:init [deploy_processing] -e

此命令初始化所有现有的 be_groups 为代码管理。默认部署处理为 'extend',但您也可以将 'overrule' 作为参数给出

选项 '-e' 触发初始化后到 yaml 文件的所有组的导出。

初始化标识符命令

$ ./vendor/bin/typo3cms bepermission:initIdentifiers

此命令初始化所有现有的 be_groups,如果尚未设置标识符。

配置

要配置扩展 API,扩展配置中有一些属性

apiToken

目前这是一个简单的 API 身份验证。因此,apiToken 需要在本地和远程系统上相同。出于安全原因,不建议将其保留在您的 git 仓库中,而是通过环境变量设置。

basicAuthUser 和 basicAuthPassword

如果填写,则此字段包含远程系统的基本认证凭据。

remoteHost

此字段包含用于同步的远程仓库的主机。

功能开关

请参阅 https://docs.typo3.org/m/typo3/reference-coreapi/11.5/en-us/Configuration/FeatureToggles.html

be_permissions.automaticBeGroupsExportWithSave

如果启用,则在保存记录时自动执行 be_groups 记录的导出。

待办事项

  • 添加 tsconfig 文件以导出,并存储 be_groups 的用户 TSconfig 以在 vcs 中。
  • 添加远程同步功能的后端模块。

迁移

更新到 > 0.6.0

执行 SQL 脚本

UPDATE be_groups SET code_managed_group = bulk_export;