clearance 2.7.2 → 2.9.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/dependabot.yml +15 -0
- data/.github/workflows/dynamic-security.yml +19 -0
- data/.github/workflows/tests.yml +7 -7
- data/.gitignore +4 -1
- data/Appraisals +9 -5
- data/CHANGELOG.md +16 -1
- data/Gemfile +0 -1
- data/Gemfile.lock +130 -97
- data/README.md +2 -1
- data/Rakefile +4 -7
- data/SECURITY.md +12 -8
- data/app/views/sessions/_form.html.erb +3 -1
- data/bin/setup +2 -2
- data/clearance.gemspec +9 -9
- data/config/routes.rb +5 -3
- data/gemfiles/rails_7.0.gemfile +4 -1
- data/gemfiles/rails_7.1.gemfile +0 -1
- data/gemfiles/{rails_6.1.gemfile → rails_7.2.gemfile} +1 -3
- data/lib/clearance/back_door.rb +4 -2
- data/lib/clearance/configuration.rb +14 -0
- data/lib/clearance/version.rb +1 -1
- data/spec/clearance/session_spec.rb +2 -2
- data/spec/configuration_spec.rb +15 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/config/manifest.js +0 -0
- data/spec/dummy/config/application.rb +13 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/test.rb +31 -0
- data/spec/dummy/config.ru +6 -0
- data/{db → spec/dummy/db}/migrate/20110111224543_create_clearance_users.rb +3 -2
- data/spec/dummy/db/schema.rb +25 -0
- data/spec/requests/backdoor_spec.rb +11 -0
- data/spec/requests/csrf_rotation_spec.rb +1 -5
- data/spec/requests/token_expiration_spec.rb +3 -3
- data/spec/routing/clearance_routes_spec.rb +32 -0
- data/spec/spec_helper.rb +4 -11
- data/spec/support/generator_spec_helpers.rb +11 -0
- data/spec/support/html_escape_helper.rb +1 -1
- metadata +33 -18
- data/db/schema.rb +0 -28
- data/spec/dummy/application.rb +0 -30
- data/spec/support/cookies.rb +0 -74
- /data/spec/{factories.rb → factories/users.rb} +0 -0
data/lib/clearance/back_door.rb
CHANGED
@@ -48,11 +48,13 @@ module Clearance
|
|
48
48
|
|
49
49
|
# @api private
|
50
50
|
def sign_in_through_the_back_door(env)
|
51
|
-
params = Rack::Utils.parse_query(env[
|
51
|
+
params = Rack::Utils.parse_query(env[Rack::QUERY_STRING])
|
52
52
|
user_param = params.delete("as")
|
53
53
|
|
54
54
|
if user_param.present?
|
55
|
-
|
55
|
+
query_string = Rack::Utils.build_query(params)
|
56
|
+
env[Rack::QUERY_STRING] = query_string
|
57
|
+
env[Rack::RACK_REQUEST_QUERY_STRING] = query_string
|
56
58
|
user = find_user(user_param)
|
57
59
|
env[:clearance].sign_in(user)
|
58
60
|
end
|
@@ -7,6 +7,13 @@ module Clearance
|
|
7
7
|
# @return [Boolean]
|
8
8
|
attr_writer :allow_sign_up
|
9
9
|
|
10
|
+
# Controls whether the password reset routes are enabled
|
11
|
+
# Defaults to `true`. Set to False to disable password reset routes
|
12
|
+
# The setting is ignored if routes are disabled.
|
13
|
+
# @param [Boolean] value
|
14
|
+
# @return [Boolean]
|
15
|
+
attr_writer :allow_password_reset
|
16
|
+
|
10
17
|
# The domain to use for the clearance remember token cookie.
|
11
18
|
# Defaults to `nil`, which causes the cookie domain to default to the
|
12
19
|
# domain of the request. For more, see
|
@@ -145,6 +152,7 @@ module Clearance
|
|
145
152
|
|
146
153
|
def initialize
|
147
154
|
@allow_sign_up = true
|
155
|
+
@allow_password_reset = true
|
148
156
|
@allowed_backdoor_environments = ["test", "ci", "development"]
|
149
157
|
@cookie_domain = nil
|
150
158
|
@cookie_expiration = ->(cookies) { 1.year.from_now.utc }
|
@@ -195,6 +203,12 @@ module Clearance
|
|
195
203
|
@allow_sign_up
|
196
204
|
end
|
197
205
|
|
206
|
+
# Are the password reset routes enabled?
|
207
|
+
# @return [Boolean]
|
208
|
+
def allow_password_reset?
|
209
|
+
@allow_password_reset
|
210
|
+
end
|
211
|
+
|
198
212
|
# Specifies which controller actions are allowed for user resources.
|
199
213
|
# This will be `[:create]` is `allow_sign_up` is true (the default), and
|
200
214
|
# empty otherwise.
|
data/lib/clearance/version.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Clearance::Session do
|
4
|
-
before {
|
5
|
-
after {
|
4
|
+
before { freeze_time }
|
5
|
+
after { unfreeze_time }
|
6
6
|
|
7
7
|
let(:session) { Clearance::Session.new(env_without_remember_token) }
|
8
8
|
let(:user) { create(:user) }
|
data/spec/configuration_spec.rb
CHANGED
@@ -179,6 +179,21 @@ describe Clearance::Configuration do
|
|
179
179
|
end
|
180
180
|
end
|
181
181
|
|
182
|
+
describe "#allow_password_reset?" do
|
183
|
+
context "when allow_password_reset is configured to false" do
|
184
|
+
it "returns false" do
|
185
|
+
Clearance.configure { |config| config.allow_password_reset = false }
|
186
|
+
expect(Clearance.configuration.allow_password_reset?).to eq false
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
context "when allow_sign_up has not been configured" do
|
191
|
+
it "returns true" do
|
192
|
+
expect(Clearance.configuration.allow_password_reset?).to eq true
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
182
197
|
describe "#user_actions" do
|
183
198
|
context "when allow_sign_up is configured to false" do
|
184
199
|
it "returns empty array" do
|
data/spec/dummy/Rakefile
ADDED
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative "boot"
|
2
|
+
|
3
|
+
require "rails/all"
|
4
|
+
|
5
|
+
# Require the gems listed in Gemfile, including any gems
|
6
|
+
# you've limited to :test, :development, or :production.
|
7
|
+
Bundler.require(*Rails.groups)
|
8
|
+
|
9
|
+
module Dummy
|
10
|
+
class Application < Rails::Application
|
11
|
+
config.load_defaults Rails::VERSION::STRING.to_f
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "active_support/core_ext/integer/time"
|
2
|
+
|
3
|
+
Rails.application.configure do
|
4
|
+
config.enable_reloading = false
|
5
|
+
|
6
|
+
config.eager_load = ENV["CI"].present?
|
7
|
+
|
8
|
+
config.public_file_server.headers = { "Cache-Control" => "public, max-age=#{1.hour.to_i}" }
|
9
|
+
|
10
|
+
# Show full error reports and disable caching.
|
11
|
+
config.consider_all_requests_local = true
|
12
|
+
config.action_controller.perform_caching = false
|
13
|
+
config.cache_store = :null_store
|
14
|
+
|
15
|
+
config.action_dispatch.show_exceptions = :rescuable
|
16
|
+
|
17
|
+
config.action_controller.allow_forgery_protection = false
|
18
|
+
|
19
|
+
config.action_mailer.perform_caching = false
|
20
|
+
config.action_mailer.delivery_method = :test
|
21
|
+
|
22
|
+
config.action_mailer.default_url_options = { host: "www.example.com" }
|
23
|
+
|
24
|
+
config.active_support.deprecation = :stderr
|
25
|
+
config.active_support.disallowed_deprecation = :raise
|
26
|
+
config.active_support.disallowed_deprecation_warnings = []
|
27
|
+
|
28
|
+
config.factory_bot.definition_file_paths = [File.expand_path('../../../factories', __dir__)]
|
29
|
+
|
30
|
+
config.middleware.use Clearance::BackDoor
|
31
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class CreateClearanceUsers < ActiveRecord::Migration
|
1
|
+
class CreateClearanceUsers < ActiveRecord::Migration[Rails::VERSION::STRING.to_f]
|
2
2
|
def self.up
|
3
3
|
create_table :users do |t|
|
4
4
|
t.timestamps null: false
|
@@ -9,7 +9,8 @@ class CreateClearanceUsers < ActiveRecord::Migration
|
|
9
9
|
end
|
10
10
|
|
11
11
|
add_index :users, :email
|
12
|
-
add_index :users, :
|
12
|
+
add_index :users, :confirmation_token, unique: true
|
13
|
+
add_index :users, :remember_token, unique: true
|
13
14
|
end
|
14
15
|
|
15
16
|
def self.down
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# This file is auto-generated from the current state of the database. Instead
|
2
|
+
# of editing this file, please use the migrations feature of Active Record to
|
3
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
4
|
+
#
|
5
|
+
# This file is the source Rails uses to define your schema when running `bin/rails
|
6
|
+
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
7
|
+
# be faster and is potentially less error prone than running all of your
|
8
|
+
# migrations from scratch. Old migrations may fail to apply correctly if those
|
9
|
+
# migrations use external dependencies or application code.
|
10
|
+
#
|
11
|
+
# It's strongly recommended that you check this file into your version control system.
|
12
|
+
|
13
|
+
ActiveRecord::Schema.define(version: 2011_01_11_224543) do
|
14
|
+
create_table "users", force: :cascade do |t|
|
15
|
+
t.datetime "created_at", null: false
|
16
|
+
t.datetime "updated_at", null: false
|
17
|
+
t.string "email", null: false
|
18
|
+
t.string "encrypted_password", limit: 128, null: false
|
19
|
+
t.string "confirmation_token", limit: 128
|
20
|
+
t.string "remember_token", limit: 128, null: false
|
21
|
+
t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
|
22
|
+
t.index ["email"], name: "index_users_on_email"
|
23
|
+
t.index ["remember_token"], name: "index_users_on_remember_token", unique: true
|
24
|
+
end
|
25
|
+
end
|
@@ -16,7 +16,7 @@ describe "CSRF Rotation" do
|
|
16
16
|
original_token = csrf_token
|
17
17
|
|
18
18
|
post session_path, params: {
|
19
|
-
session:
|
19
|
+
authenticity_token: csrf_token, session: { email: user.email, password: "password" }
|
20
20
|
}
|
21
21
|
|
22
22
|
expect(csrf_token).not_to eq original_token
|
@@ -28,8 +28,4 @@ describe "CSRF Rotation" do
|
|
28
28
|
def csrf_token
|
29
29
|
session[:_csrf_token]
|
30
30
|
end
|
31
|
-
|
32
|
-
def session_params(user, password)
|
33
|
-
{ email: user.email, password: password, authenticity_token: csrf_token }
|
34
|
-
end
|
35
31
|
end
|
@@ -3,13 +3,13 @@ require "spec_helper"
|
|
3
3
|
describe "Token expiration" do
|
4
4
|
describe "after signing in" do
|
5
5
|
before do
|
6
|
-
|
6
|
+
freeze_time
|
7
7
|
create_user_and_sign_in
|
8
8
|
@initial_cookies = remember_token_cookies
|
9
9
|
end
|
10
10
|
|
11
11
|
after do
|
12
|
-
|
12
|
+
unfreeze_time
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should have a remember_token cookie with a future expiration" do
|
@@ -25,7 +25,7 @@ describe "Token expiration" do
|
|
25
25
|
create_user_and_sign_in
|
26
26
|
@initial_cookies = remember_token_cookies
|
27
27
|
|
28
|
-
|
28
|
+
travel_to(1.minute.from_now) do
|
29
29
|
get root_path
|
30
30
|
@followup_cookies = remember_token_cookies
|
31
31
|
end
|
@@ -62,4 +62,36 @@ describe 'routes for Clearance' do
|
|
62
62
|
expect(post: 'users').to be_routable
|
63
63
|
end
|
64
64
|
end
|
65
|
+
|
66
|
+
context 'password reset disabled' do
|
67
|
+
around do |example|
|
68
|
+
Clearance.configure { |config| config.allow_password_reset = false }
|
69
|
+
Rails.application.reload_routes!
|
70
|
+
example.run
|
71
|
+
Clearance.configuration = Clearance::Configuration.new
|
72
|
+
Rails.application.reload_routes!
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'does not route password edit' do
|
76
|
+
user = create(:user)
|
77
|
+
expect(get: "users/#{user.id}/password/edit").not_to be_routable
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'does not route to clearance/passwords#update' do
|
81
|
+
user = create(:user)
|
82
|
+
expect(patch: "/users/#{user.id}/password").not_to be_routable
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context 'reset enabled' do
|
87
|
+
it 'does route password edit' do
|
88
|
+
user = create(:user)
|
89
|
+
expect(get: "users/#{user.id}/password/edit").to be_routable
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'does route to clearance/passwords#update' do
|
93
|
+
user = create(:user)
|
94
|
+
expect(patch: "/users/#{user.id}/password").to be_routable
|
95
|
+
end
|
96
|
+
end
|
65
97
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,20 +1,13 @@
|
|
1
1
|
ENV["RAILS_ENV"] ||= "test"
|
2
|
+
require_relative "dummy/config/environment"
|
2
3
|
|
3
|
-
require "rails/all"
|
4
|
-
require "dummy/application"
|
5
|
-
|
6
|
-
require "clearance/rspec"
|
7
|
-
require "factory_bot_rails"
|
8
|
-
require "rails-controller-testing"
|
9
4
|
require "rspec/rails"
|
10
|
-
require "
|
11
|
-
require "timecop"
|
12
|
-
|
13
|
-
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
5
|
+
require "clearance/rspec"
|
14
6
|
|
15
|
-
|
7
|
+
Dir[File.expand_path("spec/support/**/*.rb")].each { |f| require f }
|
16
8
|
|
17
9
|
RSpec.configure do |config|
|
10
|
+
config.include ActiveSupport::Testing::TimeHelpers
|
18
11
|
config.include FactoryBot::Syntax::Methods
|
19
12
|
config.infer_spec_type_from_file_location!
|
20
13
|
config.order = :random
|
@@ -3,6 +3,16 @@ require "ammeter/rspec/generator/matchers.rb"
|
|
3
3
|
require "ammeter/init"
|
4
4
|
|
5
5
|
module GeneratorSpecHelpers
|
6
|
+
module FileMethods
|
7
|
+
def file(path)
|
8
|
+
Pathname.new(super)
|
9
|
+
end
|
10
|
+
|
11
|
+
def migration_file(path)
|
12
|
+
Pathname.new(super)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
6
16
|
TEMPLATE_PATH = File.expand_path("../../app_templates", __FILE__)
|
7
17
|
|
8
18
|
def provide_existing_routes_file
|
@@ -36,6 +46,7 @@ end
|
|
36
46
|
|
37
47
|
RSpec.configure do |config|
|
38
48
|
config.include GeneratorSpecHelpers
|
49
|
+
config.prepend GeneratorSpecHelpers::FileMethods
|
39
50
|
|
40
51
|
config.before(:example, :generator) do
|
41
52
|
destination File.expand_path("../../../tmp", __FILE__)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clearance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Croak
|
@@ -23,15 +23,19 @@ authors:
|
|
23
23
|
- Galen Frechette
|
24
24
|
- Josh Steiner
|
25
25
|
- Dorian Marié
|
26
|
+
- Sara Jackson
|
26
27
|
autorequire:
|
27
28
|
bindir: bin
|
28
29
|
cert_chain: []
|
29
|
-
date: 2024-
|
30
|
+
date: 2024-10-29 00:00:00.000000000 Z
|
30
31
|
dependencies:
|
31
32
|
- !ruby/object:Gem::Dependency
|
32
33
|
name: bcrypt
|
33
34
|
requirement: !ruby/object:Gem::Requirement
|
34
35
|
requirements:
|
36
|
+
- - "~>"
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '3.1'
|
35
39
|
- - ">="
|
36
40
|
- !ruby/object:Gem::Version
|
37
41
|
version: 3.1.1
|
@@ -39,6 +43,9 @@ dependencies:
|
|
39
43
|
prerelease: false
|
40
44
|
version_requirements: !ruby/object:Gem::Requirement
|
41
45
|
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '3.1'
|
42
49
|
- - ">="
|
43
50
|
- !ruby/object:Gem::Version
|
44
51
|
version: 3.1.1
|
@@ -80,56 +87,56 @@ dependencies:
|
|
80
87
|
name: railties
|
81
88
|
requirement: !ruby/object:Gem::Requirement
|
82
89
|
requirements:
|
83
|
-
- - "
|
90
|
+
- - "~>"
|
84
91
|
- !ruby/object:Gem::Version
|
85
92
|
version: '5.0'
|
86
93
|
type: :runtime
|
87
94
|
prerelease: false
|
88
95
|
version_requirements: !ruby/object:Gem::Requirement
|
89
96
|
requirements:
|
90
|
-
- - "
|
97
|
+
- - "~>"
|
91
98
|
- !ruby/object:Gem::Version
|
92
99
|
version: '5.0'
|
93
100
|
- !ruby/object:Gem::Dependency
|
94
101
|
name: activemodel
|
95
102
|
requirement: !ruby/object:Gem::Requirement
|
96
103
|
requirements:
|
97
|
-
- - "
|
104
|
+
- - "~>"
|
98
105
|
- !ruby/object:Gem::Version
|
99
106
|
version: '5.0'
|
100
107
|
type: :runtime
|
101
108
|
prerelease: false
|
102
109
|
version_requirements: !ruby/object:Gem::Requirement
|
103
110
|
requirements:
|
104
|
-
- - "
|
111
|
+
- - "~>"
|
105
112
|
- !ruby/object:Gem::Version
|
106
113
|
version: '5.0'
|
107
114
|
- !ruby/object:Gem::Dependency
|
108
115
|
name: activerecord
|
109
116
|
requirement: !ruby/object:Gem::Requirement
|
110
117
|
requirements:
|
111
|
-
- - "
|
118
|
+
- - "~>"
|
112
119
|
- !ruby/object:Gem::Version
|
113
120
|
version: '5.0'
|
114
121
|
type: :runtime
|
115
122
|
prerelease: false
|
116
123
|
version_requirements: !ruby/object:Gem::Requirement
|
117
124
|
requirements:
|
118
|
-
- - "
|
125
|
+
- - "~>"
|
119
126
|
- !ruby/object:Gem::Version
|
120
127
|
version: '5.0'
|
121
128
|
- !ruby/object:Gem::Dependency
|
122
129
|
name: actionmailer
|
123
130
|
requirement: !ruby/object:Gem::Requirement
|
124
131
|
requirements:
|
125
|
-
- - "
|
132
|
+
- - "~>"
|
126
133
|
- !ruby/object:Gem::Version
|
127
134
|
version: '5.0'
|
128
135
|
type: :runtime
|
129
136
|
prerelease: false
|
130
137
|
version_requirements: !ruby/object:Gem::Requirement
|
131
138
|
requirements:
|
132
|
-
- - "
|
139
|
+
- - "~>"
|
133
140
|
- !ruby/object:Gem::Version
|
134
141
|
version: '5.0'
|
135
142
|
description: |2
|
@@ -146,7 +153,9 @@ extra_rdoc_files:
|
|
146
153
|
- README.md
|
147
154
|
files:
|
148
155
|
- ".erb-lint.yml"
|
156
|
+
- ".github/dependabot.yml"
|
149
157
|
- ".github/workflows/dynamic-readme.yml"
|
158
|
+
- ".github/workflows/dynamic-security.yml"
|
150
159
|
- ".github/workflows/tests.yml"
|
151
160
|
- ".gitignore"
|
152
161
|
- ".yardopts"
|
@@ -182,11 +191,9 @@ files:
|
|
182
191
|
- clearance.gemspec
|
183
192
|
- config/locales/clearance.en.yml
|
184
193
|
- config/routes.rb
|
185
|
-
- db/migrate/20110111224543_create_clearance_users.rb
|
186
|
-
- db/schema.rb
|
187
|
-
- gemfiles/rails_6.1.gemfile
|
188
194
|
- gemfiles/rails_7.0.gemfile
|
189
195
|
- gemfiles/rails_7.1.gemfile
|
196
|
+
- gemfiles/rails_7.2.gemfile
|
190
197
|
- lib/clearance.rb
|
191
198
|
- lib/clearance/authentication.rb
|
192
199
|
- lib/clearance/authorization.rb
|
@@ -262,14 +269,22 @@ files:
|
|
262
269
|
- spec/controllers/permissions_controller_spec.rb
|
263
270
|
- spec/controllers/sessions_controller_spec.rb
|
264
271
|
- spec/controllers/users_controller_spec.rb
|
272
|
+
- spec/dummy/Rakefile
|
273
|
+
- spec/dummy/app/assets/config/manifest.js
|
265
274
|
- spec/dummy/app/controllers/application_controller.rb
|
266
275
|
- spec/dummy/app/models/user.rb
|
267
276
|
- spec/dummy/app/models/user_with_optional_password.rb
|
268
|
-
- spec/dummy/
|
277
|
+
- spec/dummy/config.ru
|
278
|
+
- spec/dummy/config/application.rb
|
279
|
+
- spec/dummy/config/boot.rb
|
269
280
|
- spec/dummy/config/database.yml
|
281
|
+
- spec/dummy/config/environment.rb
|
282
|
+
- spec/dummy/config/environments/test.rb
|
270
283
|
- spec/dummy/config/routes.rb
|
271
284
|
- spec/dummy/db/.keep
|
272
|
-
- spec/
|
285
|
+
- spec/dummy/db/migrate/20110111224543_create_clearance_users.rb
|
286
|
+
- spec/dummy/db/schema.rb
|
287
|
+
- spec/factories/users.rb
|
273
288
|
- spec/generators/clearance/install/install_generator_spec.rb
|
274
289
|
- spec/generators/clearance/routes/routes_generator_spec.rb
|
275
290
|
- spec/generators/clearance/specs/specs_generator_spec.rb
|
@@ -281,6 +296,7 @@ files:
|
|
281
296
|
- spec/password_strategies/bcrypt_spec.rb
|
282
297
|
- spec/password_strategies/password_strategies_spec.rb
|
283
298
|
- spec/requests/authentication_cookie_spec.rb
|
299
|
+
- spec/requests/backdoor_spec.rb
|
284
300
|
- spec/requests/cookie_options_spec.rb
|
285
301
|
- spec/requests/csrf_rotation_spec.rb
|
286
302
|
- spec/requests/password_maintenance_spec.rb
|
@@ -288,7 +304,6 @@ files:
|
|
288
304
|
- spec/routing/clearance_routes_spec.rb
|
289
305
|
- spec/spec_helper.rb
|
290
306
|
- spec/support/clearance.rb
|
291
|
-
- spec/support/cookies.rb
|
292
307
|
- spec/support/fake_model_with_password_strategy.rb
|
293
308
|
- spec/support/fake_model_without_password_strategy.rb
|
294
309
|
- spec/support/generator_spec_helpers.rb
|
@@ -308,14 +323,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
308
323
|
requirements:
|
309
324
|
- - ">="
|
310
325
|
- !ruby/object:Gem::Version
|
311
|
-
version:
|
326
|
+
version: 3.1.6
|
312
327
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
313
328
|
requirements:
|
314
329
|
- - ">="
|
315
330
|
- !ruby/object:Gem::Version
|
316
331
|
version: '0'
|
317
332
|
requirements: []
|
318
|
-
rubygems_version: 3.
|
333
|
+
rubygems_version: 3.5.16
|
319
334
|
signing_key:
|
320
335
|
specification_version: 4
|
321
336
|
summary: Rails authentication & authorization with email & password.
|
data/db/schema.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
# This file is auto-generated from the current state of the database. Instead
|
3
|
-
# of editing this file, please use the migrations feature of Active Record to
|
4
|
-
# incrementally modify your database, and then regenerate this schema definition.
|
5
|
-
#
|
6
|
-
# Note that this schema.rb definition is the authoritative source for your
|
7
|
-
# database schema. If you need to create the application database on another
|
8
|
-
# system, you should be using db:schema:load, not running all the migrations
|
9
|
-
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
|
-
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
|
-
#
|
12
|
-
# It's strongly recommended that you check this file into your version control system.
|
13
|
-
|
14
|
-
ActiveRecord::Schema.define(version: 20110111224543) do
|
15
|
-
|
16
|
-
create_table "users", force: true do |t|
|
17
|
-
t.datetime "created_at", null: false
|
18
|
-
t.datetime "updated_at", null: false
|
19
|
-
t.string "email", null: false
|
20
|
-
t.string "encrypted_password", limit: 128, null: false
|
21
|
-
t.string "confirmation_token", limit: 128
|
22
|
-
t.string "remember_token", limit: 128, null: false
|
23
|
-
end
|
24
|
-
|
25
|
-
add_index "users", ["email"], name: "index_users_on_email"
|
26
|
-
add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
|
27
|
-
add_index "users", ["remember_token"], name: "index_users_on_remember_token", unique: true
|
28
|
-
end
|
data/spec/dummy/application.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require "rails/all"
|
2
|
-
|
3
|
-
require "clearance"
|
4
|
-
|
5
|
-
module Dummy
|
6
|
-
APP_ROOT = File.expand_path("..", __FILE__).freeze
|
7
|
-
|
8
|
-
class Application < Rails::Application
|
9
|
-
config.action_controller.perform_caching = false
|
10
|
-
config.action_mailer.default_url_options = { host: "dummy.example.com" }
|
11
|
-
config.action_mailer.delivery_method = :test
|
12
|
-
config.active_support.deprecation = :stderr
|
13
|
-
config.eager_load = false
|
14
|
-
|
15
|
-
config.paths["app/controllers"] << "#{APP_ROOT}/app/controllers"
|
16
|
-
config.paths["app/models"] << "#{APP_ROOT}/app/models"
|
17
|
-
config.paths["app/views"] << "#{APP_ROOT}/app/views"
|
18
|
-
config.paths["config/database"] = "#{APP_ROOT}/config/database.yml"
|
19
|
-
config.paths["log"] = "tmp/log/development.log"
|
20
|
-
config.paths.add "config/routes.rb", with: "#{APP_ROOT}/config/routes.rb"
|
21
|
-
|
22
|
-
def require_environment!
|
23
|
-
initialize!
|
24
|
-
end
|
25
|
-
|
26
|
-
def initialize!(&block)
|
27
|
-
super unless @initialized
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|