Skip to content

Commit ba99d54

Browse files
authored
Merge pull request #4774 from rubyforgood/4765-fix-500-error-on-404
Fix 404 errors showing up as 500 errors
2 parents f6d11b4 + e8a5858 commit ba99d54

File tree

10 files changed

+817
-281
lines changed

10 files changed

+817
-281
lines changed

app/controllers/errors_controller.rb

Lines changed: 0 additions & 9 deletions
This file was deleted.

app/views/errors/insufficient.html.erb

Lines changed: 0 additions & 3 deletions
This file was deleted.

app/views/errors/internal_server_error.html.erb

Lines changed: 0 additions & 28 deletions
This file was deleted.

app/views/errors/not_found.html.erb

Lines changed: 0 additions & 31 deletions
This file was deleted.

config/application.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ class Application < Rails::Application
1919
config.load_defaults 7.0
2020
config.legacy_connection_handling = false
2121
config.action_dispatch.return_only_media_type_on_content_type = false
22-
config.exceptions_app = routes
2322

2423
config.active_job.queue_adapter = :delayed_job
2524

config/routes.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,6 @@ def set_up_flipper
8686
end
8787
end
8888

89-
match "/404", to: "errors#not_found", via: :all
90-
match "/500", to: "errors#internal_server_error", via: :all
91-
9289
resources :users do
9390
get :switch_to_role, on: :collection
9491
post :partner_user_reset_password, on: :collection

public/403.html

Lines changed: 205 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,220 @@
1-
<!DOCTYPE html>
1+
<!-- BEGIN app/views/layouts/application.html.erb --><!DOCTYPE html>
22
<html>
33
<head>
4-
<title>The page you were looking for is forbidden (403)</title>
5-
<meta name="viewport" content="width=device-width,initial-scale=1">
6-
<style>
7-
body {
8-
background-color: #EFEFEF;
9-
color: #2E2F30;
10-
text-align: center;
11-
font-family: arial, sans-serif;
12-
margin: 0;
13-
}
4+
<meta charset="utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
6+
<title>Humanessentials</title>
7+
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
8+
<meta name="csrf-param" content="authenticity_token" />
9+
<meta name="csrf-token" content="GEbzHx0O7dyJyQZzL93uhkqraqqtHOh_TD11-RAFfsPee7YqjDmGKd7Xq0aPGKX1yz8a_kCEfoUCsn6BgGTiig" />
10+
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css" rel="stylesheet">
11+
<link href="https://cdn.jsdelivr.net/npm/[email protected]/build/toastr.css" rel="stylesheet">
12+
<link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" rel="stylesheet">
13+
<link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims.css" rel="stylesheet">
1414

