0.x-dev
0.9999999.9999999.9999999-devRole Module for Ray.Di
MIT
The Requires
0.1.0
0.1.0.0Role Module for Ray.Di
MIT
The Requires
Role Module for Ray.Di
$ composer require ray/role-module
You need to provide RoleProvider
., (*1)
class AppRoleProvider implements RoleProviderInterface { public function get() { return 'admin'; } }
Install module with RoleProvider
., (*2)
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)); } }
Simple usage:, (*3)
use Ray\RoleModule\Annotation\RequiresRoles; #[RequiresRoles(['admin'])] class Foo { public function createUser($id) {
You can annotate individual method too, It has priority over class attribute., (*4)
use Ray\RoleModule\Annotation\RequiresRoles; class Foo { #[RequiresRoles(['admin', 'editor'])] public function createUser($id) {
$ php demo/run.php // It works!
Role Module for Ray.Di
MIT
Role Module for Ray.Di
MIT