パスワードを定義せずに新規ユーザを登録するためのフォームを作成しようとしています。新しいユーザーを保存してから、fos user bundleからパスワードのリセット手順を実行してパスワードを変更するように求められます。fosユーザバンドルを使用して別のコントローラからパスワードをリセットするリクエスト
コントローラのパスワードをリセットする手順をどのように起動できるかわかりません。ここで
は私のコントローラの提出一部です:が、これは自分のパスワードを変更するよう求めて新しく作成したユーザーに電子メールを送信することが想定されていないです:コードにコメントしたよう
if ($request->getMethod() === 'POST') {
$form->bind($request);
if ($form->isValid()) {
$tokenGenerator = $this->get('fos_user.util.token_generator');
$password = substr($tokenGenerator->generateToken(), 0, 8);
$user->setEnabled(false);
$user->setPlainPassword($password);
/** @var $dispatcher EventDispatcherInterface */
$dispatcher = $this->container->get('event_dispatcher');
$event = new GetResponseUserEvent($user, $request);
$userManager->updatePassword($user);
$userManager->updateUser($user);
$em->persist($user);
$em->flush();
// Is this isn't supposed to send an email to the newly created user asking to change his password ?
$dispatcher->dispatch(FOSUserEvents::RESETTING_RESET_REQUEST, $event);
return new RedirectResponse($this->generateUrl('some_url'));
}
}
?
$dispatcher->dispatch(FOSUserEvents::RESETTING_RESET_REQUEST, $event);
で新しいパスワードを設定し、この方法で解決できますパスワードをリセットした後ではなく、ユーザー登録後に最初に別のテキストを送信する場合があるため、ユーザーに電子メールを送信してください。 –
確かに私は自分ですべてのものをやることができますが、最終的にfosユーザーのパスワードリセットアクションにリンクする電子メールを送信してしまいます。私は間違っているかもしれませんが、direcly fosユーザーバンドル(最終的にいくつかのカスタムテンプレートまたは他の場所でコントローラをオーバーライドして)を呼び出し、それが設計されているように仕事を処理させるようにするのは良い選択肢ではありませんか? –
いいえ、私の意見では登録は決してパスワードリセットされません。しかし、可能であれば、バンドルの一部を引き続き使用することができます。 –