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: 2024-09-18 21:40:28 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 文件与 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;