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
						Jesus Federico
					
				
			
			
				
	
			
			
			
						parent
						
							523d9a38f2
						
					
				
				
					commit
					c7a0c6a463
				
			| @@ -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 | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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> | ||||||
|   | |||||||
| @@ -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()"> | ||||||
|   | |||||||
| @@ -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> | ||||||
|   | |||||||
| @@ -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> | ||||||
|   | |||||||
| @@ -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 |       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 | ||||||
|   | |||||||
| @@ -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. | ||||||
|   | |||||||
| @@ -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("") | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user