Пример #1
0
 public function connect(Application $app)
 {
     $controllers = $app['controllers_factory'];
     $app['login.controller'] = $this;
     $controllers->before(function (Request $request) use($app) {
         if ($request->getPathInfo() == $app->path('homepage')) {
             return;
         }
     });
     // Displays the homepage
     $controllers->get('/', 'login.controller:login')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
         if (null !== $request->query->get('postlog')) {
             // if isset postlog parameter, set cookie and log out current user
             // then post login operation like getting baskets from an invit session
             // could be done by Session_handler authentication process
             $params = [];
             if (null !== ($redirect = $request->query->get('redirect'))) {
                 $params = ['redirect' => ltrim($redirect, '/')];
             }
             $response = $app->redirectPath('logout', $params);
             $response->headers->setCookie(new Cookie('postlog', 1));
             return $response;
         }
     })->bind('homepage');
     // Authentication end point
     $controllers->post('/authenticate/', 'login.controller:authenticate')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_authenticate');
     // Guest access end point
     $controllers->match('/authenticate/guest/', 'login.controller:authenticateAsGuest')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_authenticate_as_guest')->method('GET|POST');
     // Authenticate with an AuthProvider
     $controllers->get('/provider/{providerId}/authenticate/', 'login.controller:authenticateWithProvider')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_authentication_provider_authenticate');
     // AuthProviders callbacks
     $controllers->get('/provider/{providerId}/callback/', 'login.controller:authenticationCallback')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_authentication_provider_callback');
     // Logout end point
     $logoutController = $controllers->get('/logout/', 'login.controller:logout')->bind('logout');
     $app['firewall']->addMandatoryAuthentication($logoutController);
     // Registration end point ; redirects to classic registration or AuthProvider registration
     $controllers->get('/register/', 'login.controller:displayRegisterForm')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_register');
     // Classic registration end point
     $controllers->match('/register-classic/', 'login.controller:doRegistration')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_register_classic');
     // Provide a JSON serialization of registration fields configuration
     $controllers->get('/registration-fields/', function (PhraseaApplication $app, Request $request) {
         return $app->json($app['registration.fields']);
     })->bind('login_registration_fields');
     // Unlocks an email address that is currently locked
     $controllers->get('/register-confirm/', 'login.controller:registerConfirm')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_register_confirm');
     // Displays a form to send an account unlock email again
     $controllers->get('/send-mail-confirm/', 'login.controller:sendConfirmMail')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_send_mail');
     // Forgot password end point
     $controllers->match('/forgot-password/', 'login.controller:forgotPassword')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_forgot_password');
     // Renew password end point
     $controllers->match('/renew-password/', 'login.controller:renewPassword')->before(function (Request $request) use($app) {
         if (null !== ($response = $app['firewall']->requireNotAuthenticated())) {
             return $response;
         }
     })->bind('login_renew_password');
     // Displays Terms of use
     $controllers->get('/cgus', function (PhraseaApplication $app, Request $request) {
         return $app['twig']->render('login/cgus.html.twig', array_merge(['cgus' => \databox_cgu::getHome($app)], self::getDefaultTemplateVariables($app)));
     })->bind('login_cgus');
     $controllers->get('/language.json', 'login.controller:getLanguage')->bind('login_language');
     return $controllers;
 }
Пример #2
0
 /**
  * Returns true if application has terms of use
  *
  * @return bool
  */
 public function hasTermsOfUse()
 {
     return '' !== \databox_cgu::getHome($this);
 }
Пример #3
0
 public function getCgusAction(Request $request)
 {
     return $this->render('login/cgus.html.twig', array_merge(['cgus' => \databox_cgu::getHome($this->app)], $this->getDefaultTemplateVariables($request)));
 }