/**
  * @inheritdoc
  */
 public function visit(TreeNodeInterface $node, &$data)
 {
     $struct = $this->roleService->newRoleCreateStruct('');
     $this->fillValueObject($struct, $data);
     if (isset($data['policies'])) {
         foreach ($data['policies'] as $policyStruct) {
             $struct->addPolicy($policyStruct);
         }
     }
     $this->roleService->createRole($struct);
 }
 /**
  * Creates a role.
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function createRoleAction(Request $request)
 {
     $createForm = $this->createForm(new RoleCreateType());
     $createForm->handleRequest($request);
     if ($createForm->isValid()) {
         $roleCreateStruct = new RoleCreateStruct(['identifier' => '__new__' . md5(microtime(true))]);
         $role = $this->roleService->createRole($roleCreateStruct);
         return $this->redirectToRouteAfterFormPost('admin_roleUpdate', ['roleId' => $role->id]);
     }
     // Form validation failed. Send errors as notifications.
     foreach ($createForm->getErrors(true) as $error) {
         $this->notifyErrorPlural($error->getMessageTemplate(), $error->getMessagePluralization(), $error->getMessageParameters(), 'ezrepoforms_content_type');
     }
     return $this->redirectToRouteAfterFormPost('admin_roleList');
 }
Пример #3
0
 /**
  * Create new role.
  *
  * @return \eZ\Publish\Core\REST\Server\Values\CreatedRole
  */
 public function createRole(Request $request)
 {
     $publish = $request->query->has('publish') && $request->query->get('publish') === 'true';
     try {
         $roleDraft = $this->roleService->createRole($this->inputDispatcher->parse(new Message(['Content-Type' => $request->headers->get('Content-Type'), '__publish' => $publish], $request->getContent())));
     } catch (InvalidArgumentException $e) {
         throw new ForbiddenException($e->getMessage());
     } catch (UnauthorizedException $e) {
         throw new ForbiddenException($e->getMessage());
     } catch (LimitationValidationException $e) {
         throw new BadRequestException($e->getMessage());
     } catch (Exceptions\Parser $e) {
         throw new BadRequestException($e->getMessage());
     }
     if ($publish) {
         $this->roleService->publishRoleDraft($roleDraft);
         $role = $this->roleService->loadRole($roleDraft->id);
         return new Values\CreatedRole(['role' => new Values\RestRole($role)]);
     }
     return new Values\CreatedRole(['role' => new Values\RestRole($roleDraft)]);
 }
Пример #4
0
 /**
  * Create new role.
  *
  * Defaults to publishing the role, but you can create a draft instead by setting the POST parameter publish=false
  *
  * @return \eZ\Publish\Core\REST\Server\Values\CreatedRole
  */
 public function createRole(Request $request)
 {
     $publish = !$request->query->has('publish') || $request->query->has('publish') && $request->query->get('publish') === 'true';
     try {
         $roleDraft = $this->roleService->createRole($this->inputDispatcher->parse(new Message(['Content-Type' => $request->headers->get('Content-Type'), '__publish' => $publish], $request->getContent())));
     } catch (InvalidArgumentException $e) {
         throw new ForbiddenException($e->getMessage());
     } catch (UnauthorizedException $e) {
         throw new ForbiddenException($e->getMessage());
     } catch (LimitationValidationException $e) {
         throw new BadRequestException($e->getMessage());
     } catch (Exceptions\Parser $e) {
         throw new BadRequestException($e->getMessage());
     }
     if ($publish) {
         @trigger_error("Create and publish role in the same operation is deprecated, and will be removed in the future.\n" . 'Instead, publish the role draft using Role::publishRoleDraft().', E_USER_DEPRECATED);
         $this->roleService->publishRoleDraft($roleDraft);
         $role = $this->roleService->loadRole($roleDraft->id);
         return new Values\CreatedRole(['role' => new Values\RestRole($role)]);
     }
     return new Values\CreatedRole(['role' => new Values\RestRole($roleDraft)]);
 }
Пример #5
0
 /**
  * Creates a new Role.
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the authenticated user is not allowed to create a role
  * @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException if the name of the role already exists or if limitation of the
  *                                                                        same type is repeated in the policy create struct or if
  *                                                                        limitation is not allowed on module/function
  * @throws \eZ\Publish\API\Repository\Exceptions\LimitationValidationException if a policy limitation in the $roleCreateStruct is not valid
  *
  * @param \eZ\Publish\API\Repository\Values\User\RoleCreateStruct $roleCreateStruct
  *
  * @return \eZ\Publish\API\Repository\Values\User\Role
  */
 public function createRole(RoleCreateStruct $roleCreateStruct)
 {
     $returnValue = $this->service->createRole($roleCreateStruct);
     $this->signalDispatcher->emit(new CreateRoleSignal(array('roleId' => $returnValue->id)));
     return $returnValue;
 }
Пример #6
0
 /**
  * Create new role
  *
  * @return \eZ\Publish\Core\REST\Server\Values\CreatedRole
  */
 public function createRole()
 {
     return new Values\CreatedRole(array('role' => $this->roleService->createRole($this->inputDispatcher->parse(new Message(array('Content-Type' => $this->request->headers->get('Content-Type')), $this->request->getContent())))));
 }