devise 2.0.0.rc → 2.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of devise might be problematic. Click here for more details.

Files changed (75) hide show
  1. data/CHANGELOG.rdoc +94 -74
  2. data/README.rdoc +2 -2
  3. data/app/controllers/devise/confirmations_controller.rb +3 -6
  4. data/app/controllers/devise/omniauth_callbacks_controller.rb +1 -3
  5. data/app/controllers/devise/passwords_controller.rb +3 -6
  6. data/app/controllers/devise/registrations_controller.rb +34 -41
  7. data/app/controllers/devise/sessions_controller.rb +2 -3
  8. data/app/controllers/devise/unlocks_controller.rb +3 -5
  9. data/app/controllers/devise_controller.rb +169 -0
  10. data/app/views/devise/_links.erb +25 -0
  11. data/app/views/devise/confirmations/new.html.erb +1 -1
  12. data/app/views/devise/passwords/edit.html.erb +1 -1
  13. data/app/views/devise/passwords/new.html.erb +1 -1
  14. data/app/views/devise/registrations/new.html.erb +1 -1
  15. data/app/views/devise/sessions/new.html.erb +1 -1
  16. data/app/views/devise/shared/_links.erb +3 -25
  17. data/app/views/devise/unlocks/new.html.erb +1 -1
  18. data/config/locales/en.yml +4 -6
  19. data/lib/devise.rb +15 -11
  20. data/lib/devise/controllers/helpers.rb +8 -2
  21. data/lib/devise/controllers/scoped_views.rb +0 -16
  22. data/lib/devise/controllers/url_helpers.rb +16 -2
  23. data/lib/devise/failure_app.rb +43 -8
  24. data/lib/devise/models.rb +1 -1
  25. data/lib/devise/models/confirmable.rb +12 -9
  26. data/lib/devise/models/lockable.rb +1 -1
  27. data/lib/devise/models/serializable.rb +5 -2
  28. data/lib/devise/modules.rb +2 -2
  29. data/lib/devise/param_filter.rb +1 -1
  30. data/lib/devise/path_checker.rb +5 -1
  31. data/lib/devise/rails.rb +21 -0
  32. data/lib/devise/rails/routes.rb +16 -10
  33. data/lib/devise/rails/warden_compat.rb +0 -83
  34. data/lib/devise/strategies/authenticatable.rb +2 -2
  35. data/lib/devise/version.rb +1 -1
  36. data/lib/generators/active_record/devise_generator.rb +1 -1
  37. data/lib/generators/active_record/templates/migration.rb +0 -10
  38. data/lib/generators/devise/views_generator.rb +6 -14
  39. data/lib/generators/templates/devise.rb +11 -3
  40. data/lib/generators/templates/simple_form_for/confirmations/new.html.erb +1 -1
  41. data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +1 -1
  42. data/lib/generators/templates/simple_form_for/passwords/new.html.erb +1 -1
  43. data/lib/generators/templates/simple_form_for/registrations/new.html.erb +1 -1
  44. data/lib/generators/templates/simple_form_for/sessions/new.html.erb +1 -1
  45. data/lib/generators/templates/simple_form_for/unlocks/new.html.erb +1 -1
  46. data/test/controllers/internal_helpers_test.rb +1 -2
  47. data/test/failure_app_test.rb +24 -20
  48. data/test/generators/active_record_generator_test.rb +3 -13
  49. data/test/generators/views_generator_test.rb +1 -1
  50. data/test/integration/authenticatable_test.rb +4 -7
  51. data/test/integration/http_authenticatable_test.rb +4 -4
  52. data/test/integration/lockable_test.rb +24 -12
  53. data/test/integration/registerable_test.rb +1 -1
  54. data/test/integration/timeoutable_test.rb +18 -4
  55. data/test/integration/token_authenticatable_test.rb +3 -3
  56. data/test/integration/trackable_test.rb +5 -5
  57. data/test/models/confirmable_test.rb +15 -0
  58. data/test/models/database_authenticatable_test.rb +6 -0
  59. data/test/models/lockable_test.rb +13 -0
  60. data/test/rails_app/app/mongoid/user.rb +1 -1
  61. data/test/rails_app/config/routes.rb +3 -5
  62. data/test/rails_app/db/migrate/20100401102949_create_tables.rb +1 -1
  63. data/test/rails_app/lib/shared_admin.rb +1 -0
  64. data/test/rails_app/log/development.log +13 -0
  65. data/test/rails_app/log/test.log +290988 -0
  66. data/test/support/helpers.rb +0 -17
  67. metadata +105 -57
  68. data/.gitignore +0 -10
  69. data/.travis.yml +0 -13
  70. data/Gemfile +0 -35
  71. data/Gemfile.lock +0 -168
  72. data/Rakefile +0 -34
  73. data/devise.gemspec +0 -25
  74. data/lib/devise/controllers/internal_helpers.rb +0 -161
  75. data/lib/devise/controllers/shared_helpers.rb +0 -26
