Returns the child permissions and/or roles.
public getChildren ( string $name ) : |
||
$name | string | the parent name |
리턴 | 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)); }
/** * @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; } } } }
/** * 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]; }