tiddle 1.7.0 → 1.8.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 +4 -4
- data/.github/workflows/ruby.yml +11 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +14 -0
- data/CONTRIBUTING.md +23 -2
- data/Dockerfile +12 -0
- data/Makefile +16 -0
- data/README.md +2 -4
- data/Rakefile +1 -6
- data/docker-compose.yml +23 -0
- data/gemfiles/rails5.2.gemfile +0 -2
- data/gemfiles/rails6.0.gemfile +0 -2
- data/gemfiles/rails6.1.gemfile +0 -2
- data/gemfiles/rails7.0.gemfile +7 -0
- data/lib/tiddle/model_name.rb +7 -1
- data/lib/tiddle/strategy.rb +18 -3
- data/lib/tiddle/version.rb +1 -1
- data/spec/rails_app_active_record/app/controllers/namespaced_users_controller.rb +7 -0
- data/spec/rails_app_active_record/app/models/namespace/namespaced_user.rb +9 -0
- data/spec/rails_app_active_record/config/application.rb +1 -0
- data/spec/rails_app_active_record/config/routes.rb +2 -0
- data/spec/rails_app_active_record/db/migrate/20150217000000_create_tables.rb +21 -0
- data/spec/rails_app_mongoid/app/controllers/namespaced_users_controller.rb +7 -0
- data/spec/rails_app_mongoid/app/models/namespace/namespaced_user.rb +4 -0
- data/spec/rails_app_mongoid/config/routes.rb +2 -0
- data/spec/strategy_spec.rb +105 -0
- data/tiddle.gemspec +1 -2
- metadata +16 -20
- data/Appraisals +0 -17
- data/Gemfile +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30c0de8dba83157b465e1455956272549e210830cc8fe296aec744b0d046ca1c
|
4
|
+
data.tar.gz: 53652aefc5c51511b5f43df0c598ae6754e596e78a4be02aa01fa7e3dd40b95b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ac88d0e37967ad77c5f6b7ffa96646910c90be6cc8fc2d6adead616e73673b8601b2664a0851eec3fbc0eaa2e968a7b5cce7b5ffb89187ca4c77bb12ae6d875
|
7
|
+
data.tar.gz: 55ceda21948c6ca6c872b863e22da925d00014625075a77e195f877f154b00ce31fe0a4e63c18a7e0c43b015a023617b4a33c6d4c23da95bee6f6652cc371a88
|
data/.github/workflows/ruby.yml
CHANGED
@@ -15,16 +15,23 @@ jobs:
|
|
15
15
|
- rails5.2
|
16
16
|
- rails6.0
|
17
17
|
- rails6.1
|
18
|
+
- rails7.0
|
18
19
|
ruby:
|
19
|
-
- 2.
|
20
|
-
-
|
21
|
-
- 3.
|
20
|
+
- "2.7"
|
21
|
+
- "3.0"
|
22
|
+
- "3.1"
|
22
23
|
backend:
|
23
24
|
- active_record
|
24
25
|
- mongoid
|
25
26
|
exclude:
|
26
27
|
- gemfile: rails5.2
|
27
|
-
ruby: 3.0
|
28
|
+
ruby: "3.0"
|
29
|
+
- gemfile: rails5.2
|
30
|
+
ruby: "3.1"
|
31
|
+
- gemfile: rails6.0
|
32
|
+
ruby: "3.1"
|
33
|
+
- gemfile: rails6.1
|
34
|
+
ruby: "3.1"
|
28
35
|
name: ${{ matrix.gemfile }}, ruby ${{ matrix.ruby }}, ${{ matrix.backend }}
|
29
36
|
runs-on: ubuntu-latest
|
30
37
|
env:
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
### 1.8.0
|
2
|
+
|
3
|
+
Support different touch interval based on expiration time (Daniel André da Silva)
|
4
|
+
|
5
|
+
### 1.7.1
|
6
|
+
|
7
|
+
Fix invalid headers generated when model is namespaced (Ariel Agne da Silveira)
|
8
|
+
|
9
|
+
Add Rails 7.0 support
|
10
|
+
|
11
|
+
Add Ruby 3.1 support
|
12
|
+
|
13
|
+
Remove Ruby 2.6 support
|
14
|
+
|
1
15
|
### 1.7.0
|
2
16
|
|
3
17
|
Add ability to track additional info in tokens (Marcelo Silveira)
|
data/CONTRIBUTING.md
CHANGED
@@ -4,9 +4,30 @@
|
|
4
4
|
2. Run the tests:
|
5
5
|
|
6
6
|
```
|
7
|
-
|
8
|
-
rake
|
7
|
+
BUNDLE_GEMFILE=gemfiles/<PICK YOUR FAVOURITE>.gemfile rake
|
9
8
|
```
|
10
9
|
3. Introduce your change. If it's a new feature then write a test for it as well.
|
11
10
|
4. Make sure that tests are passing.
|
12
11
|
5. Push to your fork and submit a pull request.
|
12
|
+
|
13
|
+
#### Docker for development
|
14
|
+
|
15
|
+
Alternatively you can use Docker for the development setup. This requires Docker
|
16
|
+
and Docker Compose installed.
|
17
|
+
|
18
|
+
```
|
19
|
+
make build
|
20
|
+
make bundle
|
21
|
+
```
|
22
|
+
|
23
|
+
And in order to run the tests and linter checks:
|
24
|
+
|
25
|
+
```
|
26
|
+
make test
|
27
|
+
```
|
28
|
+
|
29
|
+
After you're done, cleanup leftover containers:
|
30
|
+
|
31
|
+
```
|
32
|
+
make cleanup
|
33
|
+
```
|
data/Dockerfile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
FROM ruby:3.1-alpine
|
2
|
+
|
3
|
+
RUN apk add build-base sqlite-dev tzdata git bash
|
4
|
+
RUN gem update --system && gem install bundler
|
5
|
+
|
6
|
+
WORKDIR /library
|
7
|
+
|
8
|
+
ENV BUNDLE_PATH=/vendor/bundle \
|
9
|
+
BUNDLE_BIN=/vendor/bundle/bin \
|
10
|
+
GEM_HOME=/vendor/bundle
|
11
|
+
|
12
|
+
ENV PATH="${BUNDLE_BIN}:${PATH}"
|
data/Makefile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
.PHONY: build bundle test bash cleanup
|
2
|
+
|
3
|
+
build:
|
4
|
+
docker-compose build
|
5
|
+
|
6
|
+
bundle:
|
7
|
+
docker-compose run --rm library bundle install
|
8
|
+
|
9
|
+
test:
|
10
|
+
docker-compose run --rm library bundle exec rake
|
11
|
+
|
12
|
+
bash:
|
13
|
+
docker-compose run --rm library bash
|
14
|
+
|
15
|
+
cleanup:
|
16
|
+
docker-compose down
|
data/README.md
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# Tiddle
|
2
2
|
|
3
|
-
[](https://codeclimate.com/github/adamniedzielski/tiddle)
|
4
|
-
|
5
3
|
Tiddle provides Devise strategy for token authentication in API-only Ruby on Rails applications. Its main feature is **support for multiple tokens per user**.
|
6
4
|
|
7
5
|
Tiddle is lightweight and non-configurable. It does what it has to do and leaves some manual implementation to you.
|
@@ -83,7 +81,7 @@ end
|
|
83
81
|
|
84
82
|
5) Send ```X-USER-EMAIL``` and ```X-USER-TOKEN``` as headers of every request which requires authentication.
|
85
83
|
|
86
|
-
You can read more in a blog post dedicated to Tiddle -
|
84
|
+
You can read more in a blog post dedicated to Tiddle - https://blog.sundaycoding.com/blog/2015/04/04/token-authentication-with-tiddle/
|
87
85
|
|
88
86
|
## Note on Rails session
|
89
87
|
|
@@ -93,7 +91,7 @@ The safest solution in API-only application is not to rely on Rails session at a
|
|
93
91
|
config.middleware.delete ActionDispatch::Session::CookieStore
|
94
92
|
```
|
95
93
|
|
96
|
-
More:
|
94
|
+
More: https://blog.sundaycoding.com/blog/2015/04/04/token-authentication-with-tiddle/#rails-session
|
97
95
|
|
98
96
|
## Using field other than email
|
99
97
|
|
data/Rakefile
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require 'rspec/core/rake_task'
|
3
3
|
require 'rubocop/rake_task'
|
4
|
-
require 'appraisal'
|
5
4
|
|
6
5
|
RSpec::Core::RakeTask.new(spec: :rubocop)
|
7
6
|
RuboCop::RakeTask.new(:rubocop)
|
8
7
|
|
9
|
-
|
10
|
-
task default: :appraisal
|
11
|
-
else
|
12
|
-
task default: :spec
|
13
|
-
end
|
8
|
+
task default: :spec
|
data/docker-compose.yml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
version: "3.9"
|
2
|
+
services:
|
3
|
+
library:
|
4
|
+
build:
|
5
|
+
context: .
|
6
|
+
stdin_open: true
|
7
|
+
tty: true
|
8
|
+
volumes:
|
9
|
+
- ".:/library"
|
10
|
+
- vendor:/vendor
|
11
|
+
depends_on:
|
12
|
+
- redis
|
13
|
+
environment:
|
14
|
+
- REDIS_URL=redis://redis:6379/1
|
15
|
+
- BUNDLE_GEMFILE=gemfiles/rails7.0.gemfile
|
16
|
+
redis:
|
17
|
+
image: "redis:6-alpine"
|
18
|
+
command: redis-server
|
19
|
+
volumes:
|
20
|
+
- "redis:/data"
|
21
|
+
volumes:
|
22
|
+
vendor:
|
23
|
+
redis:
|
data/gemfiles/rails5.2.gemfile
CHANGED
data/gemfiles/rails6.0.gemfile
CHANGED
data/gemfiles/rails6.1.gemfile
CHANGED
data/lib/tiddle/model_name.rb
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
module Tiddle
|
2
2
|
class ModelName
|
3
3
|
def with_underscores(model)
|
4
|
-
model.
|
4
|
+
colon_to_underscore(model).underscore.upcase
|
5
5
|
end
|
6
6
|
|
7
7
|
def with_dashes(model)
|
8
8
|
with_underscores(model).dasherize
|
9
9
|
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def colon_to_underscore(model)
|
14
|
+
model.model_name.to_s.tr(':', '_')
|
15
|
+
end
|
10
16
|
end
|
11
17
|
end
|
data/lib/tiddle/strategy.rb
CHANGED
@@ -57,15 +57,30 @@ module Devise
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def touch_token(token)
|
60
|
-
|
60
|
+
return unless token.last_used_at < touch_token_interval(token).ago
|
61
|
+
|
62
|
+
token.update_attribute(:last_used_at, Time.current)
|
61
63
|
end
|
62
64
|
|
63
65
|
def unexpired?(token)
|
64
|
-
return true
|
65
|
-
return true if token.expires_in.blank? || token.expires_in.zero?
|
66
|
+
return true if expiration_disabled?(token)
|
66
67
|
|
67
68
|
Time.current <= token.last_used_at + token.expires_in
|
68
69
|
end
|
70
|
+
|
71
|
+
def touch_token_interval(token)
|
72
|
+
return 1.hour if expiration_disabled?(token) || token.expires_in >= 24.hours
|
73
|
+
|
74
|
+
return 5.minutes if token.expires_in >= 1.hour
|
75
|
+
|
76
|
+
1.minute
|
77
|
+
end
|
78
|
+
|
79
|
+
def expiration_disabled?(token)
|
80
|
+
!token.respond_to?(:expires_in) ||
|
81
|
+
token.expires_in.blank? ||
|
82
|
+
token.expires_in.zero?
|
83
|
+
end
|
69
84
|
end
|
70
85
|
end
|
71
86
|
end
|
data/lib/tiddle/version.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
devise_for :users
|
3
3
|
devise_for :admin_users
|
4
|
+
devise_for :namespaced_user, class_name: 'Namespace::NamespacedUser'
|
4
5
|
resources :secrets, only: [:index], defaults: { format: 'json' }
|
5
6
|
resources :long_secrets, only: [:index], defaults: { format: 'json' }
|
7
|
+
resources :namespaced_users, only: [:index], defaults: { format: 'json' }
|
6
8
|
end
|
@@ -59,6 +59,27 @@ class CreateTables < ActiveRecord::Migration[4.2]
|
|
59
59
|
|
60
60
|
t.timestamps null: false
|
61
61
|
end
|
62
|
+
|
63
|
+
create_table(:namespaced_users) do |t|
|
64
|
+
## Database authenticatable
|
65
|
+
t.string :email, null: false, default: ""
|
66
|
+
t.string :encrypted_password, null: false, default: ""
|
67
|
+
|
68
|
+
## Recoverable
|
69
|
+
t.string :reset_password_token
|
70
|
+
t.datetime :reset_password_sent_at
|
71
|
+
|
72
|
+
## Trackable
|
73
|
+
t.integer :sign_in_count, default: 0, null: false
|
74
|
+
t.datetime :current_sign_in_at
|
75
|
+
t.datetime :last_sign_in_at
|
76
|
+
t.string :current_sign_in_ip
|
77
|
+
t.string :last_sign_in_ip
|
78
|
+
|
79
|
+
t.string :nick_name
|
80
|
+
|
81
|
+
t.timestamps null: false
|
82
|
+
end
|
62
83
|
end
|
63
84
|
# rubocop:enable Metrics/AbcSize
|
64
85
|
# rubocop:enable Metrics/MethodLength
|
@@ -1,6 +1,8 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
devise_for :users
|
3
3
|
devise_for :admin_users
|
4
|
+
devise_for :namespaced_user, class_name: 'Namespace::NamespacedUser'
|
4
5
|
resources :secrets, only: [:index], defaults: { format: 'json' }
|
5
6
|
resources :long_secrets, only: [:index], defaults: { format: 'json' }
|
7
|
+
resources :namespaced_users, only: [:index], defaults: { format: 'json' }
|
6
8
|
end
|
data/spec/strategy_spec.rb
CHANGED
@@ -130,6 +130,27 @@ describe "Authentication using Tiddle strategy", type: :request do
|
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
133
|
+
context "when the model name is composed of a namespace" do
|
134
|
+
before do
|
135
|
+
@user = Namespace::NamespacedUser.create!(
|
136
|
+
email: "test@example.com",
|
137
|
+
password: "12345678"
|
138
|
+
)
|
139
|
+
@token = Tiddle.create_and_return_token(@user, FakeRequest.new)
|
140
|
+
end
|
141
|
+
|
142
|
+
it "allows to access endpoints which require authentication" do
|
143
|
+
get(
|
144
|
+
namespaced_users_path,
|
145
|
+
headers: {
|
146
|
+
"X-NAMESPACE--NAMESPACED-USER-EMAIL" => "test@example.com",
|
147
|
+
"X-NAMESPACE--NAMESPACED-USER-TOKEN" => @token
|
148
|
+
}
|
149
|
+
)
|
150
|
+
expect(response.status).to eq 200
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
133
154
|
describe "using field other than email" do
|
134
155
|
before do
|
135
156
|
Devise.setup do |config|
|
@@ -196,5 +217,89 @@ describe "Authentication using Tiddle strategy", type: :request do
|
|
196
217
|
expect(response.status).to eq 401
|
197
218
|
end
|
198
219
|
end
|
220
|
+
|
221
|
+
context "with value lower than 24 hours" do
|
222
|
+
before do
|
223
|
+
@token = Tiddle.create_and_return_token(@user, FakeRequest.new, expires_in: 1.hour)
|
224
|
+
end
|
225
|
+
|
226
|
+
context "and token was last used a minute ago" do
|
227
|
+
before do
|
228
|
+
@user.authentication_tokens.last.update_attribute(:last_used_at, 1.minute.ago)
|
229
|
+
end
|
230
|
+
|
231
|
+
it "does not update last_used_at field" do
|
232
|
+
expect do
|
233
|
+
get(
|
234
|
+
secrets_path,
|
235
|
+
headers: {
|
236
|
+
"X-USER-EMAIL" => "test@example.com",
|
237
|
+
"X-USER-TOKEN" => @token
|
238
|
+
}
|
239
|
+
)
|
240
|
+
end.not_to(change { @user.authentication_tokens.last.reload.last_used_at })
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
context "and token was last used 5 minutes ago" do
|
245
|
+
before do
|
246
|
+
@user.authentication_tokens.last.update_attribute(:last_used_at, 5.minute.ago)
|
247
|
+
end
|
248
|
+
|
249
|
+
it "updates last_used_at field" do
|
250
|
+
expect do
|
251
|
+
get(
|
252
|
+
secrets_path,
|
253
|
+
headers: {
|
254
|
+
"X-USER-EMAIL" => "test@example.com",
|
255
|
+
"X-USER-TOKEN" => @token
|
256
|
+
}
|
257
|
+
)
|
258
|
+
end.to(change { @user.authentication_tokens.last.reload.last_used_at })
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
context "with value lower than 1 hour" do
|
264
|
+
before do
|
265
|
+
@token = Tiddle.create_and_return_token(@user, FakeRequest.new, expires_in: 30.minutes)
|
266
|
+
end
|
267
|
+
|
268
|
+
context "and token was last used less than a minute ago" do
|
269
|
+
before do
|
270
|
+
@user.authentication_tokens.last.update_attribute(:last_used_at, 30.seconds.ago)
|
271
|
+
end
|
272
|
+
|
273
|
+
it "does not update last_used_at field" do
|
274
|
+
expect do
|
275
|
+
get(
|
276
|
+
secrets_path,
|
277
|
+
headers: {
|
278
|
+
"X-USER-EMAIL" => "test@example.com",
|
279
|
+
"X-USER-TOKEN" => @token
|
280
|
+
}
|
281
|
+
)
|
282
|
+
end.not_to(change { @user.authentication_tokens.last.reload.last_used_at })
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
286
|
+
context "and token was last used a minute ago" do
|
287
|
+
before do
|
288
|
+
@user.authentication_tokens.last.update_attribute(:last_used_at, 1.minute.ago)
|
289
|
+
end
|
290
|
+
|
291
|
+
it "updates last_used_at field" do
|
292
|
+
expect do
|
293
|
+
get(
|
294
|
+
secrets_path,
|
295
|
+
headers: {
|
296
|
+
"X-USER-EMAIL" => "test@example.com",
|
297
|
+
"X-USER-TOKEN" => @token
|
298
|
+
}
|
299
|
+
)
|
300
|
+
end.to(change { @user.authentication_tokens.last.reload.last_used_at })
|
301
|
+
end
|
302
|
+
end
|
303
|
+
end
|
199
304
|
end
|
200
305
|
end
|
data/tiddle.gemspec
CHANGED
@@ -16,13 +16,12 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
17
|
spec.require_paths = ["lib"]
|
18
18
|
|
19
|
-
spec.required_ruby_version = '>= 2.
|
19
|
+
spec.required_ruby_version = '>= 2.7.0'
|
20
20
|
|
21
21
|
spec.add_dependency "devise", ">= 4.0.0.rc1", "< 5"
|
22
22
|
spec.add_dependency "activerecord", ">= 5.2.0"
|
23
23
|
spec.add_development_dependency "rake"
|
24
24
|
spec.add_development_dependency "rspec-rails"
|
25
|
-
spec.add_development_dependency "appraisal"
|
26
25
|
spec.add_development_dependency "simplecov"
|
27
26
|
spec.add_development_dependency "rubocop"
|
28
27
|
spec.add_development_dependency "database_cleaner-active_record"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiddle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Niedzielski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: devise
|
@@ -72,20 +72,6 @@ dependencies:
|
|
72
72
|
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: appraisal
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - ">="
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '0'
|
82
|
-
type: :development
|
83
|
-
prerelease: false
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - ">="
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '0'
|
89
75
|
- !ruby/object:Gem::Dependency
|
90
76
|
name: simplecov
|
91
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -153,17 +139,19 @@ files:
|
|
153
139
|
- ".gitignore"
|
154
140
|
- ".rspec"
|
155
141
|
- ".rubocop.yml"
|
156
|
-
- Appraisals
|
157
142
|
- CHANGELOG.md
|
158
143
|
- CONTRIBUTING.md
|
159
|
-
-
|
144
|
+
- Dockerfile
|
160
145
|
- LICENSE.txt
|
146
|
+
- Makefile
|
161
147
|
- README.md
|
162
148
|
- Rakefile
|
163
149
|
- config/locales/en.yml
|
150
|
+
- docker-compose.yml
|
164
151
|
- gemfiles/rails5.2.gemfile
|
165
152
|
- gemfiles/rails6.0.gemfile
|
166
153
|
- gemfiles/rails6.1.gemfile
|
154
|
+
- gemfiles/rails7.0.gemfile
|
167
155
|
- lib/tiddle.rb
|
168
156
|
- lib/tiddle/model.rb
|
169
157
|
- lib/tiddle/model_name.rb
|
@@ -173,9 +161,11 @@ files:
|
|
173
161
|
- lib/tiddle/version.rb
|
174
162
|
- spec/rails_app_active_record/app/controllers/application_controller.rb
|
175
163
|
- spec/rails_app_active_record/app/controllers/long_secrets_controller.rb
|
164
|
+
- spec/rails_app_active_record/app/controllers/namespaced_users_controller.rb
|
176
165
|
- spec/rails_app_active_record/app/controllers/secrets_controller.rb
|
177
166
|
- spec/rails_app_active_record/app/models/admin_user.rb
|
178
167
|
- spec/rails_app_active_record/app/models/authentication_token.rb
|
168
|
+
- spec/rails_app_active_record/app/models/namespace/namespaced_user.rb
|
179
169
|
- spec/rails_app_active_record/app/models/user.rb
|
180
170
|
- spec/rails_app_active_record/config/application.rb
|
181
171
|
- spec/rails_app_active_record/config/boot.rb
|
@@ -185,9 +175,11 @@ files:
|
|
185
175
|
- spec/rails_app_active_record/db/migrate/20150217000000_create_tables.rb
|
186
176
|
- spec/rails_app_mongoid/app/controllers/application_controller.rb
|
187
177
|
- spec/rails_app_mongoid/app/controllers/long_secrets_controller.rb
|
178
|
+
- spec/rails_app_mongoid/app/controllers/namespaced_users_controller.rb
|
188
179
|
- spec/rails_app_mongoid/app/controllers/secrets_controller.rb
|
189
180
|
- spec/rails_app_mongoid/app/models/admin_user.rb
|
190
181
|
- spec/rails_app_mongoid/app/models/authentication_token.rb
|
182
|
+
- spec/rails_app_mongoid/app/models/namespace/namespaced_user.rb
|
191
183
|
- spec/rails_app_mongoid/app/models/user.rb
|
192
184
|
- spec/rails_app_mongoid/config/application.rb
|
193
185
|
- spec/rails_app_mongoid/config/boot.rb
|
@@ -213,23 +205,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
213
205
|
requirements:
|
214
206
|
- - ">="
|
215
207
|
- !ruby/object:Gem::Version
|
216
|
-
version: 2.
|
208
|
+
version: 2.7.0
|
217
209
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
218
210
|
requirements:
|
219
211
|
- - ">="
|
220
212
|
- !ruby/object:Gem::Version
|
221
213
|
version: '0'
|
222
214
|
requirements: []
|
223
|
-
rubygems_version: 3.1.
|
215
|
+
rubygems_version: 3.1.6
|
224
216
|
signing_key:
|
225
217
|
specification_version: 4
|
226
218
|
summary: Token authentication for Devise which supports multiple tokens per model
|
227
219
|
test_files:
|
228
220
|
- spec/rails_app_active_record/app/controllers/application_controller.rb
|
229
221
|
- spec/rails_app_active_record/app/controllers/long_secrets_controller.rb
|
222
|
+
- spec/rails_app_active_record/app/controllers/namespaced_users_controller.rb
|
230
223
|
- spec/rails_app_active_record/app/controllers/secrets_controller.rb
|
231
224
|
- spec/rails_app_active_record/app/models/admin_user.rb
|
232
225
|
- spec/rails_app_active_record/app/models/authentication_token.rb
|
226
|
+
- spec/rails_app_active_record/app/models/namespace/namespaced_user.rb
|
233
227
|
- spec/rails_app_active_record/app/models/user.rb
|
234
228
|
- spec/rails_app_active_record/config/application.rb
|
235
229
|
- spec/rails_app_active_record/config/boot.rb
|
@@ -239,9 +233,11 @@ test_files:
|
|
239
233
|
- spec/rails_app_active_record/db/migrate/20150217000000_create_tables.rb
|
240
234
|
- spec/rails_app_mongoid/app/controllers/application_controller.rb
|
241
235
|
- spec/rails_app_mongoid/app/controllers/long_secrets_controller.rb
|
236
|
+
- spec/rails_app_mongoid/app/controllers/namespaced_users_controller.rb
|
242
237
|
- spec/rails_app_mongoid/app/controllers/secrets_controller.rb
|
243
238
|
- spec/rails_app_mongoid/app/models/admin_user.rb
|
244
239
|
- spec/rails_app_mongoid/app/models/authentication_token.rb
|
240
|
+
- spec/rails_app_mongoid/app/models/namespace/namespaced_user.rb
|
245
241
|
- spec/rails_app_mongoid/app/models/user.rb
|
246
242
|
- spec/rails_app_mongoid/config/application.rb
|
247
243
|
- spec/rails_app_mongoid/config/boot.rb
|
data/Appraisals
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
appraise "rails5.2" do
|
2
|
-
gem "rails", "~> 5.2.1"
|
3
|
-
gem "mongoid", "~> 6"
|
4
|
-
gem "sqlite3", "~> 1.3.13"
|
5
|
-
end
|
6
|
-
|
7
|
-
appraise "rails6.0" do
|
8
|
-
gem "rails", "~> 6.0.0"
|
9
|
-
gem "mongoid", "~> 7"
|
10
|
-
gem "sqlite3"
|
11
|
-
end
|
12
|
-
|
13
|
-
appraise "rails6.1" do
|
14
|
-
gem "rails", "~> 6.1.0"
|
15
|
-
gem "mongoid"
|
16
|
-
gem "sqlite3"
|
17
|
-
end
|
data/Gemfile
DELETED