data/Rakefile DELETED
@@ -1,34 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'rake/testtask'
4
- require 'rdoc/task'
5
-
6
- desc 'Default: run tests for all ORMs.'
7
- task :default => :test
8
-
9
- desc 'Run Devise tests for all ORMs.'
10
- task :pre_commit do
11
- Dir[File.join(File.dirname(__FILE__), 'test', 'orm', '*.rb')].each do |file|
12
- orm = File.basename(file).split(".").first
13
- # "Some day, my son, rake's inner wisdom will reveal itself. Until then,
14
- # take this `system` -- may its brute force protect you well."
15
- exit 1 unless system "rake test DEVISE_ORM=#{orm}"
16
- end
17
- end
18
-
19
- desc 'Run Devise unit tests.'
20
- Rake::TestTask.new(:test) do |t|
21
- t.libs << 'lib'
22
- t.libs << 'test'
23
- t.pattern = 'test/**/*_test.rb'
24
- t.verbose = true
25
- end
26
-
27
- desc 'Generate documentation for Devise.'
28
- Rake::RDocTask.new(:rdoc) do |rdoc|
29
- rdoc.rdoc_dir = 'rdoc'
30
- rdoc.title = 'Devise'
31
- rdoc.options << '--line-numbers' << '--inline-source'
32
- rdoc.rdoc_files.include('README.rdoc')
33
- rdoc.rdoc_files.include('lib/**/*.rb')
34
- end
@@ -1,25 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "devise/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "devise"
7
- s.version = Devise::VERSION.dup
8
- s.platform = Gem::Platform::RUBY
9
- s.summary = "Flexible authentication solution for Rails with Warden"
10
- s.email = "contact@plataformatec.com.br"
11
- s.homepage = "http://github.com/plataformatec/devise"
12
- s.description = "Flexible authentication solution for Rails with Warden"
13
- s.authors = ['José Valim', 'Carlos Antônio']
14
-
15
- s.rubyforge_project = "devise"
16
-
17
- s.files = `git ls-files`.split("\n")
18
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
- s.require_paths = ["lib"]
21
-
22
- s.add_dependency("warden", "~> 1.1")
23
- s.add_dependency("orm_adapter", "~> 0.0.3")
24
- s.add_dependency("bcrypt-ruby", "~> 3.0")
25
- end
@@ -1,161 +0,0 @@
1
- module Devise
2
- module Controllers
3
- # Those helpers are used only inside Devise controllers and should not be
4
- # included in ApplicationController since they all depend on the url being
5
- # accessed.
6
- module InternalHelpers #:nodoc:
7
- extend ActiveSupport::Concern
8
- include Devise::Controllers::ScopedViews
9
- include Devise::Controllers::SharedHelpers
10
-
11
- included do
12
- helper DeviseHelper
13
-
14
- helpers = %w(resource scope_name resource_name signed_in_resource
15
- resource_class devise_mapping devise_controller?)
16
- hide_action *helpers
17
- helper_method *helpers
18
-
19
- prepend_before_filter :is_devise_resource?
20
- respond_to *Mime::SET.map(&:to_sym) if mimes_for_respond_to.empty?
21
- end
22
-
23
- # Gets the actual resource stored in the instance variable
24
- def resource
25
- instance_variable_get(:"@#{resource_name}")
26
- end
27
-
28
- # Proxy to devise map name
29
- def resource_name
30
- devise_mapping.name
31
- end
32
- alias :scope_name :resource_name
33
-
34
- # Proxy to devise map class
35
- def resource_class
36
- devise_mapping.to
37
- end
38
-
39
- # Returns a signed in resource from session (if one exists)
40
- def signed_in_resource
41
- warden.authenticate(:scope => resource_name)
42
- end
43
-
44
- # Attempt to find the mapped route for devise based on request path
45
- def devise_mapping
46
- @devise_mapping ||= request.env["devise.mapping"]
47
- end
48
-
49
- # Overwrites devise_controller? to return true
50
- def devise_controller?
51
- true
52
- end
53
-
54
- protected
55
-
56
- # Checks whether it's a devise mapped resource or not.
57
- def is_devise_resource? #:nodoc:
58
- unknown_action! <<-MESSAGE unless devise_mapping
59
- Could not find devise mapping for path #{request.fullpath.inspect}.
60
- Maybe you forgot to wrap your route inside the scope block? For example:
61
-
62
- devise_scope :user do
63
- match "/some/route" => "some_devise_controller"
64
- end
65
- MESSAGE
66
- end
67
-
68
- # Returns real navigational formats which are supported by Rails
69
- def navigational_formats
70
- @navigational_formats ||= Devise.navigational_formats.select{ |format| Mime::EXTENSION_LOOKUP[format.to_s] }
71
- end
72
-
73
- def unknown_action!(msg)
74
- logger.debug "[Devise] #{msg}" if logger
75
- raise ActionController::UnknownAction, msg
76
- end
77
-
78
- # Sets the resource creating an instance variable
79
- def resource=(new_resource)
80
- instance_variable_set(:"@#{resource_name}", new_resource)
81
- end
82
-
83
- # Build a devise resource.
84
- def build_resource(hash=nil)
85
- hash ||= params[resource_name] || {}
86
- self.resource = resource_class.new(hash)
87
- end
88
-
89
- # Helper for use in before_filters where no authentication is required.
90
- #
91
- # Example:
92
- # before_filter :require_no_authentication, :only => :new
93
- def require_no_authentication
94
- return unless is_navigational_format?
95
- no_input = devise_mapping.no_input_strategies
96
-
97
- authenticated = if no_input.present?
98
- args = no_input.dup.push :scope => resource_name
99
- warden.authenticate?(*args)
100
- else
101
- warden.authenticated?(resource_name)
102
- end
103
-
104
- if authenticated
105
- resource = warden.user(resource_name)
106
- flash[:alert] = I18n.t("devise.failure.already_authenticated")
107
- redirect_to after_sign_in_path_for(resource)
108
- end
109
- end
110
-
111
- # Helper for use after calling send_*_instructions methods on a resource.
112
- # If we are in paranoid mode, we always act as if the resource was valid
113
- # and instructions were sent.
114
- def successfully_sent?(resource)
115
- notice = if Devise.paranoid
116
- resource.errors.clear
117
- :send_paranoid_instructions
118
- elsif resource.errors.empty?
119
- :send_instructions
120
- end
121
-
122
- if notice
123
- set_flash_message :notice, notice if is_navigational_format?
124
- true
125
- end
126
- end
127
-
128
- # Sets the flash message with :key, using I18n. By default you are able
129
- # to setup your messages using specific resource scope, and if no one is
130
- # found we look to default scope.
131
- # Example (i18n locale file):
132
- #
133
- # en:
134
- # devise:
135
- # passwords:
136
- # #default_scope_messages - only if resource_scope is not found
137
- # user:
138
- # #resource_scope_messages
139
- #
140
- # Please refer to README or en.yml locale file to check what messages are
141
- # available.
142
- def set_flash_message(key, kind, options={}) #:nodoc:
143
- options[:scope] = "devise.#{controller_name}"
144
- options[:default] = Array(options[:default]).unshift(kind.to_sym)
145
- options[:resource_name] = resource_name
146
- message = I18n.t("#{resource_name}.#{kind}", options)
147
- flash[key] = message if message.present?
148
- end
149
-
150
- def clean_up_passwords(object) #:nodoc:
151
- object.clean_up_passwords if object.respond_to?(:clean_up_passwords)
152
- end
153
-
154
- def respond_with_navigational(*args, &block)
155
- respond_with(*args) do |format|
156
- format.any(*navigational_formats, &block)
157
- end
158
- end
159
- end
160
- end
161
- end
@@ -1,26 +0,0 @@
1
- module Devise
2
- module Controllers
3
- # Helpers used in both FailureApp and Devise controllers.
4
- module SharedHelpers
5
- MIME_REFERENCES = Mime::HTML.respond_to?(:ref)
6
-
7
- protected
8
-
9
- # Helper used by FailureApp and Devise controllers to retrieve proper formats.
10
- def request_format
11
- @request_format ||= if request.format.respond_to?(:ref)
12
- request.format.ref
13
- elsif MIME_REFERENCES
14
- request.format
15
- elsif request.format # Rails < 3.0.4
16
- request.format.to_sym
17
- end
18
- end
19
-
20
- # Check whether it's navigational format, such as :html or :iphone, or not.
21
- def is_navigational_format?
22
- Devise.navigational_formats.include?(request_format)
23
- end
24
- end
25
- end
26
- end