Exemplo n.º 1
0
 /**
  * Assigns role to user group
  *
  * @param $groupPath
  *
  * @return \eZ\Publish\Core\REST\Server\Values\RoleAssignmentList
  */
 public function assignRoleToUserGroup($groupPath)
 {
     $roleAssignment = $this->inputDispatcher->parse(new Message(array('Content-Type' => $this->request->headers->get('Content-Type')), $this->request->getContent()));
     $groupLocationParts = explode('/', $groupPath);
     $groupLocation = $this->locationService->loadLocation(array_pop($groupLocationParts));
     $userGroup = $this->userService->loadUserGroup($groupLocation->contentId);
     $role = $this->roleService->loadRole($roleAssignment->roleId);
     try {
         $this->roleService->assignRoleToUserGroup($role, $userGroup, $roleAssignment->limitation);
     } catch (LimitationValidationException $e) {
         throw new BadRequestException($e->getMessage());
     }
     $roleAssignments = $this->roleService->getRoleAssignmentsForUserGroup($userGroup);
     return new Values\RoleAssignmentList($roleAssignments, $groupPath, true);
 }
Exemplo n.º 2
0
 /**
  * Assigns a role to the given user group.
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the authenticated user is not allowed to assign a role
  * @throws \eZ\Publish\API\Repository\Exceptions\LimitationValidationException if $roleLimitation is not valid
  *
  * @param \eZ\Publish\API\Repository\Values\User\Role $role
  * @param \eZ\Publish\API\Repository\Values\User\UserGroup $userGroup
  * @param \eZ\Publish\API\Repository\Values\User\Limitation\RoleLimitation $roleLimitation an optional role limitation (which is either a subtree limitation or section limitation)
  */
 public function assignRoleToUserGroup(Role $role, UserGroup $userGroup, RoleLimitation $roleLimitation = null)
 {
     $returnValue = $this->service->assignRoleToUserGroup($role, $userGroup, $roleLimitation);
     $this->signalDispatcher->emit(new AssignRoleToUserGroupSignal(array('roleId' => $role->id, 'userGroupId' => $userGroup->id, 'roleLimitation' => $roleLimitation)));
     return $returnValue;
 }