Commit d901478

mo <mo@mokhan.ca>
2017-11-07 20:35:50
render forbidden page with errors.
1 parent 74e0535
app/controllers/application_controller.rb
@@ -1,3 +1,8 @@
 class ApplicationController < ActionController::Base
   protect_from_forgery with: :exception
+
+  def render_http_status(status, item: nil)
+    @item = item
+    render template: "errors/#{status}", status: status
+  end
 end
app/controllers/sessions_controller.rb
@@ -39,6 +39,6 @@ class SessionsController < ApplicationController
 
   def validate_saml_request(raw_saml_request = params[:SAMLRequest])
     @saml_request = Saml::Kit::Request.decode(raw_saml_request)
-    head(:forbidden) unless @saml_request.valid?
+    render_http_status(:forbidden, item: @saml_request) unless @saml_request.valid?
   end
 end
app/views/errors/forbidden.html.erb
@@ -0,0 +1,14 @@
+<div class="container">
+  <div class="row">
+    <div class="col">
+      <h1>Forbidden</h1>
+      <% if @item %>
+        <ul class="list-unstyled">
+          <% @item.errors.full_messages.each do |message| %>
+            <li><%= message %></li>
+          <% end %>
+        </ul>
+      <% end %>
+    </div>
+  </div>
+</div>