Example #1
0
 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);
         }
     }
 }
Example #2
0
 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, '*');
     }
 }
Example #3
0
 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);
             }
         }
     }
 }