dm-devise 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile CHANGED
@@ -15,7 +15,7 @@ end
15
15
  DM_VERSION = '~> 1.2.0'
16
16
 
17
17
  group :development do
18
- gem 'rails', '~> 3.2.0'
18
+ gem 'rails', '~> 3.2.6'
19
19
  gem 'dm-sqlite-adapter', DM_VERSION
20
20
 
21
21
  gem 'dm-core', DM_VERSION
data/README.rdoc CHANGED
@@ -1,9 +1,3 @@
1
- *IMPORTANT:* The apply_schema option is removed in dm-devise 2.1. If you are upgrading, please read: https://github.com/jm81/dm-devise/wiki/How-to:-upgrade-to-devise-2.0-schema-style
2
-
3
- *IMPORTANT:* Devise 2.1 is out. If you are upgrading, please read: https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.1
4
-
5
- *IMPORTANT:* Devise 2.0 is out. If you are upgrading, please read: https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0
6
-
7
1
  = dm-devise
8
2
 
9
3
  dm-devise lets you use devise (http://github.com/plataformatec/devise) with
@@ -14,8 +8,8 @@ dm-devise is intended for use with Rails >= 3.2 and devise >= 2.1.
14
8
  This README only covers dm-devise specifics. Make sure to read the devise
15
9
  README http://github.com/plataformatec/devise/blob/master/README.rdoc
16
10
 
17
- Last tested against devise master: 2012-05-17, commit f6259531c36795be2766ffefd50de1f8803fc5cd
18
- Last tested against devise release 2.1.0
11
+ Last tested against devise master: 2013-01-11, commit 872ef2b97fdb2efc072559db56daf15943f32eec
12
+ Last tested against devise release 2.2.1
19
13
 
20
14
  == Installation
21
15
 
@@ -53,18 +53,26 @@ module Devise
53
53
  update(*args)
54
54
  end
55
55
 
56
+ def assign_attributes(params, *options)
57
+ self.attributes = params
58
+ end
59
+
56
60
  def invalid?
57
61
  !valid?
58
62
  end
59
63
 
60
64
  def email_changed?
61
- attribute_dirty?(:email)
65
+ attribute_dirty?(:email) && self.email.present?
66
+ end
67
+
68
+ def encrypted_password_changed?
69
+ attribute_dirty?(:email) && self.encrypted_password.present?
62
70
  end
63
71
 
64
72
  def email_was
65
73
  original_attributes[:email]
66
74
  end
67
-
75
+
68
76
  # Redefine properties_to_serialize in models for more secure defaults.
69
77
  # By default, it removes from the serializable model all attributes that
70
78
  # are *not* accessible. You can remove this default by using :force_exclude
@@ -11,9 +11,9 @@ if Devise.data_mapper_validation_lib == 'dm-validations'
11
11
 
12
12
  # If the message is a Symbol, allow +default_error_message+ to generate
13
13
  # the message, including translation.
14
- def add(field_name, message = nil)
14
+ def add(field_name, message = nil, active_record_options = {})
15
15
  if message.kind_of?(Symbol)
16
- message = self.class.default_error_message(message, field_name)
16
+ message = self.class.default_error_message(message, field_name, active_record_options.values)
17
17
  end
18
18
  original_add(field_name, message) unless errors[field_name].include?(message)
19
19
  end
@@ -1,5 +1,5 @@
1
1
  module DataMapper
2
2
  module Devise
3
- VERSION = '2.1.0'.freeze
3
+ VERSION = '2.2.0'.freeze
4
4
  end
5
5
  end
data/lib/dm-devise.rb CHANGED
@@ -20,6 +20,7 @@ module Devise
20
20
  :exclusion => '%s is reserved',
21
21
  :invalid => '%s is invalid',
22
22
  :confirmation => "%s doesn't match confirmation",
23
+ :confirmation_period_expired => '%s needs to be confirmed within %s, please request a new one',
23
24
  :accepted => '%s must be accepted',
24
25
  :nil => '%s must not be nil',
25
26
  :empty => "%s can't be empty",
@@ -63,6 +63,19 @@ class DatabaseAuthenticatableTest < ActiveSupport::TestCase
63
63
  assert_equal email.downcase, user.email
64
64
  end
65
65
 
66
+ undef test_should_downcase_case_insensitive_keys_that_refer_to_virtual_attributes_when_saving
67
+
68
+ test 'should downcase case insensitive keys that refer to virtual attributes when saving' do
69
+ email = 'Foo@Bar1.com'
70
+ confirmation = 'Foo@Bar1.com'
71
+ attributes = valid_attributes(:email => email, :email_confirmation => confirmation)
72
+ user = UserWithVirtualAttributes.new(attributes)
73
+
74
+ assert_equal confirmation, user.email_confirmation
75
+ user.save
76
+ assert_equal confirmation.downcase, user.email_confirmation
77
+ end
78
+
66
79
  undef test_should_remove_whitespace_from_strip_whitespace_keys_when_saving
67
80
 
68
81
  test 'should remove whitespace from strip whitespace keys when saving' do
@@ -28,6 +28,9 @@ class Admin
28
28
  ## Lockable
29
29
  property :locked_at, DateTime
30
30
 
31
+ ## Attribute for testing route blocks
32
+ property :active, Boolean, :default => false
33
+
31
34
  include SharedAdmin
32
35
  include Shim
33
36
  end
@@ -0,0 +1,31 @@
1
+ class Configurable < User
2
+ devise :database_authenticatable, :confirmable, :rememberable, :timeoutable, :lockable,
3
+ :stretches => 15, :pepper => 'abcdef', :allow_unconfirmed_access_for => 5.days,
4
+ :remember_for => 7.days, :timeout_in => 15.minutes, :unlock_in => 10.days
5
+ end
6
+
7
+ class WithValidation < Admin
8
+ devise :database_authenticatable, :validatable, :password_length => 2..6
9
+ end
10
+
11
+ class UserWithValidation < User
12
+ validates_presence_of :username
13
+ end
14
+
15
+ class UserWithVirtualAttributes < User
16
+ validates_presence_of :email
17
+ validates_confirmation_of :email, :if => :new?
18
+ attr_accessible :email, :email_confirmation
19
+ attr_accessor :email_confirmation
20
+ devise :database_authenticatable, :validatable, :case_insensitive_keys => [ :email, :email_confirmation ]
21
+ end
22
+
23
+ class Several < Admin
24
+ devise :validatable
25
+ devise :lockable
26
+ end
27
+
28
+ class Inheritable < Admin
29
+ end
30
+
31
+ DataMapper.finalize
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-17 00:00:00.000000000 Z
12
+ date: 2013-01-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dm-core
16
- requirement: &84857470 !ruby/object:Gem::Requirement
16
+ requirement: &87065470 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -24,10 +24,10 @@ dependencies:
24
24
  version: '2.0'
25
25
  type: :runtime
26
26
  prerelease: false
27
- version_requirements: *84857470
27
+ version_requirements: *87065470
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: dm-migrations
30
- requirement: &84857070 !ruby/object:Gem::Requirement
30
+ requirement: &87064870 !ruby/object:Gem::Requirement
31
31
  none: false
32
32
  requirements:
33
33
  - - ! '>='
@@ -38,10 +38,10 @@ dependencies:
38
38
  version: '2.0'
39
39
  type: :runtime
40
40
  prerelease: false
41
- version_requirements: *84857070
41
+ version_requirements: *87064870
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: dm-serializer
44
- requirement: &84856700 !ruby/object:Gem::Requirement
44
+ requirement: &87063760 !ruby/object:Gem::Requirement
45
45
  none: false
46
46
  requirements:
47
47
  - - ! '>='
@@ -52,10 +52,10 @@ dependencies:
52
52
  version: '2.0'
53
53
  type: :runtime
54
54
  prerelease: false
55
- version_requirements: *84856700
55
+ version_requirements: *87063760
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: dm-timestamps
58
- requirement: &84856330 !ruby/object:Gem::Requirement
58
+ requirement: &87057410 !ruby/object:Gem::Requirement
59
59
  none: false
60
60
  requirements:
61
61
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '2.0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *84856330
69
+ version_requirements: *87057410
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: dm-rails
72
- requirement: &84855950 !ruby/object:Gem::Requirement
72
+ requirement: &87056790 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -80,10 +80,10 @@ dependencies:
80
80
  version: '2.0'
81
81
  type: :runtime
82
82
  prerelease: false
83
- version_requirements: *84855950
83
+ version_requirements: *87056790
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: devise
86
- requirement: &84855550 !ruby/object:Gem::Requirement
86
+ requirement: &87056340 !ruby/object:Gem::Requirement
87
87
  none: false
88
88
  requirements:
89
89
  - - ! '>='
@@ -91,7 +91,7 @@ dependencies:
91
91
  version: '1.3'
92
92
  type: :runtime
93
93
  prerelease: false
94
- version_requirements: *84855550
94
+ version_requirements: *87056340
95
95
  description: dm-devise adds DataMapper support to devise (http://github.com/plataformatec/devise)
96
96
  for authentication support for Rails
97
97
  email: jmorgan@morgancreative.net
@@ -128,6 +128,7 @@ files:
128
128
  - test/rails_app/config/application.rb
129
129
  - test/rails_app/config/environment.rb
130
130
  - test/test_helper.rb
131
+ - test/test_models.rb
131
132
  homepage: https://github.com/jm81/dm-devise
132
133
  licenses: []
133
134
  post_install_message:
@@ -153,3 +154,4 @@ signing_key:
153
154
  specification_version: 3
154
155
  summary: DataMapper support for devise
155
156
  test_files: []
157
+ has_rdoc: