king_tokens 2.0.2 → 2.1.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.
- checksums.yaml +5 -13
- data/Gemfile +1 -2
- data/README.md +5 -5
- data/lib/king_tokens/token_code.rb +5 -1
- data/lib/king_tokens/tokenizer.rb +7 -7
- data/lib/king_tokens/version.rb +1 -1
- metadata +16 -16
checksums.yaml
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
|
|
5
|
-
data.tar.gz: !binary |-
|
|
6
|
-
Y2E3MzgwMjA3YTBhYmIwMzQ5NjEzZmNkODdjOWQ1ZDA2MTVlNGE2Ng==
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: fde13af97629a259470fa2f1f7f3b2512288d40d
|
|
4
|
+
data.tar.gz: 6ace3d4f8524a39b05fabbaedd0475ab117271cd
|
|
7
5
|
SHA512:
|
|
8
|
-
metadata.gz:
|
|
9
|
-
|
|
10
|
-
MzNkNWYxZjA5ZDljMmU0NTMyZTUzMjE1Y2NjMGI3NGUxNWQ1MDI3NWE5ODAy
|
|
11
|
-
MWFjMTVkMmRhZmIwNzk1NzJkNDdmNDFmODQxOWQ5M2MyY2IxYmU=
|
|
12
|
-
data.tar.gz: !binary |-
|
|
13
|
-
ZjE3ZWM0MmQ3OTAzZmZmOTEwNmJmOTJjNjYyOWVhM2ExMjRjOGU3OWQwOWYw
|
|
14
|
-
ZGU5NTkxN2ZhYzJjMjcwZjk5ZTc2MWMxNGJiZGRmZTQyYzUyZTMwYmMzNTI3
|
|
15
|
-
MjMyMzVmMGJjZTA5YmE0NTgyYmNhYzlmMDc3ODJiMmJiMDNlY2M=
|
|
6
|
+
metadata.gz: 01d2068e532465a0a1c9853276ce0c3ed6d0cfbadca48dcc7e8aabf5aa9267ffa7f4cbdd3dfbbfe30a847597068203f8d3979780e561a30e6897e9487ece525c
|
|
7
|
+
data.tar.gz: 3ae598c3c81d66199d572a272f7ecdc8d2b6fe46d93e07d6e7b478de6ae370c705081ea838994a6c6dd3d877ee15f863e733d2c08a0bf07d98690f9cb6f4d39d
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# KingTokens
|
|
2
2
|
|
|
3
|
-
Tokens are a
|
|
3
|
+
Tokens are a useful way to give users access to an application. This can be for a limited time or just once.
|
|
4
4
|
Just think of password resets, changing email, protected rss feed urls, timed out private links, .. KingTokens are your easy way out in such cases
|
|
5
5
|
|
|
6
6
|
This plugin consists of two parts:
|
|
@@ -12,16 +12,16 @@ KingTokens map polymorphic to other objects, through the can_has_tokens :a_token
|
|
|
12
12
|
|
|
13
13
|
## Install
|
|
14
14
|
|
|
15
|
-
Get it as gem
|
|
16
|
-
gem install king_tokens
|
|
15
|
+
Get it as gem
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
gem install king_tokens
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
Setup your token database tables like defined in the test schema => test/schema.rb
|
|
21
20
|
|
|
22
21
|
## Example
|
|
23
22
|
|
|
24
23
|
Define a token on a model
|
|
24
|
+
|
|
25
25
|
```ruby
|
|
26
26
|
class User
|
|
27
27
|
can_has_tokens :forgot_password
|
|
@@ -56,6 +56,10 @@ class TokenCode < ActiveRecord::Base
|
|
|
56
56
|
delete_all ["valid_until IS NOT NULL AND valid_until < ? ", Time.now]
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
+
def self.find_token(token)
|
|
60
|
+
where(token: token).first
|
|
61
|
+
end
|
|
62
|
+
|
|
59
63
|
private
|
|
60
64
|
|
|
61
65
|
# Generate a token with a default length of 12.
|
|
@@ -75,7 +79,7 @@ class TokenCode < ActiveRecord::Base
|
|
|
75
79
|
end
|
|
76
80
|
|
|
77
81
|
def set_token
|
|
78
|
-
self.token = generate_token { |token| TokenCode.
|
|
82
|
+
self.token = generate_token { |token| TokenCode.find_token(token).nil? }
|
|
79
83
|
end
|
|
80
84
|
|
|
81
85
|
end
|
|
@@ -52,8 +52,8 @@ module KingTokens
|
|
|
52
52
|
#
|
|
53
53
|
# ==== Returns
|
|
54
54
|
# Object:: the object to which the token belongs
|
|
55
|
-
def find_token(args={})
|
|
56
|
-
TokenCode.
|
|
55
|
+
def find_token(args = {})
|
|
56
|
+
TokenCode.where(args).first
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
# Find an object by its token.
|
|
@@ -64,7 +64,7 @@ module KingTokens
|
|
|
64
64
|
#
|
|
65
65
|
# ==== Returns
|
|
66
66
|
# Object:: the object to which the token belongs
|
|
67
|
-
def find_by_token(name,token)
|
|
67
|
+
def find_by_token(name, token)
|
|
68
68
|
token = find_token(:name => "#{name}", :token => token)
|
|
69
69
|
token.object if token
|
|
70
70
|
end
|
|
@@ -78,7 +78,7 @@ module KingTokens
|
|
|
78
78
|
# ==== Returns
|
|
79
79
|
# Object:: the object to which the token belongs
|
|
80
80
|
def find_by_valid_token(name, token)
|
|
81
|
-
token = find_token(:name =>
|
|
81
|
+
token = find_token(:name => name.to_s, :token => token)
|
|
82
82
|
return token.object if token && token.valid_for_use?
|
|
83
83
|
end
|
|
84
84
|
end
|
|
@@ -98,7 +98,7 @@ module KingTokens
|
|
|
98
98
|
self.token(name).destroy
|
|
99
99
|
end
|
|
100
100
|
args[:name] = "#{name}"
|
|
101
|
-
args[:valid_until] ||= (
|
|
101
|
+
args[:valid_until] ||= (args.delete(:valid) || 5.days).from_now
|
|
102
102
|
self.token_codes.create(args)
|
|
103
103
|
end
|
|
104
104
|
|
|
@@ -106,10 +106,10 @@ module KingTokens
|
|
|
106
106
|
# ==== Parameter
|
|
107
107
|
# name<String/Symbol>:: The name of the token
|
|
108
108
|
def token(name)
|
|
109
|
-
self.token_codes.
|
|
109
|
+
self.token_codes.where(name: name.to_s).first
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
end #module
|
|
115
|
-
end # namespace
|
|
115
|
+
end # namespace
|
data/lib/king_tokens/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: king_tokens
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0
|
|
4
|
+
version: 2.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Georg Leciejewski
|
|
@@ -15,84 +15,84 @@ dependencies:
|
|
|
15
15
|
name: test-unit
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
|
-
- -
|
|
18
|
+
- - ">="
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
20
|
version: '0'
|
|
21
21
|
type: :development
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
|
-
- -
|
|
25
|
+
- - ">="
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
27
|
version: '0'
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: activerecord
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
31
31
|
requirements:
|
|
32
|
-
- -
|
|
32
|
+
- - ">="
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
34
|
version: '0'
|
|
35
35
|
type: :development
|
|
36
36
|
prerelease: false
|
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
38
|
requirements:
|
|
39
|
-
- -
|
|
39
|
+
- - ">="
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
41
|
version: '0'
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
43
|
name: activesupport
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
45
45
|
requirements:
|
|
46
|
-
- -
|
|
46
|
+
- - ">="
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
48
|
version: '0'
|
|
49
49
|
type: :development
|
|
50
50
|
prerelease: false
|
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
52
|
requirements:
|
|
53
|
-
- -
|
|
53
|
+
- - ">="
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
55
|
version: '0'
|
|
56
56
|
- !ruby/object:Gem::Dependency
|
|
57
57
|
name: rake
|
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
|
59
59
|
requirements:
|
|
60
|
-
- -
|
|
60
|
+
- - ">="
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
62
|
version: '0'
|
|
63
63
|
type: :development
|
|
64
64
|
prerelease: false
|
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
|
-
- -
|
|
67
|
+
- - ">="
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
69
|
version: '0'
|
|
70
70
|
- !ruby/object:Gem::Dependency
|
|
71
71
|
name: rdoc
|
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
|
73
73
|
requirements:
|
|
74
|
-
- -
|
|
74
|
+
- - ">="
|
|
75
75
|
- !ruby/object:Gem::Version
|
|
76
76
|
version: '0'
|
|
77
77
|
type: :development
|
|
78
78
|
prerelease: false
|
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
|
80
80
|
requirements:
|
|
81
|
-
- -
|
|
81
|
+
- - ">="
|
|
82
82
|
- !ruby/object:Gem::Version
|
|
83
83
|
version: '0'
|
|
84
84
|
- !ruby/object:Gem::Dependency
|
|
85
85
|
name: sqlite3
|
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
|
87
87
|
requirements:
|
|
88
|
-
- -
|
|
88
|
+
- - ">="
|
|
89
89
|
- !ruby/object:Gem::Version
|
|
90
90
|
version: '0'
|
|
91
91
|
type: :development
|
|
92
92
|
prerelease: false
|
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
|
94
94
|
requirements:
|
|
95
|
-
- -
|
|
95
|
+
- - ">="
|
|
96
96
|
- !ruby/object:Gem::Version
|
|
97
97
|
version: '0'
|
|
98
98
|
description: Tokens are a usefull way to give users access to an application. This
|
|
@@ -104,7 +104,7 @@ extensions: []
|
|
|
104
104
|
extra_rdoc_files:
|
|
105
105
|
- README.md
|
|
106
106
|
files:
|
|
107
|
-
- .gitignore
|
|
107
|
+
- ".gitignore"
|
|
108
108
|
- Gemfile
|
|
109
109
|
- MIT-LICENSE
|
|
110
110
|
- README.md
|
|
@@ -127,12 +127,12 @@ require_paths:
|
|
|
127
127
|
- lib
|
|
128
128
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
129
129
|
requirements:
|
|
130
|
-
- -
|
|
130
|
+
- - ">="
|
|
131
131
|
- !ruby/object:Gem::Version
|
|
132
132
|
version: '0'
|
|
133
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
134
|
requirements:
|
|
135
|
-
- -
|
|
135
|
+
- - ">="
|
|
136
136
|
- !ruby/object:Gem::Version
|
|
137
137
|
version: '0'
|
|
138
138
|
requirements: []
|