From 5e1ed8f9c6a973a52f7d88df3adef8ecbf794739 Mon Sep 17 00:00:00 2001 From: Bruno Michel Date: Mon, 21 Mar 2011 22:48:24 +0100 Subject: [PATCH] Nice 403 error page --- app/controllers/application_controller.rb | 5 +++ public/errors/403.html | 49 ++++++++++++++++++++++ public/images/403.png | Bin 0 -> 25244 bytes 3 files changed, 54 insertions(+) create mode 100644 public/errors/403.html create mode 100644 public/images/403.png diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index bf3be86a8..831c031ac 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -5,12 +5,17 @@ class ApplicationController < ActionController::Base protect_from_forgery before_filter :seo_filter helper_method :url_for_content, :path_for_content, :current_user + rescue_from Canable::Transgression, :with => :error_403 VALID_ORDERS = %w(created_at score interest last_commented_at comments_count) REVISION = `git rev-parse HEAD`.chomp protected + def error_403 + render :file => "#{Rails.public_path}/errors/403.html", :status => 403, :layout => false + end + def seo_filter request.session_options[:secure] = request.ssl? headers["X-Served-By"] = Process.pid.to_s diff --git a/public/errors/403.html b/public/errors/403.html new file mode 100644 index 000000000..be3b0df0c --- /dev/null +++ b/public/errors/403.html @@ -0,0 +1,49 @@ + + + + LinuxFr.org >> Erreur 403 + + + + + + + + + + +
+ + + + +
+

Erreur 403

+

+ Accès interdit à cette page ! +

+ +
+ diff --git a/public/images/403.png b/public/images/403.png new file mode 100644 index 0000000000000000000000000000000000000000..f5488e3487fcdf0f74212630edccede1f8faa1d0 GIT binary patch literal 25244 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 literal 0 HcmV?d00001