Пример #1
0
 /**
  * Update inheritance permissions method
  */
 protected function updateInheritancePermissions()
 {
     foreach ($this->inheritancePermissions() as $role => $items) {
         foreach ($items as $item) {
             $this->authManager->addChild(RbacFactory::Role($role), RbacFactory::Permission($item));
             echo sprintf('    > role `%s` inherited permission `%s`.', $role, $item) . PHP_EOL;
         }
     }
 }
Пример #2
0
 /**
  * Fill relations between roles and permissions
  */
 protected function fillChildren()
 {
     foreach ($this->getConfig('children') as $roleName => $permissionsNames) {
         $role = $this->authManager->getRole($roleName);
         foreach ($permissionsNames as $permissionName) {
             $permission = $this->authManager->getPermission($permissionName);
             if (!$this->authManager->hasChild($role, $permission)) {
                 $this->authManager->addChild($role, $permission);
             }
         }
     }
 }
Пример #3
0
 /**
  * Adding or deleting children if needed
  */
 protected function manageRelations()
 {
     foreach ($this->_children as $p => $kids) {
         $parent = $this->_items[$p];
         foreach ($kids as $k) {
             $kid = $this->_items[$k];
             if (!$this->_auth->hasChild($parent, $kid)) {
                 Console::stdout($kid->name . ' added as a child of ' . $parent->name . "\n");
                 $this->_auth->addChild($parent, $kid);
             }
         }
         foreach ($this->_auth->getChildren($p) as $current_kid) {
             if (!in_array($current_kid->name, $kids)) {
                 Console::stdout(Console::ansiFormat('Relation between  ' . $current_kid->name . ' and ' . $parent->name . " was removed!\n", [Console::FG_RED]));
                 $this->_auth->removeChild($parent, $current_kid);
             }
         }
     }
 }