15-
div.dialog {
16-
width: 95%;
17-
max-width: 33em;
18-
margin: 4em auto 0;
15+
<link rel="stylesheet" href="/assets/application.css" media="all" />
16+
<script type="importmap" data-turbo-track="reload">{
17+
"imports": {
18+
"jquery": "https://ga.jspm.io/npm:[email protected]/dist/jquery.js",
19+
"admin-lte": "/assets/adminlte.js",
20+
"application": "/assets/application.js",
21+
"startup": "/assets/startup.js",
22+
"@hotwired/turbo-rails": "/assets/turbo.min.js",
23+
"@hotwired/stimulus": "/assets/stimulus.min.js",
24+
"@hotwired/stimulus-loading": "/assets/stimulusloading.js",
25+
"bootstrap": "/assets/bootstrap.min.js",
26+
"popper": "/assets/popper.js",
27+
"highcharts": "https://ga.jspm.io/npm:[email protected]/highcharts.js",
28+
"select2": "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js",
29+
"trix": "https://ga.jspm.io/npm:[email protected]/dist/trix.esm.min.js",
30+
"@rails/actiontext": "https://ga.jspm.io/npm:@rails/[email protected]/app/assets/javascripts/actiontext.js",
31+
"luxon": "https://ga.jspm.io/npm:[email protected]/build/cjs-browser/luxon.js",
32+
"litepicker": "https://cdn.jsdelivr.net/npm/litepicker/dist/litepicker.js",
33+
"litepicker/ranges": "https://cdn.jsdelivr.net/npm/litepicker/dist/plugins/ranges.js",
34+
"toastr": "https://ga.jspm.io/npm:[email protected]/toastr.js",
35+
"@fullcalendar/core": "https://ga.jspm.io/npm:@fullcalendar/[email protected]/index.js",
36+
"preact": "https://ga.jspm.io/npm:[email protected]/dist/preact.module.js",
37+
"preact/compat": "https://ga.jspm.io/npm:[email protected]/compat/dist/compat.module.js",
38+
"preact/hooks": "https://ga.jspm.io/npm:[email protected]/hooks/dist/hooks.module.js",
39+
"@fullcalendar/luxon": "https://ga.jspm.io/npm:@fullcalendar/[email protected]/index.js",
40+
"@fullcalendar/core/": "https://ga.jspm.io/npm:@fullcalendar/[email protected]/",
41+
"@fullcalendar/daygrid": "https://ga.jspm.io/npm:@fullcalendar/[email protected]/index.js",
42+
"@fullcalendar/list": "https://ga.jspm.io/npm:@fullcalendar/[email protected]/index.js",
43+
"quagga": "https://ga.jspm.io/npm:[email protected]/dist/quagga.min.js",
44+
"@rails/ujs": "https://ga.jspm.io/npm:@rails/[email protected]/lib/assets/compiled/rails-ujs.js",
45+
"filterrific": "/assets/filterrific.js",
46+
"bootstrap-select": "https://ga.jspm.io/npm:[email protected]/dist/js/bootstrap-select.js",
47+
"jquery-ui": "https://ga.jspm.io/npm:[email protected]/ui/widget.js",
48+
"controllers/application": "/assets/controllers/application.js",
49+
"controllers/area_served_controller": "/assets/controllers/area_served_controller.js",
50+
"controllers/checkbox_with_nested_element_controller": "/assets/controllers/checkbox_with_nested_element_controller.js",
51+
"controllers/confirmation_controller": "/assets/controllers/confirmation_controller.js",
52+
"controllers/distribution_delivery_controller": "/assets/controllers/distribution_delivery_controller.js",
53+
"controllers/double_select_controller": "/assets/controllers/double_select_controller.js",
54+
"controllers/form_input_controller": "/assets/controllers/form_input_controller.js",
55+
"controllers/highchart_controller": "/assets/controllers/highchart_controller.js",
56+
"controllers": "/assets/controllers/index.js",
57+
"controllers/item_units_controller": "/assets/controllers/item_units_controller.js",
58+
"controllers/password_visibility_controller": "/assets/controllers/password_visibility_controller.js",
59+
"controllers/select2_controller": "/assets/controllers/select2_controller.js",
60+
"controllers/served_area_controller": "/assets/controllers/served_area_controller.js",
61+
"controllers/turbo_controller": "/assets/controllers/turbo_controller.js",
62+
"utils/barcode_items": "/assets/utils/barcode_items.js",
63+
"utils/barcode_scan": "/assets/utils/barcode_scan.js",
64+
"utils/deadline_day_pickers": "/assets/utils/deadline_day_pickers.js",
65+
"utils/distributions_and_transfers": "/assets/utils/distributions_and_transfers.js",
66+
"utils/donations": "/assets/utils/donations.js",
67+
"utils/purchases": "/assets/utils/purchases.js"
1968
}
69+
}</script>
70+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/dist/jquery.js">
71+
<link rel="modulepreload" href="/assets/adminlte.js">
72+
<link rel="modulepreload" href="/assets/application.js">
73+
<link rel="modulepreload" href="/assets/startup.js">
74+
<link rel="modulepreload" href="/assets/turbo.min.js">
75+
<link rel="modulepreload" href="/assets/stimulus.min.js">
76+
<link rel="modulepreload" href="/assets/stimulusloading.js">
77+
<link rel="modulepreload" href="/assets/bootstrap.min.js">
78+
<link rel="modulepreload" href="/assets/popper.js">
79+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/highcharts.js">
80+
<link rel="modulepreload" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js">
81+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/dist/trix.esm.min.js">
82+
<link rel="modulepreload" href="https://ga.jspm.io/npm:@rails/[email protected]/app/assets/javascripts/actiontext.js">
83+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/build/cjs-browser/luxon.js">
84+
<link rel="modulepreload" href="https://cdn.jsdelivr.net/npm/litepicker/dist/litepicker.js">
85+
<link rel="modulepreload" href="https://cdn.jsdelivr.net/npm/litepicker/dist/plugins/ranges.js">
86+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/toastr.js">
87+
<link rel="modulepreload" href="https://ga.jspm.io/npm:@fullcalendar/[email protected]/index.js">
88+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/dist/preact.module.js">
89+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/compat/dist/compat.module.js">
90+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/hooks/dist/hooks.module.js">
91+
<link rel="modulepreload" href="https://ga.jspm.io/npm:@fullcalendar/[email protected]/index.js">
92+
<link rel="modulepreload" href="https://ga.jspm.io/npm:@fullcalendar/[email protected]/">
93+
<link rel="modulepreload" href="https://ga.jspm.io/npm:@fullcalendar/[email protected]/index.js">
94+
<link rel="modulepreload" href="https://ga.jspm.io/npm:@fullcalendar/[email protected]/index.js">
95+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/dist/quagga.min.js">
96+
<link rel="modulepreload" href="https://ga.jspm.io/npm:@rails/[email protected]/lib/assets/compiled/rails-ujs.js">
97+
<link rel="modulepreload" href="/assets/filterrific.js">
98+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/dist/js/bootstrap-select.js">
99+
<link rel="modulepreload" href="https://ga.jspm.io/npm:[email protected]/ui/widget.js">
100+
<link rel="modulepreload" href="/assets/controllers/application.js">
101+
<link rel="modulepreload" href="/assets/controllers/area_served_controller.js">
102+
<link rel="modulepreload" href="/assets/controllers/checkbox_with_nested_element_controller.js">
103+
<link rel="modulepreload" href="/assets/controllers/confirmation_controller.js">
104+
<link rel="modulepreload" href="/assets/controllers/distribution_delivery_controller.js">
105+
<link rel="modulepreload" href="/assets/controllers/double_select_controller.js">
106+
<link rel="modulepreload" href="/assets/controllers/form_input_controller.js">
107+
<link rel="modulepreload" href="/assets/controllers/highchart_controller.js">
108+
<link rel="modulepreload" href="/assets/controllers/index.js">
109+
<link rel="modulepreload" href="/assets/controllers/item_units_controller.js">
110+
<link rel="modulepreload" href="/assets/controllers/password_visibility_controller.js">
111+
<link rel="modulepreload" href="/assets/controllers/select2_controller.js">
112+
<link rel="modulepreload" href="/assets/controllers/served_area_controller.js">
113+
<link rel="modulepreload" href="/assets/controllers/turbo_controller.js">
114+
<link rel="modulepreload" href="/assets/utils/barcode_items.js">
115+
<link rel="modulepreload" href="/assets/utils/barcode_scan.js">
116+
<link rel="modulepreload" href="/assets/utils/deadline_day_pickers.js">
117+
<link rel="modulepreload" href="/assets/utils/distributions_and_transfers.js">
118+
<link rel="modulepreload" href="/assets/utils/donations.js">
119+
<link rel="modulepreload" href="/assets/utils/purchases.js">
120+
<script type="module">import "application"</script>
20121

21-
div.dialog > div {
22-
border: 1px solid #CCC;
23-
border-right-color: #999;
24-
border-left-color: #999;
25-
border-bottom-color: #BBB;
26-
border-top: #B00100 solid 4px;
27-
border-top-left-radius: 9px;
28-
border-top-right-radius: 9px;
29-
background-color: white;
30-
padding: 7px 12% 0;
31-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
122+
<script type="esms-options">
123+
{
124+
"noLoadEventRetriggers": true
32125
}
126+
</script>
33127

34-
h1 {
35-
font-size: 100%;
36-
color: #730E15;
37-
line-height: 1.5em;
38-
}
128+
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
129+
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
130+
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
131+
<link rel="manifest" href="/site.webmanifest">
132+
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
133+
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
39134

40-
div.dialog > p {
41-
margin: 0 0 1em;
42-
padding: 1em;
43-
background-color: #F7F7F7;
44-
border: 1px solid #CCC;
45-
border-right-color: #999;
46-
border-left-color: #999;
47-
border-bottom-color: #999;
48-
border-bottom-left-radius: 4px;
49-
border-bottom-right-radius: 4px;
50-
border-top-color: #DADADA;
51-
color: #666;
52-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53-
}
54-
</style>
135+
<meta name="turbo-visit-control" content="reload">
136+
<meta name="turbo-cache-control" content="no-cache">
55137
</head>
138+
<body data-turbo="" data-controller='turbo'
139+
id="errors" class="not_found hold-transition sidebar-mini layout-fixed">
140+
<!-- Site wrapper -->
141+
<div class="wrapper">
142+
<nav class="main-header navbar navbar-expand navbar-white navbar-light">
143+
<a id="collapse" href="#" data-widget="pushmenu" data-auto-collapse-size="992">
144+
<i class="fa fa-bars"></i>
145+
</a>
146+
147+
<ul class="navbar-nav ml-auto">
148+
<div class="navbar-custom-menu">
149+
<ul class="nav navbar-nav">
150+
<li class="user user-menu">
151+
<a rel="nofollow" class=" btn btn-danger btn-md " data-method="delete" href="/users/sign_out"><i class="fa fa-sign-out"></i> Log out</a>
152+
</li>
153+
</ul>
154+
</div>
155+
</ul>
156+
</nav>
157+
158+
<!-- Main Sidebar Container -->
159+
<aside class="main-sidebar sidebar-dark-primary elevation-4">
160+
161+
<!-- Sidebar -->
162+
<div class="sidebar">
163+
<nav class="mt-2">
164+
</nav>
165+
</div>
166+
</aside>
167+
168+
<div class="content-wrapper">
169+
<!-- BEGIN app/views/shared/_flash.html.erb --><turbo-frame id="flash"></turbo-frame><!-- END app/views/shared/_flash.html.erb -->
56170

57-
<body>
58-
<!-- This file lives in public/403.html -->
59-
<div class="dialog">
60171
<div>
61-
<h1>The page you were looking for is forbidden.</h1>
172+
<!-- BEGIN app/views/errors/not_found.html.erb --><section class="content-header">
173+
<div class="container-fluid">
174+
<div class="row mb-2">
175+
<div class="col-sm-6">
176+
<h1>403 Error Page</h1>
177+
</div>
178+
<div class="col-sm-6">
179+
<ol class="breadcrumb float-sm-right">
180+
<li class="breadcrumb-item"><a href="#">Home</a></li>
181+
<li class="breadcrumb-item active">403 Error Page</li>
182+
</ol>
183+
</div>
184+
</div>
185+
</div>
186+
</section>
187+
188+
<!-- Main content -->
189+
<section class="content">
190+
<div class="error-page">
191+
<h2 class="headline text-warning"> 403</h2>
192+
<br>
193+
<div class="error-content">
194+
<h3><i class="fas fa-exclamation-triangle text-warning"></i> Oops! The page you were looking for is forbidden.</h3>
195+
196+
<p>
197+
You don't have access to this page.
198+
</p>
199+
<h1></h1>
200+
</div>
201+
</div>
202+
</section>
203+
<!-- END app/views/errors/not_found.html.erb -->
62204
</div>
63-
<p>If you are the application owner check the logs for more information.</p>
64205
</div>
206+
207+
<footer class="main-footer">
208+
<div class="pull-right hidden-xs">
209+
</div>
210+
<strong>Human Essentials was built with <i class="fa fa-heart fa-beat" style="color:red;"></i> by <a href="http://rubyforgood.org">Ruby for Good</a>.</strong>
211+
</footer>
212+
213+
</aside>
214+
<div class="control-sidebar-bg"></div>
215+
</div>
216+
65217
</body>
218+
<div class="modal fade" id="modal_new" role="dialog"></div>
66219
</html>
220+
<!-- END app/views/layouts/application.html.erb -->

0 commit comments

Comments
 (0)