Newscoop\NewscoopBundle\Controller\PasswordRecoveryController::indexAction PHP Метод

indexAction() публичный Метод

public indexAction ( Request $request )
$request Symfony\Component\HttpFoundation\Request
    public function indexAction(Request $request)
    {
        $translator = $this->container->get('translator');
        $preferencesService = $this->container->get('system_preferences_service');
        $sent = false;
        $error = '';
        $disabled = false;
        $form = $this->container->get('form.factory')->create(new PasswordRecoveryType(), array(), array());
        if ($preferencesService->get("PasswordRecovery") == 'N') {
            $disabled = true;
        } else {
            if ($request->isMethod('POST')) {
                $form->handleRequest($request);
                if ($form->isValid()) {
                    $data = $form->getData();
                    $user = $this->container->get('user')->findOneBy(array('email' => $data['email'], 'is_admin' => true));
                    if ($user != null && is_numeric($user->getId()) && $user->getId() > 0) {
                        try {
                            $token = $this->setPasswordResetToken($user);
                            $this->sendToken($data['email'], $token);
                            $sent = true;
                        } catch (\Exception $exception) {
                            $error = $translator->trans("Fatal error occurred. Please try again later.", array(), 'home');
                        }
                    } else {
                        $error = $translator->trans("No user is registered with this email.", array(), 'home');
                    }
                }
            }
        }
        return array('form' => $form->createView(), 'sent' => $sent, 'disabled' => $disabled, 'error' => $error);
    }