dm-devise 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: