From 404134aa8d7bb363fe602416dd578ea61c2a84f8 Mon Sep 17 00:00:00 2001 From: farhatahmad <35435341+farhatahmad@users.noreply.github.com> Date: Mon, 4 Mar 2019 15:51:53 -0500 Subject: [PATCH] Redirecting the user to the referrer on login success/fail (#374) --- app/controllers/sessions_controller.rb | 8 +++++++- app/helpers/sessions_helper.rb | 6 +++++- app/views/rooms/join.html.erb | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 96128b7b..b2d9c001 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -29,13 +29,19 @@ class SessionsController < ApplicationController def create user = User.find_by(email: session_params[:email]) if user && !user.greenlight_account? - redirect_to root_path, alert: I18n.t("invalid_login_method") + if request.referrer.present? + redirect_to request.referrer, alert: I18n.t("invalid_login_method") + else + redirect_to root_path, alert: I18n.t("invalid_login_method") + end elsif user.try(:authenticate, session_params[:password]) if user.email_verified login(user) else redirect_to(account_activation_path(email: user.email)) && return end + elsif request.referrer.present? + redirect_to request.referrer, alert: I18n.t("invalid_credentials") else redirect_to root_path, alert: I18n.t("invalid_credentials") end diff --git a/app/helpers/sessions_helper.rb b/app/helpers/sessions_helper.rb index a483a2cd..e3db94a7 100644 --- a/app/helpers/sessions_helper.rb +++ b/app/helpers/sessions_helper.rb @@ -32,7 +32,11 @@ module SessionsHelper # If email verification is disabled, or the user has verified, go to their room def check_email_verified(user) if !Rails.configuration.enable_email_verification || user.email_verified - redirect_to user.main_room + if request.referrer.present? + redirect_to request.referrer + else + redirect_to user.main_room + end else redirect_to resend_path end diff --git a/app/views/rooms/join.html.erb b/app/views/rooms/join.html.erb index ddb35520..126fc461 100644 --- a/app/views/rooms/join.html.erb +++ b/app/views/rooms/join.html.erb @@ -13,6 +13,8 @@ # with BigBlueButton; if not, see . %> +<%= render 'shared/flash_messages' unless flash.empty? %> + <%= render 'shared/room_event' do %> <%= form_for room_path(@room), method: :post do |f| %>