mirror of
https://github.com/heartcombo/devise.git
synced 2026-01-11 15:58:12 -05:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e27d1f763 | ||
|
|
27a83f3dd3 | ||
|
|
79aadb4bc9 | ||
|
|
43d0715238 | ||
|
|
fb8e093389 | ||
|
|
4b47c3ab73 | ||
|
|
a0eff85d73 | ||
|
|
aa36719bd9 | ||
|
|
33aa71c38f | ||
|
|
1f20d7da25 | ||
|
|
dfcf825721 | ||
|
|
eaae041b4c | ||
|
|
dbd79746b1 |
@@ -1,7 +1,19 @@
|
||||
== 2.0.1
|
||||
== 2.0.2
|
||||
|
||||
Notes: https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0
|
||||
|
||||
* enhancements
|
||||
* Add devise_i18n_options to customize I18n message
|
||||
|
||||
* bug fix
|
||||
* Ensure Devise.available_router_name defaults to :main_app
|
||||
* Set autocomplete to off for password on edit forms
|
||||
* Better error messages in case a trackable model can't be saved
|
||||
* Show a warning in case someone gives a pluralized name to devise generator
|
||||
* Fix test behavior for rspec subject requests (by @sj26)
|
||||
|
||||
== 2.0.1
|
||||
|
||||
* enhancements
|
||||
* Improved error messages on deprecation warnings
|
||||
* Hide Devise's internal generators from `rails g` command
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
devise (2.0.0)
|
||||
devise (2.0.1)
|
||||
bcrypt-ruby (~> 3.0)
|
||||
orm_adapter (~> 0.0.3)
|
||||
railties (~> 3.1)
|
||||
|
||||
@@ -89,11 +89,11 @@ Once you have solidified your understanding of Rails and authentication mechanis
|
||||
|
||||
## Getting started
|
||||
|
||||
Devise 2.0 works with Rails 3.1 onwards. You can install it with:
|
||||
Devise 2.0 works with Rails 3.1 onwards. You can add it to your Gemfile with:
|
||||
|
||||
```console
|
||||
gem install devise
|
||||
```
|
||||
gem 'devise'
|
||||
|
||||
Run the bundle command to install it.
|
||||
|
||||
After you install Devise and add it to your Gemfile, you need to run the generator:
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ class DeviseController < Devise.parent_controller.constantize
|
||||
helper DeviseHelper
|
||||
|
||||
helpers = %w(resource scope_name resource_name signed_in_resource
|
||||
resource_class devise_mapping devise_controller?)
|
||||
resource_class devise_mapping)
|
||||
hide_action *helpers
|
||||
helper_method *helpers
|
||||
|
||||
@@ -38,11 +38,6 @@ class DeviseController < Devise.parent_controller.constantize
|
||||
@devise_mapping ||= request.env["devise.mapping"]
|
||||
end
|
||||
|
||||
# Overwrites devise_controller? to return true
|
||||
def devise_controller?
|
||||
true
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
# Checks whether it's a devise mapped resource or not.
|
||||
@@ -136,6 +131,7 @@ MESSAGE
|
||||
options[:scope] = "devise.#{controller_name}"
|
||||
options[:default] = Array(options[:default]).unshift(kind.to_sym)
|
||||
options[:resource_name] = resource_name
|
||||
options = devise_i18n_options(options) if respond_to?(:devise_i18n_options, true)
|
||||
message = I18n.t("#{resource_name}.#{kind}", options)
|
||||
flash[key] = message if message.present?
|
||||
end
|
||||
@@ -160,7 +156,7 @@ MESSAGE
|
||||
|
||||
# Override prefixes to consider the scoped view.
|
||||
def _prefixes #:nodoc:
|
||||
@_prefixes ||= if self.class.scoped_views?
|
||||
@_prefixes ||= if self.class.scoped_views? && devise_mapping
|
||||
super.unshift("#{devise_mapping.scoped_path}/#{controller_name}")
|
||||
else
|
||||
super
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<%= f.email_field :email %></div>
|
||||
|
||||
<div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
|
||||
<%= f.password_field :password %></div>
|
||||
<%= f.password_field :password, :autocomplete => "off" %></div>
|
||||
|
||||
<div><%= f.label :password_confirmation %><br />
|
||||
<%= f.password_field :password_confirmation %></div>
|
||||
|
||||
@@ -299,6 +299,10 @@ module Devise
|
||||
end
|
||||
end
|
||||
|
||||
def self.available_router_name
|
||||
router_name || :main_app
|
||||
end
|
||||
|
||||
def self.omniauth_providers
|
||||
omniauth_configs.keys
|
||||
end
|
||||
|
||||
@@ -75,9 +75,9 @@ module Devise
|
||||
# the controllers defined inside devise. Useful if you want to apply a before
|
||||
# filter to all controllers, except the ones in devise:
|
||||
#
|
||||
# before_filter :my_filter, :unless => { |c| c.devise_controller? }
|
||||
# before_filter :my_filter, :unless => :devise_controller?
|
||||
def devise_controller?
|
||||
false
|
||||
is_a?(DeviseController)
|
||||
end
|
||||
|
||||
# Tell warden that params authentication is allowed for that specific page.
|
||||
|
||||
@@ -60,7 +60,7 @@ module Devise
|
||||
private
|
||||
|
||||
def _devise_route_context
|
||||
@_devise_route_context ||= send(Devise.router_name)
|
||||
@_devise_route_context ||= send(Devise.available_router_name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -89,7 +89,7 @@ module Devise
|
||||
route = :"new_#{scope}_session_path"
|
||||
opts[:format] = request_format unless skip_format?
|
||||
|
||||
context = send(Devise.router_name)
|
||||
context = send(Devise.available_router_name)
|
||||
|
||||
if context.respond_to?(route)
|
||||
context.send(route, opts)
|
||||
|
||||
@@ -23,7 +23,8 @@ module Devise
|
||||
self.sign_in_count ||= 0
|
||||
self.sign_in_count += 1
|
||||
|
||||
save(:validate => false)
|
||||
save(:validate => false) or raise "Devise trackable could not save #{inspect}." \
|
||||
"Please make sure a model using trackable can be saved at sign in."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -9,13 +9,13 @@ module ActionDispatch::Routing
|
||||
|
||||
@devise_finalized ||= begin
|
||||
if Devise.router_name.nil? && self != Rails.application.try(:routes)
|
||||
warn "[Devise] We have detected that you are using devise_for inside engine routes. " \
|
||||
warn "[DEVISE] We have detected that you are using devise_for inside engine routes. " \
|
||||
"In this case, you probably want to set Devise.router_name = MOUNT_POINT, where " \
|
||||
"MOUNT_POINT is a symbol representing where this engine will be mounted at. For " \
|
||||
"now, Devise will default the mount point to :main_app."
|
||||
"now Devise will default the mount point to :main_app. You can explicitly set it" \
|
||||
" to :main_app as well in case you want to keep the current behavior."
|
||||
end
|
||||
|
||||
Devise.router_name ||= :main_app
|
||||
Devise.configure_warden!
|
||||
Devise.regenerate_helpers!
|
||||
true
|
||||
|
||||
@@ -15,9 +15,8 @@ module Devise
|
||||
|
||||
# Override process to consider warden.
|
||||
def process(*)
|
||||
result = nil
|
||||
_catch_warden { result = super }
|
||||
result
|
||||
# Make sure we always return @response, a la ActionController::TestCase::Behaviour#process, even if warden interrupts
|
||||
_catch_warden { super } || @response
|
||||
end
|
||||
|
||||
# We need to setup the environment variables and the response in the controller.
|
||||
@@ -66,6 +65,8 @@ module Devise
|
||||
|
||||
protected
|
||||
|
||||
# Catch warden continuations and handle like the middleware would.
|
||||
# Returns nil when interrupted, otherwise the normal result of the block.
|
||||
def _catch_warden(&block)
|
||||
result = catch(:warden, &block)
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
module Devise
|
||||
VERSION = "2.0.1".freeze
|
||||
VERSION = "2.0.2".freeze
|
||||
end
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
module Devise
|
||||
module Generators
|
||||
class DeviseGenerator < Rails::Generators::NamedBase
|
||||
include Rails::Generators::ResourceHelpers
|
||||
|
||||
namespace "devise"
|
||||
source_root File.expand_path("../templates", __FILE__)
|
||||
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
|
||||
===============================================================================
|
||||
|
||||
Some setup you must do manually if you haven't yet:
|
||||
|
||||
1. Setup default url options for your specific environment. Here is an
|
||||
example of development environment:
|
||||
1. Ensure you have defined default url options in your environments files. Here
|
||||
is an example of default_url_options appropriate for a development environment
|
||||
in config/environments/development.rb:
|
||||
|
||||
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
|
||||
|
||||
This is a required Rails configuration. In production it must be the
|
||||
actual host of your application
|
||||
In production, :host should be set to the actual host of your application.
|
||||
|
||||
2. Ensure you have defined root_url to *something* in your config/routes.rb.
|
||||
For example:
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<div class="inputs">
|
||||
<%= f.input :email, :required => true, :autofocus => true %>
|
||||
<%= f.input :password, :hint => "leave it blank if you don't want to change it", :required => false %>
|
||||
<%= f.input :password, :autocomplete => "off", :hint => "leave it blank if you don't want to change it", :required => false %>
|
||||
<%= f.input :password_confirmation, :required => false %>
|
||||
<%= f.input :current_password, :hint => "we need your current password to confirm your changes", :required => true %>
|
||||
</div>
|
||||
|
||||
@@ -71,19 +71,21 @@ class HelpersTest < ActionController::TestCase
|
||||
end
|
||||
|
||||
test 'does not issue blank flash messages' do
|
||||
MyController.send(:public, :set_flash_message)
|
||||
I18n.stubs(:t).returns(' ')
|
||||
@controller.set_flash_message :notice, :send_instructions
|
||||
@controller.send :set_flash_message, :notice, :send_instructions
|
||||
assert flash[:notice].nil?
|
||||
MyController.send(:protected, :set_flash_message)
|
||||
end
|
||||
|
||||
test 'issues non-blank flash messages normally' do
|
||||
MyController.send(:public, :set_flash_message)
|
||||
I18n.stubs(:t).returns('non-blank')
|
||||
@controller.set_flash_message :notice, :send_instructions
|
||||
assert flash[:notice] == 'non-blank'
|
||||
MyController.send(:protected, :set_flash_message)
|
||||
@controller.send :set_flash_message, :notice, :send_instructions
|
||||
assert_equal 'non-blank', flash[:notice]
|
||||
end
|
||||
|
||||
test 'uses custom i18n options' do
|
||||
@controller.stubs(:devise_i18n_options).returns(:default => "devise custom options")
|
||||
@controller.send :set_flash_message, :notice, :invalid_i18n_messagesend_instructions
|
||||
assert_equal 'devise custom options', flash[:notice]
|
||||
end
|
||||
|
||||
test 'navigational_formats not returning a wild card' do
|
||||
|
||||
Reference in New Issue
Block a user