fromholdio/silverstripe-configured-groups

使用配置来定义安全组

安装: 243

依赖项: 1

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

2.0.0 2023-05-17 06:41 UTC

This package is auto-updated.

Last update: 2024-09-17 09:31:31 UTC


README

Silverstripe 模块,通过 yml 配置提供配置安全组的机制。

需求

  • 2.x 分支目前支持 SilverStripe 4 和 5。

理由

对于许多网站,核心安全组和它们的权限不应由 CMS 用户更改。

这可能导致用户破坏权限配置,删除会影响整个网站的关键组,等等。

通过 CMS 管理这些也意味着开发者在不同环境之间移动和部署时必须手动传输组配置。

相反,此模块提供 yml 配置

  • 在 dev/build 上初始化组的配置及其分配的权限
  • 如果没有配置 ADMIN 组,默认的 'administrators' 组将保持原位
  • 可以强制只配置组作为根组(即 CMS 用户无法添加新的顶级组)
  • 基于每个配置的组,允许/禁止 CMS 用户添加新的子组(由此允许或阻止 CMS 用户添加新组)
  • 可以强制每个组只能配置权限(即通过 CMS 复选框设置的任何权限,如果不在 yml 配置中,则在 dev/build 上删除)
  • 对于配置的组,标题、描述和父 CMS 字段为只读
  • 如果配置的组的权限仅设置为配置的集,则权限复选框设置为只读
  • 可以标记配置的组为隐藏,并且不会显示给不是该组直接成员的用户(例如,当仅由开发者使用时,用于混淆管理员组)

安装

使用 composer 安装模块

composer require fromholdio/silverstripe-configured-groups dev-master

然后应用您自己的组配置(见下文)并运行 dev/build。

配置示例

  • 默认情况下,不应用任何配置,只应用扩展本身。您需要根据以下示例组合自己的组配置
SilverStripe\Security\Group:
  is_configured_root_groups_only: true      # only configured groups as top-level (cms users cannot add new with parentID 0)
  is_configured_permissions_only: true      # only configured permissions on this group (others deleted during dev/build)
  configured_groups:
    administrators:                         # configured group code
      title: Administrators
      sort: 0
      is_hidden: true                       # hides group from view of non-direct-members
      permissions:                          # array of permission codes
        - ADMIN
    managers:     
      title: Site managers
      description: 'Primary non-developer super-user account type'
      sort: 1
      is_configured_children_only: true     # only configured groups as sub-groups (cms users cannot add new groups with parent ID as this group's ID)
      permissions:
        - CMS_ACCESS_CMSMain
        - CMS_ACCESS_AssetAdmin
        - CMS_ACCESS_ReportAdmin
        - CMS_ACCESS_SecurityAdmin
        - SITETREE_REORGANISE
        - EDIT_SITECONFIG
    previewers:
      title: Previewers
      sort: 2
      children:
        previewer-special:
          title: 'Special previewers'
          sort: 0
          permissions:
            - CMS_ACCESS_CMSMain
            - VIEW_DRAFT_CONTENT
        previewer-okay:
          title: 'Just okay previewers'
          sort: 1
          permissions:
            - VIEW_DRAFT_CONTENT

许可证

BSD 3-Clause 许可证,请参阅许可证