gemstack-auth 0.1.0 → 0.2.1
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/gemstack/auth/tokens.rb +8 -1
- metadata +11 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f5436055ef2f46e6a2ec959c37126a1dd1fc1b541e2ee614fc089f6843be9cf
|
|
4
|
+
data.tar.gz: 278bdeb84643bed6305f86cda074b2caea3965e56e72c596020e72a66354741d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d53221c34deee9d0eb5a4d8690af1711516bf082a081ff21d65ceaeaf0882331505027b1b3da9b3c8052ad1e3648d346d5862fcdbf1312b86a510f8ce064b84a
|
|
7
|
+
data.tar.gz: bdc386c2517dd88b588c2d977cf81348b5178ab377fd5e179bc97188c0337c3dd88e80caafc696ff748f0291237044cfcb25908954be75df52796d73c1783286
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.1
|
|
4
|
+
|
|
5
|
+
See the [GemStack changelog](https://github.com/gemstack-rb/gemstack/blob/main/CHANGELOG.md).
|
|
6
|
+
|
|
7
|
+
## 0.2.0
|
|
8
|
+
|
|
9
|
+
See the [GemStack changelog](https://github.com/gemstack-rb/gemstack/blob/main/CHANGELOG.md).
|
|
10
|
+
|
|
3
11
|
## 0.1.0
|
|
4
12
|
|
|
5
13
|
First release. See the [GemStack changelog](https://github.com/gemstack-rb/gemstack/blob/main/CHANGELOG.md).
|
data/lib/gemstack/auth/tokens.rb
CHANGED
|
@@ -43,11 +43,18 @@ module GemStack
|
|
|
43
43
|
|
|
44
44
|
# Uses up a single-use token: deletes and returns its row, atomically,
|
|
45
45
|
# so two concurrent requests can't both use one reset link.
|
|
46
|
+
# PostgreSQL and SQLite: DELETE … RETURNING; MySQL: lock the row, then delete it.
|
|
46
47
|
def consume(token, purpose:)
|
|
47
48
|
check_purpose!(purpose)
|
|
48
49
|
return nil unless Token.plausible?(token)
|
|
49
50
|
|
|
50
|
-
live(token, purpose, Time.now)
|
|
51
|
+
scope = live(token, purpose, Time.now)
|
|
52
|
+
return scope.returning.delete.first if scope.supports_returning?(:delete)
|
|
53
|
+
|
|
54
|
+
Auth.db.transaction do
|
|
55
|
+
row = scope.for_update.first
|
|
56
|
+
row if row && dataset.where(id: row[:id]).delete.positive?
|
|
57
|
+
end
|
|
51
58
|
end
|
|
52
59
|
|
|
53
60
|
def revoke(id, user_id:) = dataset.where(id: id, user_id: user_id).delete.positive?
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gemstack-auth
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shoaib Malik
|
|
@@ -29,70 +29,70 @@ dependencies:
|
|
|
29
29
|
requirements:
|
|
30
30
|
- - '='
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.1
|
|
32
|
+
version: 0.2.1
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - '='
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.1
|
|
39
|
+
version: 0.2.1
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: gemstack-core
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
44
|
- - '='
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 0.1
|
|
46
|
+
version: 0.2.1
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - '='
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 0.1
|
|
53
|
+
version: 0.2.1
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: gemstack-db
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - '='
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: 0.1
|
|
60
|
+
version: 0.2.1
|
|
61
61
|
type: :runtime
|
|
62
62
|
prerelease: false
|
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
65
|
- - '='
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: 0.1
|
|
67
|
+
version: 0.2.1
|
|
68
68
|
- !ruby/object:Gem::Dependency
|
|
69
69
|
name: gemstack-http
|
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - '='
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 0.1
|
|
74
|
+
version: 0.2.1
|
|
75
75
|
type: :runtime
|
|
76
76
|
prerelease: false
|
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
79
|
- - '='
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 0.1
|
|
81
|
+
version: 0.2.1
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
83
|
name: gemstack-mail
|
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
|
85
85
|
requirements:
|
|
86
86
|
- - '='
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: 0.1
|
|
88
|
+
version: 0.2.1
|
|
89
89
|
type: :runtime
|
|
90
90
|
prerelease: false
|
|
91
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
92
|
requirements:
|
|
93
93
|
- - '='
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 0.1
|
|
95
|
+
version: 0.2.1
|
|
96
96
|
email:
|
|
97
97
|
- gemstack26@gmail.com
|
|
98
98
|
executables: []
|