sebastianhofer / be-permissions
Requires
- php: >=7.4.0
- ext-json: *
- jfcherng/php-diff: ^6.11
- symfony/framework-bundle: ^5.4 || ^6.0
- typo3/cms-backend: ^11.5
- typo3/cms-beuser: ^11.5
- typo3/cms-core: ^11.5
- typo3/cms-frontend: ^11.5
- typo3/cms-lowlevel: ^11.5
Requires (Dev)
- helhum/typo3-console: ^6.6 || ^7.0
- pluswerk/grumphp-config: ^5.0
- typo3/testing-framework: ^6.9
- dev-master
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.6
- 0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1-BETA
- v0.6.0-BETA
- v0.5.1-BETA
- v0.5.0-BETA
- v0.4.3-BETA
- v0.4.2-BETA
- v0.4.1-BETA
- v0.4.0-BETA
- v0.3.0-BETA
- v0.2.0-BETA
- v0.1.1-BETA
- v0.1.0-BETA
- dev-release/0.7.3
- dev-bugfix/identifier-creation-failure
- dev-release/0.7.2
- dev-bugfix/missing-subgroups
- dev-release/0.7.1
- dev-bugfix/init-identifiers-command
- dev-feature/readme
- dev-feature/api-source
- dev-typo3-10
This package is auto-updated.
Last update: 2022-10-18 17:33:07 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
快速入门
- 安装扩展
- 转到 TYPO3 后端中的 be_groups 记录
- 启用 code_manages_group,选择一个 deploy_processing 方法并保存(标识符应自动创建)
- 使用导出命令导出(见下文)
- 将生成的 yaml 文件添加到 git
- 部署您的代码并执行部署命令(见下文)
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;