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