Ejemplo n.º 1
0
 public function testGetReturnUrlWithQueryParametersNotAbsolute()
 {
     $this->assertEquals('return/page', UrlUtilities::getReturnUrl('some/page?q=something&return=return%2Fpage', null, null, false));
     $this->assertEquals('return/page', UrlUtilities::getReturnUrl('some/page?q=something&foo=bar&return=return%2Fpage', null, null, false));
     $this->assertEquals('return/page?q=query', UrlUtilities::getReturnUrl('some/page?return=return%2Fpage%3Fq%3Dquery', null, null, false));
     $this->assertEquals('return/page?q=query&x=y', UrlUtilities::getReturnUrl('some/page?return=return%2Fpage%3Fq%3Dquery%26x%3Dy', null, null, false));
     $this->assertEquals('return/page?q=query', UrlUtilities::getReturnUrl('some/page?q=something&return=return%2Fpage%3Fq%3Dquery', null, null, false));
     $this->assertEquals('return/page?q=query&x=y', UrlUtilities::getReturnUrl('some/page?q=something&foo=bar&return=return%2Fpage%3Fq%3Dquery%26x%3Dy', null, null, false));
 }
Ejemplo n.º 2
0
 /**
  * Jump to a particular step within the given form.  This may fail if the step does not exist (out of range) or if
  * a form rule prevents the user from jumping to the specified step (e.g. a previous step has not been completed,
  * or an intervening step is marked one-way).
  *
  * @param \Symfony\Component\HttpFoundation\Request $request
  *
  * @return \Symfony\Component\HttpFoundation\RedirectResponse
  *
  * @throws \OutOfBoundsException
  */
 public function jumpController(Request $request)
 {
     LoggerRegistry::debug('FormsModule::jumpController()');
     // Get the form details.
     $formKey = $request->attributes->get('slug');
     $form = $this->registry()->getForm($formKey, $request);
     // Get the step being requested in the jump
     $jumpStep = intval($request->query->get('step', $this->registry()->getCurrentStep($formKey)));
     // Validation
     if ($jumpStep < 0 || $jumpStep >= $form->getStepsCount()) {
         throw new \OutOfBoundsException(sprintf('FormsModule cannot jump to step %d in form "%s": out of range', $jumpStep, $formKey));
     }
     if (!in_array($jumpStep, $this->registry()->getAvailableSteps($formKey))) {
         throw new \OutOfBoundsException(sprintf('FormsModule cannot jump to step %d in form "%s": step not available', $jumpStep, $formKey));
     }
     // Update progress and redirect back to the form URL.
     $this->registry()->setCurrentStep($formKey, $jumpStep);
     return new RedirectResponse(UrlUtilities::getReturnUrl($request, 'form-url'));
 }
Ejemplo n.º 3
0
 /**
  * Display the recover password page.
  *
  * @param ViewInterface $view
  * @param Request $request
  *
  * @return RedirectResponse|null
  */
 public function recoverLoginController(ViewInterface $view, Request $request)
 {
     LoggerRegistry::debug('UserIntegrationModule::recoverLoginController()');
     if ($this->getEngine()->getUserManager()->isLoggedIn()) {
         return new RedirectResponse(UrlUtilities::getReturnUrl($request));
     }
     $view['form-key'] = $this->config('recover-login.form.key');
     return null;
 }