GRN2-192: Made error pages more descriptive (#620)

* GRN2-192

* Brought back error codes
This commit is contained in:
farhatahmad 2019-07-10 11:51:19 -04:00 committed by Jesus Federico
parent 523d9a38f2
commit c7a0c6a463
11 changed files with 38 additions and 56 deletions

View File

@ -141,7 +141,11 @@ class ApplicationController < ActionController::Base
retrieve_provider_info(@user_domain, 'api2', 'getUserGreenlightCredentials') retrieve_provider_info(@user_domain, 'api2', 'getUserGreenlightCredentials')
rescue => e rescue => e
if e.message.eql? "No user with that id exists" if e.message.eql? "No user with that id exists"
render "errors/not_found", locals: { user_not_found: true } render "errors/not_found", locals: { message: I18n.t("errors.not_found.user_not_found.message"),
help: I18n.t("errors.not_found.user_not_found.help") }
elsif e.message.eql? "Provider not included."
render "errors/not_found", locals: { message: I18n.t("errors.not_found.user_missing.message"),
help: I18n.t("errors.not_found.user_missing.help") }
else else
render "errors/internal_error" render "errors/internal_error"
end end

View File

@ -21,10 +21,6 @@ class ErrorsController < ApplicationController
render status: 404, formats: :html render status: 404, formats: :html
end end
def unprocessable
render status: 422, formats: :html
end
def internal_error def internal_error
render status: 500, formats: :html render status: 500, formats: :html
end end

View File

@ -14,7 +14,7 @@
%> %>
<div class="container text-center pt-9"> <div class="container text-center pt-9">
<div class="display-1 text-muted mb-5"><%= I18n.t("errors.bigbluebutton.title") %></div> <div class="display-1 text-muted mb-5"><%= t("errors.bigbluebutton.title") %></div>
<h1 class="h2 mb-3"><%= I18n.t("errors.bigbluebutton.message") %></h1> <h1 class="h2 mb-3"><%= t("errors.bigbluebutton.message") %></h1>
<p class="h4 text-muted font-weight-normal mb-7"><%= I18n.t("errors.bigbluebutton.help", doc_link: "http://docs.bigbluebutton.org/greenlight/gl-install.html#setting-bigbluebutton-credentials").html_safe %></p> <p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.bigbluebutton.help", doc_link: "http://docs.bigbluebutton.org/greenlight/gl-install.html#setting-bigbluebutton-credentials").html_safe %></p>
</div> </div>

View File

@ -14,7 +14,7 @@
%> %>
<div class="container text-center pt-9"> <div class="container text-center pt-9">
<div class="display-1 text-muted mb-5">500</div> <div class="display-1 text-primary mb-5">500</div>
<h1 class="h2 mb-3"><%= t("errors.internal.message") %></h1> <h1 class="h2 mb-3"><%= t("errors.internal.message") %></h1>
<p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.internal.help") %></p> <p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.internal.help") %></p>
<a class="btn btn-primary" href="javascript:history.back()"> <a class="btn btn-primary" href="javascript:history.back()">

View File

@ -14,10 +14,10 @@
%> %>
<div class="container text-center pt-9"> <div class="container text-center pt-9">
<div class="display-1 text-muted mb-5">404</div> <div class="display-1 mb-5 text-primary">404</div>
<% if defined?(user_not_found) %> <% if defined?(message) && defined?(help) %>
<h1 class="h2 mb-3"><%= t("errors.not_found.user_message") %></h1> <h1 class="h2 mb-3"><%= message %></h1>
<p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.not_found.user_help") %></p> <p class="h4 text-muted font-weight-normal mb-7"><%= help %></p>
<% else %> <% else %>
<h1 class="h2 mb-3"><%= t("errors.not_found.message") %></h1> <h1 class="h2 mb-3"><%= t("errors.not_found.message") %></h1>
<p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.not_found.help") %></p> <p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.not_found.help") %></p>

View File

@ -14,7 +14,7 @@
%> %>
<div class="container text-center pt-9"> <div class="container text-center pt-9">
<div class="display-1 text-muted mb-5">401</div> <div class="display-1 text-primary mb-5">401</div>
<h1 class="h2 mb-3"><%= I18n.t("errors.unauthorized.message") %></h1> <h1 class="h2 mb-3"><%= t("errors.unauthorized.message") %></h1>
<p class="h4 text-muted font-weight-normal mb-7"><%= I18n.t("errors.unauthorized.help") %></p> <p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.unauthorized.help") %></p>
</div> </div>

View File

@ -1,23 +0,0 @@
<%
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/.
# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below).
# This program is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free Software
# Foundation; either version 3.0 of the License, or (at your option) any later
# version.
#
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public License along
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
%>
<div class="container text-center pt-9">
<div class="display-1 text-muted mb-5">422</div>
<h1 class="h2 mb-3"><%= t("errors.unprocessable.message") %></h1>
<p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.unprocessable.help") %></p>
<a class="btn btn-primary" href="javascript:history.back()">
<i class="fas fa-arrow-left mr-2"></i><%= t("go_back") %>
</a>
</div>

