forked from External/greenlight
		
	GRN2-192: Made error pages more descriptive (#620)
* GRN2-192 * Brought back error codes
This commit is contained in:
		
				
					committed by
					
						
						Jesus Federico
					
				
			
			
				
	
			
			
			
						parent
						
							523d9a38f2
						
					
				
				
					commit
					c7a0c6a463
				
			@@ -141,7 +141,11 @@ class ApplicationController < ActionController::Base
 | 
			
		||||
        retrieve_provider_info(@user_domain, 'api2', 'getUserGreenlightCredentials')
 | 
			
		||||
      rescue => e
 | 
			
		||||
        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
 | 
			
		||||
          render "errors/internal_error"
 | 
			
		||||
        end
 | 
			
		||||
 
 | 
			
		||||
@@ -21,10 +21,6 @@ class ErrorsController < ApplicationController
 | 
			
		||||
    render status: 404, formats: :html
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def unprocessable
 | 
			
		||||
    render status: 422, formats: :html
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def internal_error
 | 
			
		||||
    render status: 500, formats: :html
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<div class="container text-center pt-9">
 | 
			
		||||
  <div class="display-1 text-muted mb-5"><%= I18n.t("errors.bigbluebutton.title") %></div>
 | 
			
		||||
  <h1 class="h2 mb-3"><%= I18n.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>
 | 
			
		||||
  <div class="display-1 text-muted mb-5"><%= t("errors.bigbluebutton.title") %></div>
 | 
			
		||||
  <h1 class="h2 mb-3"><%= t("errors.bigbluebutton.message") %></h1>
 | 
			
		||||
  <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>
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<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>
 | 
			
		||||
  <p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.internal.help") %></p>
 | 
			
		||||
  <a class="btn btn-primary" href="javascript:history.back()">
 | 
			
		||||
 
 | 
			
		||||
@@ -14,10 +14,10 @@
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<div class="container text-center pt-9">
 | 
			
		||||
  <div class="display-1 text-muted mb-5">404</div>
 | 
			
		||||
  <% if defined?(user_not_found) %>
 | 
			
		||||
    <h1 class="h2 mb-3"><%= t("errors.not_found.user_message") %></h1>
 | 
			
		||||
    <p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.not_found.user_help") %></p>
 | 
			
		||||
  <div class="display-1 mb-5 text-primary">404</div>
 | 
			
		||||
  <% if defined?(message) && defined?(help) %>
 | 
			
		||||
    <h1 class="h2 mb-3"><%= message %></h1>
 | 
			
		||||
    <p class="h4 text-muted font-weight-normal mb-7"><%= help %></p>
 | 
			
		||||
  <% else %>
 | 
			
		||||
    <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>
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
%>
 | 
			
		||||
 | 
			
		||||
<div class="container text-center pt-9">
 | 
			
		||||
  <div class="display-1 text-muted mb-5">401</div>
 | 
			
		||||
  <h1 class="h2 mb-3"><%= I18n.t("errors.unauthorized.message") %></h1>
 | 
			
		||||
  <p class="h4 text-muted font-weight-normal mb-7"><%= I18n.t("errors.unauthorized.help") %></p>
 | 
			
		||||
  <div class="display-1 text-primary mb-5">401</div>
 | 
			
		||||
  <h1 class="h2 mb-3"><%= t("errors.unauthorized.message") %></h1>
 | 
			
		||||
  <p class="h4 text-muted font-weight-normal mb-7"><%= t("errors.unauthorized.help") %></p>
 | 
			
		||||
</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
@@ -119,7 +119,7 @@ en:
 | 
			
		||||
      message: Invalid BigBlueButton Endpoint and Secret
 | 
			
		||||
      title: Server Error
 | 
			
		||||
    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!
 | 
			
		||||
    migration_error:
 | 
			
		||||
      contact_admin: If you are not an administrator, please contact one.
 | 
			
		||||
@@ -138,17 +138,18 @@ en:
 | 
			
		||||
      confirmation: doesn't match %{attribute}
 | 
			
		||||
      inclusion: is not included in the list
 | 
			
		||||
    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?
 | 
			
		||||
      user_message: User Not Found.
 | 
			
		||||
      user_help: Sorry, this user is not registered.
 | 
			
		||||
      user_not_found:
 | 
			
		||||
        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
 | 
			
		||||
    unauthorized:
 | 
			
		||||
      message: You do not have access to this application
 | 
			
		||||
      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!
 | 
			
		||||
  features:
 | 
			
		||||
    title: Features
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,6 @@ Rails.application.routes.draw do
 | 
			
		||||
  # Error routes.
 | 
			
		||||
  match '/401', to: 'errors#unauthorized', via: :all, as: :unauthorized
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
  # Signin/Signup routes.
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ describe ApplicationController do
 | 
			
		||||
    it "renders a 404 error if user is not found" 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(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")
 | 
			
		||||
 | 
			
		||||
      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")
 | 
			
		||||
    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.env).to receive(:test?).and_return(false)
 | 
			
		||||
      allow_any_instance_of(SessionsHelper).to receive(:parse_user_domain).and_return("")
 | 
			
		||||
 
 | 
			
		||||
@@ -26,13 +26,6 @@ describe ErrorsController, type: :controller do
 | 
			
		||||
    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
 | 
			
		||||
    it "returns internal_error" do
 | 
			
		||||
      get :internal_error
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user