/** * @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'); }
/** * 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)]); }
/** * 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)]); }
/** * 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; }
/** * 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()))))); }