public function __construct() { parent::__construct(); $roles = array('users' => new \Phalcon\Acl\Role('Users'), 'guests' => new \Phalcon\Acl\Role('Guests')); foreach ($roles as $role) { $this->addRole($role); } //Private area resources $privateResources = array(); foreach ($privateResources as $resource => $actions) { $this->addResource(new \Phalcon\Acl\Resource($resource), $actions); } //Public area resources $publicResources = array('index/index' => array('index'), 'index/error' => array('error404', 'error500'), 'admin/index' => array('index', 'login', 'logout')); foreach ($publicResources as $resource => $actions) { $this->addResource(new \Phalcon\Acl\Resource($resource), $actions); } //Grant access to public areas to both users and guests foreach ($roles as $role) { foreach ($publicResources as $resource => $actions) { $this->allow($role->getName(), $resource, '*'); } } //Grant access to private area to role Users foreach ($privateResources as $resource => $actions) { foreach ($actions as $action) { $this->allow('Users', $resource, $action); } } }
public function __construct() { parent::__construct(); $this->setDefaultAction(\Phalcon\Acl::DENY); $roles = array('admin' => new \Phalcon\Acl\Role('admin', 'Администратор'), 'guest' => new \Phalcon\Acl\Role('guest', 'Неавторизированный посетитель. Простое посещение'), 'member' => new \Phalcon\Acl\Role('member', 'Авторизированный посетитель')); foreach ($roles as $role) { $this->addRole($role); } $privateResources = array('admin/admin-user', 'cms/configuration', 'cms/translate', 'widget/admin', 'projects/admin', 'systems/admin', 'video/admin', 'file-manager/index', 'page/admin', 'publication/admin', 'slider/admin', 'seo/robots'); foreach ($privateResources as $resource) { $this->addResource(new \Phalcon\Acl\Resource($resource)); } $publicResources = array('admin/index', 'index/index', 'index/error', 'projects/index', 'systems/index', 'page/index', 'video/index', 'publication/index'); foreach ($publicResources as $resource) { $this->addResource(new \Phalcon\Acl\Resource($resource)); } foreach ($roles as $role) { foreach ($publicResources as $resource) { $this->allow($role->getName(), $resource, '*'); } } foreach ($privateResources as $resource) { $this->allow('admin', $resource, '*'); } }
public function __construct() { parent::__construct(); $this->setDefaultAction(\Phalcon\Acl::DENY); /** * Full list of Roles */ $roles = []; $roles['guest'] = new \Phalcon\Acl\Role('guest', 'Guest'); $roles['member'] = new \Phalcon\Acl\Role('member', 'Member'); $roles['journalist'] = new \Phalcon\Acl\Role('journalist', 'Journalist'); $roles['editor'] = new \Phalcon\Acl\Role('editor', 'Journalist'); $roles['admin'] = new \Phalcon\Acl\Role('admin', 'Admin'); /** * Frontend roles */ $this->addRole($roles['guest']); $this->addRole($roles['member'], $roles['guest']); /** * Backend roles */ $this->addRole($roles['journalist']); $this->addRole($roles['editor'], $roles['journalist']); $this->addRole($roles['admin']); /** * Include resources permissions list from file /app/config/acl.php */ $resources = (include APPLICATION_PATH . '/config/acl.php'); foreach ($resources as $roles_resources) { foreach ($roles_resources as $resource => $actions) { $registerActions = '*'; if (is_array($actions)) { $registerActions = $actions; } $this->addResource(new \Phalcon\Acl\Resource($resource), $registerActions); } } /** * Make unlimited access for admin role */ $this->allow('admin', '*', '*'); /** * Set roles permissions */ foreach ($roles as $k => $role) { $user_resource = $resources[$k]; foreach ($user_resource as $roles_resources => $method) { if ($method == '*') { $this->allow($k, $roles_resources, '*'); } else { $this->allow($k, $roles_resources, $method); } } } }