Skip to content

Instantly share code, notes, and snippets.

@mtyaka
Created January 12, 2010 02:44
Show Gist options
  • Save mtyaka/274829 to your computer and use it in GitHub Desktop.
Save mtyaka/274829 to your computer and use it in GitHub Desktop.
From 44386ff6756413d4f0f1f2feab8de18293a70764 Mon Sep 17 00:00:00 2001
From: Matjaz Gregoric <mtyaka@gmail.com>
Date: Tue, 12 Jan 2010 03:03:16 +0100
Subject: [PATCH 1/2] Add option to configure flash keys.
---
app/controllers/confirmations_controller.rb | 4 ++--
app/controllers/passwords_controller.rb | 4 ++--
app/controllers/sessions_controller.rb | 8 ++++----
generators/devise_install/templates/devise.rb | 5 +++++
lib/devise.rb | 5 +++++
5 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/app/controllers/confirmations_controller.rb b/app/controllers/confirmations_controller.rb
index 99193f6..34f1c0d 100644
--- a/app/controllers/confirmations_controller.rb
+++ b/app/controllers/confirmations_controller.rb
@@ -12,7 +12,7 @@ class ConfirmationsController < ApplicationController
self.resource = resource_class.send_confirmation_instructions(params[resource_name])
if resource.errors.empty?
- set_flash_message :success, :send_instructions
+ set_flash_message Devise.success_flash_key, :send_instructions
redirect_to new_session_path(resource_name)
else
render_with_scope :new
@@ -24,7 +24,7 @@ class ConfirmationsController < ApplicationController
self.resource = resource_class.confirm!(:confirmation_token => params[:confirmation_token])
if resource.errors.empty?
- set_flash_message :success, :confirmed
+ set_flash_message Devise.success_flash_key, :confirmed
sign_in_and_redirect(resource_name, resource)
else
render_with_scope :new
diff --git a/app/controllers/passwords_controller.rb b/app/controllers/passwords_controller.rb
index 6356b5e..63fffbb 100644
--- a/app/controllers/passwords_controller.rb
+++ b/app/controllers/passwords_controller.rb
@@ -14,7 +14,7 @@ class PasswordsController < ApplicationController
self.resource = resource_class.send_reset_password_instructions(params[resource_name])
if resource.errors.empty?
- set_flash_message :success, :send_instructions
+ set_flash_message Devise.success_flash_key, :send_instructions
redirect_to new_session_path(resource_name)
else
render_with_scope :new
@@ -33,7 +33,7 @@ class PasswordsController < ApplicationController
self.resource = resource_class.reset_password!(params[resource_name])
if resource.errors.empty?
- set_flash_message :success, :updated
+ set_flash_message Devise.success_flash_key, :updated
sign_in_and_redirect(resource_name, resource)
else
render_with_scope :edit
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index 60a4ff8..4e24883 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -6,7 +6,7 @@ class SessionsController < ApplicationController
# GET /resource/sign_in
def new
Devise::FLASH_MESSAGES.each do |message|
- set_now_flash_message :failure, message if params.try(:[], message) == "true"
+ set_now_flash_message Devise.failure_flash_key, message if params.try(:[], message) == "true"
end
build_resource
render_with_scope :new
@@ -15,10 +15,10 @@ class SessionsController < ApplicationController
# POST /resource/sign_in
def create
if authenticate(resource_name)
- set_flash_message :success, :signed_in
+ set_flash_message Devise.success_flash_key, :signed_in
sign_in_and_redirect(resource_name)
else
- set_now_flash_message :failure, warden.message || :invalid
+ set_now_flash_message Devise.failure_flash_key, warden.message || :invalid
build_resource
render_with_scope :new
end
@@ -26,7 +26,7 @@ class SessionsController < ApplicationController
# GET /resource/sign_out
def destroy
- set_flash_message :success, :signed_out if signed_in?(resource_name)
+ set_flash_message Devise.success_flash_key, :signed_out if signed_in?(resource_name)
sign_out_and_redirect(resource_name)
end
diff --git a/generators/devise_install/templates/devise.rb b/generators/devise_install/templates/devise.rb
index bf295eb..dae5281 100644
--- a/generators/devise_install/templates/devise.rb
+++ b/generators/devise_install/templates/devise.rb
@@ -45,6 +45,11 @@ Devise.setup do |config|
# time the user will be asked for credentials again.
# config.timeout_in = 10.minutes
+ # Configure keys used for flash messages. By default, devise uses :success and
+ # :failure keys.
+ # config.success_flash_key = :notice
+ # config.failure_flash_key = :error
+
# Load and configure the ORM. Supports :active_record, :data_mapper and :mongo_mapper.
# require 'devise/orm/mongo_mapper'
# config.orm = :mongo_mapper
diff --git a/lib/devise.rb b/lib/devise.rb
index 085209a..754ded1 100644
--- a/lib/devise.rb
+++ b/lib/devise.rb
@@ -88,6 +88,11 @@ module Devise
mattr_accessor :mappings
@@mappings = {}
+ # Stores keys used for flash messages.
+ mattr_accessor :success_flash_key, :failure_flash_key
+ @@success_flash_key = :success
+ @@failure_flash_key = :failure
+
# Stores the chosen ORM.
mattr_accessor :orm
@@orm = :active_record
--
1.6.4.msysgit.0
From 0ab6791b955bd2d37292cf2275f9c4f2ecd1e0d9 Mon Sep 17 00:00:00 2001
From: Matjaz Gregoric <mtyaka@gmail.com>
Date: Tue, 12 Jan 2010 03:36:20 +0100
Subject: [PATCH 2/2] Update the README.
---
README.rdoc | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/README.rdoc b/README.rdoc
index 726648e..c7accf5 100644
--- a/README.rdoc
+++ b/README.rdoc
@@ -185,7 +185,9 @@ You can also copy devise views to your application, being able to modify them ba
This is gonna copy all session, password, confirmation and mailer views to your app/views folder.
-== I18n
+== Flash messages and I18n
+
+Devise uses flash keys :success and :failure by default. These can be changed in the devise initializer if you want to use different flash keys (such as :notice and :alert).
Devise uses flash messages with I18n with the flash keys :success and :failure. To customize your app, you can setup your locale file this way:
--
1.6.4.msysgit.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment