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 +1 -1
- data/README.rdoc +2 -8
- data/lib/devise/orm/data_mapper/compatibility.rb +10 -2
- data/lib/devise/orm/data_mapper/validations/dm-validations.rb +2 -2
- data/lib/dm-devise/version.rb +1 -1
- data/lib/dm-devise.rb +1 -0
- data/test/overrides/data_mapper_test.rb +13 -0
- data/test/rails_app/app/data_mapper/admin.rb +3 -0
- data/test/test_models.rb +31 -0
- metadata +16 -14
data/Gemfile
CHANGED
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:
|
18
|
-
Last tested against devise release 2.1
|
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
|
data/lib/dm-devise/version.rb
CHANGED
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
|
data/test/test_models.rb
ADDED
@@ -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.
|
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:
|
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: &
|
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: *
|
27
|
+
version_requirements: *87065470
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: dm-migrations
|
30
|
-
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: *
|
41
|
+
version_requirements: *87064870
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: dm-serializer
|
44
|
-
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: *
|
55
|
+
version_requirements: *87063760
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: dm-timestamps
|
58
|
-
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: *
|
69
|
+
version_requirements: *87057410
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: dm-rails
|
72
|
-
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: *
|
83
|
+
version_requirements: *87056790
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: devise
|
86
|
-
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: *
|
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:
|