devise_custom_authenticatable 0.0.1 → 0.0.2
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/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Simple way how to customize devise authentication logic and still be inline with all other devise parts
|
4
4
|
|
5
|
-
Extends Devise with new module `:custom_authenticatable`, when
|
5
|
+
Extends Devise with new module `:custom_authenticatable`, when enabled it will try to call `#valid_for_custom_authentication?` method on resource model with password. Define this method and return true in order to authenticate user. If method isn't defined for model or returns false/nil then authentication handling will be passed to next strategy e.g. `:database_authenticatable`, if there is no other strategies left for resource then authentication will be failed.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Artūrs Mekšs"]
|
10
10
|
spec.email = ["arturs.mekss@gmail.com"]
|
11
11
|
spec.description = %q{Simple way to customize devise authentication logic and still be inline with all other devise parts}
|
12
|
-
spec.summary = %q{Extends Devise with new module :custom_authenticatable, when
|
12
|
+
spec.summary = %q{Extends Devise with new module :custom_authenticatable, when enabled it will call #valid_for_custom_authentication? method on resource model for your customizations}
|
13
13
|
spec.homepage = "https://github.com/AMekss/devise_custom_authenticatable"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -6,10 +6,7 @@ module Devise::Strategies
|
|
6
6
|
|
7
7
|
def authenticate!
|
8
8
|
resource = valid_password? && mapping.to.find_for_authentication(authentication_hash)
|
9
|
-
|
10
|
-
unless resource.respond_to?(:valid_for_custom_authentication?)
|
11
|
-
return pass
|
12
|
-
end
|
9
|
+
return pass unless resource.respond_to?(:valid_for_custom_authentication?)
|
13
10
|
|
14
11
|
if validate(resource){ resource.valid_for_custom_authentication?(password) }
|
15
12
|
success!(resource)
|
@@ -18,6 +15,18 @@ module Devise::Strategies
|
|
18
15
|
end
|
19
16
|
end
|
20
17
|
|
18
|
+
# Override default Devise::Strategies::Authenticatable#validate method in order to *not* return fail! on flase,
|
19
|
+
# but pass handling to other strategies in stack, e.g default :database_authenticatable or other similar
|
20
|
+
# authentication will be failed with default message anyway if there are no strategies left
|
21
|
+
def validate(resource, &block)
|
22
|
+
if resource && resource.valid_for_authentication?(&block)
|
23
|
+
decorate(resource)
|
24
|
+
true
|
25
|
+
else
|
26
|
+
false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
21
30
|
end
|
22
31
|
end
|
23
32
|
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_custom_authenticatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Artūrs Mekšs
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
12
|
+
date: 2014-01-29 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,34 +30,39 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rake
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: '0'
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rspec
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- - '>='
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- - '>='
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: devise
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ~>
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :runtime
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ~>
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -91,32 +100,29 @@ files:
|
|
91
100
|
homepage: https://github.com/AMekss/devise_custom_authenticatable
|
92
101
|
licenses:
|
93
102
|
- MIT
|
94
|
-
metadata: {}
|
95
103
|
post_install_message:
|
96
104
|
rdoc_options: []
|
97
105
|
require_paths:
|
98
106
|
- lib
|
99
107
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
100
109
|
requirements:
|
101
|
-
- - '>='
|
110
|
+
- - ! '>='
|
102
111
|
- !ruby/object:Gem::Version
|
103
112
|
version: '0'
|
104
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
105
115
|
requirements:
|
106
|
-
- - '>='
|
116
|
+
- - ! '>='
|
107
117
|
- !ruby/object:Gem::Version
|
108
118
|
version: '0'
|
109
119
|
requirements: []
|
110
120
|
rubyforge_project:
|
111
|
-
rubygems_version:
|
121
|
+
rubygems_version: 1.8.25
|
112
122
|
signing_key:
|
113
|
-
specification_version:
|
114
|
-
summary: 'Extends Devise with new module :custom_authenticatable, when
|
115
|
-
call #
|
116
|
-
such defined. Return true in order to authenticate user. If method isn''t defined
|
117
|
-
for model or return false/nil then authentication handling will be passed to next
|
118
|
-
strategy e.g. :database_authenticatable, if there is no other strategies for resource
|
119
|
-
then authentication will be failed'
|
123
|
+
specification_version: 3
|
124
|
+
summary: ! 'Extends Devise with new module :custom_authenticatable, when enabled it
|
125
|
+
will call #valid_for_custom_authentication? method on resource model for your customizations'
|
120
126
|
test_files:
|
121
127
|
- spec/devise/models/custom_authenticatable_spec.rb
|
122
128
|
- spec/spec_helper.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 5199866fec3da5794d0ad77e0c99b7270da070c2
|
4
|
-
data.tar.gz: 5a4fbcdd35b2e525e640850f92121376d313e69c
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: f3fcc76c27370b571b068f3dcaccf32eb96eaf07205fc4f5854edeeb6965cbb4fc2455fadf1567c07d3354f211b8edc18e88c2c1d9a0e9f541da8772bdf30576
|
7
|
-
data.tar.gz: d44cf55749739078861cfbbeabd330c9339e4c59ed70d6dfdc8952440b8c2a22a06426996d919ec9105adaea821f585101efb0c3160e5d262fb8b1a834089a90
|