ray/role-module

Ray.Di 的角色模块

1.0.0 2022-04-05 03:08 UTC

This package is auto-updated.

Last update: 2024-08-31 00:32:06 UTC


README

安装

Composer 安装

$ composer require ray/role-module

模块安装

您需要提供 RoleProvider

class AppRoleProvider implements RoleProviderInterface
{
    public function get()
    {
        return 'admin';
    }
}

使用 RoleProvider 安装模块。

use Ray\RoleModule\ZendAclModule;
use Ray\Di\AbstractModule;
use Laminas\Permissions\Acl\Role\GenericRole;
use Laminas\Permissions\Acl\Acl;

class AppModule extends AbstractModule
{
    protected function configure()
    {
        // @see http://framework.zend.com/manual/current/en/modules/zend.permissions.acl.intro.html
        $acl = new Acl();
        $roleGuest = new GenericRole('guest');
        $acl->addRole($roleGuest);
        $acl->addRole(new GenericRole('staff'), $roleGuest);
        $acl->addRole(new GenericRole('editor'), 'staff');
        $acl->addRole(new GenericRole('administrator'));
        $this->install(new ZendAclModule($acl, AppRoleProvider::class));
    }
}

使用方法

简单使用

use Ray\RoleModule\Annotation\RequiresRoles;

#[RequiresRoles(['admin'])]
class Foo
{
    public function createUser($id)
    {

您也可以为单个方法添加注解,这具有高于类属性的优先级。

use Ray\RoleModule\Annotation\RequiresRoles;

class Foo
{
   
    #[RequiresRoles(['admin', 'editor'])]
    public function createUser($id)
    {

示例

$ php demo/run.php
// It works!