/ / syliusプラットフォームでEメール検証を無効にする - php、symfony、sylius

syliusプラットフォームの電子メール検証を無効にする - php、symfony、sylius

一つの質問...ユーザー登録時に電子メールの確認を無効にしたい場合(登録後にユーザーが自動的にログインするようにしたい)、どうすればよいですか?設定をどこかで変更する必要がありますか、それともコントローラを上書きして手動でユーザを有効にして確認を追加する必要がありますか。以前のsyliusバージョンではsylius_user(SyliusUserBundle)に検証用の設定があるのを見ましたが、新しいバージョンではそのための設定はありません。 ありがとうございました。

//編集// 私は登録のためにコントローラをオーバーライドしました(以下のコード)とちょうどUserを持ってそれを有効にしてそしてsyliusで提供されたサービスで彼にログインしました。

<?php

namespace AppBundleController;

use BlameableFixtureDocumentUser;
use FOSRestBundleViewView;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SyliusBundleResourceBundleControllerResourceController as BaseCustomerController;
use SyliusComponentResourceResourceActions;
use SymfonyComponentHttpKernelExceptionHttpException;
use SyliusBundleUserBundleSecurityUserLogin as UserLogin;

class CustomerController extends BaseCustomerController
{
/**
* @param Request $request
*
* @return Response
*/
public function createAction(Request $request)
{
$configuration = $this->requestConfigurationFactory->create($this->metadata, $request);

$this->isGrantedOr403($configuration, ResourceActions::CREATE);
$newResource = $this->newResourceFactory->create($configuration, $this->factory);

$form = $this->resourceFormFactory->create($configuration, $newResource);

if ($request->isMethod("POST") && $form->handleRequest($request)->isValid()) {
$newResource = $form->getData();

$event = $this->eventDispatcher->dispatchPreEvent(ResourceActions::CREATE, $configuration, $newResource);

if ($event->isStopped() && !$configuration->isHtmlRequest()) {
throw new HttpException($event->getErrorCode(), $event->getMessage());
}
if ($event->isStopped()) {
$this->flashHelper->addFlashFromEvent($configuration, $event);

return $this->redirectHandler->redirectToIndex($configuration, $newResource);
}

if ($configuration->hasStateMachine()) {
$this->stateMachine->apply($configuration, $newResource);
}
$newResource->getUser()->enable();
$this->repository->add($newResource);
$this->get("sylius.security.user_login")->login($newResource->getUser());
$this->eventDispatcher->dispatchPostEvent(ResourceActions::CREATE, $configuration, $newResource);


if (!$configuration->isHtmlRequest()) {
return $this->viewHandler->handle($configuration, View::create($newResource, Response::HTTP_CREATED));
}

$this->flashHelper->addSuccessFlash($configuration, ResourceActions::CREATE, $newResource);

return $this->redirectHandler->redirectToResource($configuration, $newResource);
}

if (!$configuration->isHtmlRequest()) {
return $this->viewHandler->handle($configuration, View::create($form, Response::HTTP_BAD_REQUEST));
}

$view = View::create()
->setData([
"configuration" => $configuration,
"metadata" => $this->metadata,
"resource" => $newResource,
$this->metadata->getName() => $newResource,
"form" => $form->createView(),
])
->setTemplate($configuration->getTemplate(ResourceActions::CREATE . ".html"))
;

return $this->viewHandler->handle($configuration, $view);
}


}

回答:

回答№1は1

2つのクラスを このPR

  1. UserAutoLoginListener
  2. UserRegistrationFormSubscriber