コード例 #1
0
ファイル: Mongo.php プロジェクト: vegas-cmf/acl
 /**
  * @param string|array $role
  * @return \Vegas\Security\Acl\Role
  * @throws Exception\RoleDoesNotExistException
  */
 public function getRole($role)
 {
     if ($role instanceof Role) {
         return $role;
     }
     $roleName = gettype($role) === 'array' ? $role['name'] : $role;
     $role = $this->getCollection('roles')->findOne(array('name' => $roleName));
     if (!$role) {
         throw new RoleDoesNotExistException($roleName);
     }
     $accessListArray = [];
     $accessList = $this->getRoleAccesses($role['name']);
     foreach ($accessList as $accessDocument) {
         $accessListArray[] = $accessDocument;
     }
     $roleObject = new Role($role['name'], $role['description']);
     $roleObject->setRemovable($role['removable']);
     $roleObject->setId($role['_id']);
     $roleObject->setAccessList((array) $accessList);
     $role = $roleObject;
     return $role;
 }