From f0f0638be3c1e554b41ea6b6b19125b3146e7675 Mon Sep 17 00:00:00 2001 From: John Ma Date: Tue, 2 Oct 2018 17:48:01 -0400 Subject: [PATCH] 500 internal server error (fixes #277) (#279) * * * * * Delete search.js --- app/controllers/sessions_controller.rb | 4 +++- config/locales/en.yml | 1 + spec/controllers/sessions_controller_spec.rb | 14 +++++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index fecd36ea..8a752985 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -28,7 +28,9 @@ class SessionsController < ApplicationController # POST /users/login def create user = User.find_by(email: session_params[:email]) - if user.try(:authenticate, session_params[:password]) + if user && !user.greenlight_account? + redirect_to root_path, notice: I18n.t("invalid_login_method") + elsif user.try(:authenticate, session_params[:password]) login(user) else redirect_to root_path, notice: I18n.t("invalid_credentials") diff --git a/config/locales/en.yml b/config/locales/en.yml index 660514e4..f23719ef 100755 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -67,6 +67,7 @@ en: home_room: Home Room info_update_success: Information successfully updated. invalid_credentials: Login failed due to invalid credentials. Are you sure you entered them correctly? + invalid_login_method: Login failed due to account mismatch. You need to log in with omniauth. invite_message: "To invite someone to the meeting, send them this link:" landing: about: "%{href} is a simple front-end for your BigBlueButton open-source web conferencing server. You can create your own rooms to host sessions, or join others using a short and convenient link." diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index 2ec82334..9ec4f0c9 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -20,7 +20,8 @@ require "rails_helper" describe SessionsController, type: :controller do before(:all) do - @user = create(:user, password: "example", password_confirmation: "example") + @user = create(:user, provider: "greenlight", password: "example", password_confirmation: "example") + @omni_user = create(:user, password: "example", password_confirmation: "example") end describe "GET #destroy" do @@ -60,6 +61,17 @@ describe SessionsController, type: :controller do expect(@request.session[:user_id]).to be_nil end + + it "should not login user in if account mismatch" do + post :create, params: { + session: { + email: @omni_user.email, + password: "example", + }, + } + + expect(@request.session[:user_id]).to be_nil + end end describe "GET/POST #omniauth" do