getChildren() public method

Returns the child permissions and/or roles.
public getChildren ( string $name ) : Item[]
$name string the parent name
return Item[] the child permissions and/or roles
 public function testGetChildren()
 {
     $user = $this->auth->createRole('user');
     $this->auth->add($user);
     $this->assertCount(0, $this->auth->getChildren($user->name));
     $changeName = $this->auth->createPermission('changeName');
     $this->auth->add($changeName);
     $this->auth->addChild($user, $changeName);
     $this->assertCount(1, $this->auth->getChildren($user->name));
 }
Beispiel #2
0
 /**
  * @return array
  */
 public function loadChildren()
 {
     if ($this->permissions + $this->roles == []) {
         foreach ($this->authManager->getChildren($this->name) as $item) {
             switch ($item->type) {
                 case Permission::TYPE:
                     $this->permissions = ArrayHelper::merge($this->permissions, [$item->name]);
                     break;
                 case Role::TYPE:
                     $this->roles = ArrayHelper::merge($this->roles, [$item->name]);
                     break;
             }
         }
     }
 }
Beispiel #3
0
 /**
  * Get all available and assigned roles, permission and routes
  *
  * @return array
  */
 public function getItems()
 {
     $available = [];
     $assigned = [];
     if ($this->type == Item::TYPE_ROLE) {
         foreach (array_keys($this->manager->getRoles()) as $name) {
             $available[$name] = 'role';
         }
     }
     foreach (array_keys($this->manager->getPermissions()) as $name) {
         $available[$name] = $name[0] == '/' ? 'route' : 'permission';
     }
     foreach ($this->manager->getChildren($this->_item->name) as $item) {
         $assigned[$item->name] = $item->type == 1 ? 'role' : ($item->name[0] == '/' ? 'route' : 'permission');
         unset($available[$item->name]);
     }
     unset($available[$this->name]);
     return ['available' => $available, 'assigned' => $assigned];
 }