Перенаправление с определенной страницы - PullRequest
1 голос
/ 07 февраля 2011

Я пытаюсь перенаправить пользователей на последнюю страницу, с которой они вошли (с использованием модального режима) - что работает.

if user  
    # Protects against session fixation attacks, causes request forgery
    # protection if user resubmits an earlier form using back
    # button. Uncomment if you understand the tradeoffs.
    # reset_session
    self.current_user = user
    new_cookie_flag = (params[:remember_me] == "1")
    handle_remember_cookie! new_cookie_flag
    format.html {
      if @invitation.try(:invitee_email) == user.email
        redirect_to(edit_invitation_path(@invitation))
      else
        begin
        # loop check
        if session[:last_back] != request.env['HTTP_REFERER']
        redirect_to(:back)
        session[:last_back] = request.env['HTTP_REFERER']
      else
        # raise on error
        raise ActionController::RedirectBackError
      end
        rescue ActionController::RedirectBackError
        # fallback on loop or other :back error
      redirect_to(:action => :index)
    end
 end

Если пользователь не может войти в систему - он перенаправляется на страницу входа в сеанс / новый.

Я не хочу, чтобы они возвращались на эту страницу после успешного входа, так как бы я перенаправил их на новый / путь, если они приходят из сеанса / нового?

1 Ответ

1 голос
/ 07 февраля 2011

Я думаю, что есть два способа решения этой проблемы:

  1. Вместо перенаправления при входе в систему используйте запрос Ajax для публикации данных и просто не перенаправляйте при сбое входа в систему.Если вход выполнен успешно, используйте javascript для перенаправления.
  2. Используйте before_filter в контроллере приложения, который при выходе пользователя сохраняет текущую страницу в сеансе как страницу перенаправления.Пропустите этот фильтр на страницах, которые вы не хотите помнить, например, на сеансах / новой странице.После входа в систему проверьте сеанс на наличие страницы перенаправления и перенаправьте на нее, если она существует.Таким образом, независимо от того, сколько раз пользователь посещает сессии / новые, они никогда не будут перенаправлены туда после входа в систему.(Вероятно, вы должны сделать то же самое и для страницы выхода из системы - пропустите фильтр before).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...