View File

@ -119,7 +119,7 @@ en:
message: Invalid BigBlueButton Endpoint and Secret message: Invalid BigBlueButton Endpoint and Secret
title: Server Error title: Server Error
internal: internal:
message: Oh no! Looks like something went wrong on our end. message: Looks like something went wrong on our end.
help: The error has been logged, we'll take a look! help: The error has been logged, we'll take a look!
migration_error: migration_error:
contact_admin: If you are not an administrator, please contact one. contact_admin: If you are not an administrator, please contact one.
@ -138,17 +138,18 @@ en:
confirmation: doesn't match %{attribute} confirmation: doesn't match %{attribute}
inclusion: is not included in the list inclusion: is not included in the list
not_found: not_found:
message: Whoops! Looks like we can't find that. message: Sorry! The page you are looking for does not exist.
help: Is it possible its been removed? help: Is it possible its been removed?
user_message: User Not Found. user_not_found:
user_help: Sorry, this user is not registered. help: Please contact an administrator.
message: Sorry, this user is not registered.
user_missing:
help: Please verify the URL and try again
message: The URL that you have entered is not valid.
title: Errors title: Errors
unauthorized: unauthorized:
message: You do not have access to this application message: You do not have access to this application
help: If you believe this is a mistake, please contact your system administrator. help: If you believe this is a mistake, please contact your system administrator.
unprocessable:
message: Oops! Request is unprocessable.
help: Unfortunately this isn't a valid request.
expired_reset_token: Password reset link has expired! expired_reset_token: Password reset link has expired!
features: features:
title: Features title: Features

View File

@ -22,7 +22,6 @@ Rails.application.routes.draw do
# Error routes. # Error routes.
match '/401', to: 'errors#unauthorized', via: :all, as: :unauthorized match '/401', to: 'errors#unauthorized', via: :all, as: :unauthorized
match '/404', to: 'errors#not_found', via: :all, as: :not_found match '/404', to: 'errors#not_found', via: :all, as: :not_found
match '/422', to: 'errors#unprocessable', via: :all
match '/500', to: 'errors#internal_error', via: :all, as: :internal_error match '/500', to: 'errors#internal_error', via: :all, as: :internal_error
# Signin/Signup routes. # Signin/Signup routes.

View File

@ -74,7 +74,7 @@ describe ApplicationController do
it "renders a 404 error if user is not found" do it "renders a 404 error if user is not found" do
allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true) allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true)
allow(Rails.env).to receive(:test?).and_return(false) allow(Rails.env).to receive(:test?).and_return(false)
allow_any_instance_of(SessionsHelper).to receive(:parse_user_domain).and_return("") allow_any_instance_of(SessionsHelper).to receive(:parse_user_domain).and_return("fake_provider")
allow_any_instance_of(BbbApi).to receive(:retrieve_provider_info).and_raise("No user with that id exists") allow_any_instance_of(BbbApi).to receive(:retrieve_provider_info).and_raise("No user with that id exists")
routes.draw { get "user_not_found" => "anonymous#user_not_found" } routes.draw { get "user_not_found" => "anonymous#user_not_found" }
@ -83,7 +83,19 @@ describe ApplicationController do
expect(response).to render_template("errors/not_found") expect(response).to render_template("errors/not_found")
end end
it "renders a 500 error if any other error is not found" do it "renders a 404 error if user is not given" do
allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true)
allow(Rails.env).to receive(:test?).and_return(false)
allow_any_instance_of(SessionsHelper).to receive(:parse_user_domain).and_return("")
allow_any_instance_of(BbbApi).to receive(:retrieve_provider_info).and_raise("Provider not included.")
routes.draw { get "user_not_found" => "anonymous#user_not_found" }
get :user_not_found
expect(response).to render_template("errors/not_found")
end
it "renders a 500 error if any other error related to bbb api" do
allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true) allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true)
allow(Rails.env).to receive(:test?).and_return(false) allow(Rails.env).to receive(:test?).and_return(false)
allow_any_instance_of(SessionsHelper).to receive(:parse_user_domain).and_return("") allow_any_instance_of(SessionsHelper).to receive(:parse_user_domain).and_return("")

View File

@ -26,13 +26,6 @@ describe ErrorsController, type: :controller do
end end
end end
describe "GET #unprocessable" do
it "returns unprocessable" do
get :unprocessable
expect(response).to have_http_status(422)
end
end
describe "GET #internal_error" do describe "GET #internal_error" do
it "returns internal_error" do it "returns internal_error" do
get :internal_error get :internal_error