sebastianhofer/be-permissions

此包已被废弃,不再维护。作者建议使用 sebastianhofer/be-permissions 包。

使后端权限可分发

安装: 15

依赖项: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 0

开放问题: 2

类型: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 文件连接到 br_groups 记录。这是由于 uid 是自增的,因此在远程系统上使用它作为标识符可能会失败。标识符用于在所有文件中创建一个文件夹,用于放置 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]

此命令使用 'extend' 部署处理(见上文)导入给定标识符的 yaml 文件。

覆盖命令

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

此命令使用 'overrule' 部署处理(见上文)导入给定标识符的 yaml 文件。

同步命令

$ ./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文件以导出,并在vcs中存储be_groups的TSconfig。
  • 添加远程同步功能的后端模块。

迁移

升级到>0.6.0

执行SQL脚本

UPDATE be_groups SET code_managed_group = bulk_export;