zanevskyas/yii2-helpers

Yii2 的 Kakadu 辅助工具

安装: 13

依赖: 0

建议: 0

安全: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

类型:yii2-extension

v1.0.0 2022-10-05 09:51 UTC

This package is not auto-updated.

Last update: 2024-10-03 17:57:01 UTC


README

Yii2 辅助工具

安装

安装此扩展的首选方式是通过 Composer

可以运行

php composer.phar require --prefer-dist zanevskyas/yii2-helpers "@dev"

或者在您的 composer.json 文件的 require 部分添加

"zanevskyas/yii2-helpers": "@dev"

RBAC

将以下代码添加到控制台主配置中

'controllerMap' => [
    ...
    'rbac'    => [
        'class'      => Kakadu\Yii2Helpers\Rbac::class,
        'rbacConfig' => RbacConfig::class,
    ],
    ...
]

common/rbac 中创建 RbacConfigClass,示例

abstract class RbacConfig
{
    /**
     * @var string|Enum
     */
    public static $roleClass = CustomerRole::class;

    /**
     * @var array
     */
    public static $roleRelationships = [
        CustomerRole::CUSTOMER,
        CustomerRole::AUTHOR      => [
            CustomerRole::CUSTOMER,
        ],
        ...
    ];

    /**
     * @var array|PermissionCustomer
     */
    public static $permissions = [
        // Customers
        PermissionCustomer::class,
        PermissionSettings::class,

        // Countries
        ...
        // Cities
        ...
    ];
}

创建权限和规则...

权限示例

abstract class PermissionSettings
{
    public const CREATE     = 'CUSTOMER_SETTINGS_CREATE';
    public const UPDATE     = 'CUSTOMER_SETTINGS_UPDATE';
    public const UPDATE_OWN = 'CUSTOMER_SETTINGS_UPDATE_OWN';
    public const VIEW       = 'CUSTOMER_SETTINGS_VIEW';
    public const VIEW_OWN   = 'CUSTOMER_SETTINGS_VIEW_OWN';

    /**
     * @var array
     */
    public static $ruleRelationships = [
        self::UPDATE_OWN => RuleOwnerCustomerSettings::class,
        self::VIEW_OWN   => RuleOwnerCustomerSettings::class,
    ];

    /**
     * @var array
     */
    public static $permissionRelationships = [
        self::UPDATE_OWN => [
            self::UPDATE,
        ],
        self::VIEW_OWN   => [
            self::VIEW,
        ],
    ];

    /**
     * @var array
     */
    public static $roleRelationships = [
        CustomerRole::CUSTOMER => [
            self::UPDATE_OWN,
            self::VIEW_OWN,
        ],
        CustomerRole::ADMIN    => [
            self::CREATE,
            self::UPDATE,
            self::VIEW,
        ],
    ];
}

运行控制台命令以生成 rbac 缓存

php yii rbac/init

就这些了。检查一下。