Create new role.
abstract public createRole ( eZ\Publish\SPI\Persistence\User\Role $role ) : eZ\Publish\SPI\Persistence\User\Role | ||
$role | eZ\Publish\SPI\Persistence\User\Role | |
return | eZ\Publish\SPI\Persistence\User\Role |
/** * Create new role. * * @param Role $role * * @return Role */ public function createRole(Role $role) { try { return $this->innerGateway->createRole($role); } catch (DBALException $e) { throw new RuntimeException('Database error', 0, $e); } catch (PDOException $e) { throw new RuntimeException('Database error', 0, $e); } }
/** * Create new role. * * @param \eZ\Publish\SPI\Persistence\User\Role $role * * @return \eZ\Publish\SPI\Persistence\User\Role */ public function createRole(Role $role) { $this->roleGateway->createRole($role); foreach ($role->policies as $policy) { $this->addPolicy($role->id, $policy); } return $role; }
/** * Internal method for creating Role. * * Used by self::createRole() and self::createRoleDraft() * * @param \eZ\Publish\SPI\Persistence\User\RoleCreateStruct $createStruct * @param mixed|null $roleId Used by self::createRoleDraft() to retain Role id in the draft * * @return \eZ\Publish\SPI\Persistence\User\Role */ protected function internalCreateRole(RoleCreateStruct $createStruct, $roleId = null) { $createStruct = clone $createStruct; $role = $this->mapper->createRoleFromCreateStruct($createStruct); $role->id = $roleId; $role->status = Role::STATUS_DRAFT; $this->roleGateway->createRole($role); foreach ($role->policies as $policy) { $this->addPolicyByRoleDraft($role->id, $policy); } return $role; }