sorcery 0.16.5 → 0.18.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/CHANGELOG.md +10 -1
- data/README.md +8 -5
- data/lib/generators/sorcery/helpers.rb +1 -1
- data/lib/generators/sorcery/install_generator.rb +9 -11
- data/lib/generators/sorcery/templates/initializer.rb +24 -10
- data/lib/sorcery/adapters/active_record_adapter.rb +12 -14
- data/lib/sorcery/adapters/mongoid_adapter.rb +6 -8
- data/lib/sorcery/controller/config.rb +27 -29
- data/lib/sorcery/controller/submodules/activity_logging.rb +4 -7
- data/lib/sorcery/controller/submodules/brute_force_protection.rb +4 -1
- data/lib/sorcery/controller/submodules/external.rb +11 -11
- data/lib/sorcery/controller/submodules/http_basic_auth.rb +7 -2
- data/lib/sorcery/controller/submodules/remember_me.rb +2 -1
- data/lib/sorcery/controller/submodules/session_timeout.rb +2 -2
- data/lib/sorcery/controller.rb +36 -18
- data/lib/sorcery/crypto_providers/aes256.rb +4 -2
- data/lib/sorcery/crypto_providers/bcrypt.rb +2 -1
- data/lib/sorcery/crypto_providers/md5.rb +1 -0
- data/lib/sorcery/crypto_providers/sha1.rb +1 -0
- data/lib/sorcery/crypto_providers/sha256.rb +1 -0
- data/lib/sorcery/crypto_providers/sha512.rb +1 -0
- data/lib/sorcery/engine.rb +6 -4
- data/lib/sorcery/errors.rb +10 -0
- data/lib/sorcery/model/config.rb +20 -31
- data/lib/sorcery/model/submodules/activity_logging.rb +8 -6
- data/lib/sorcery/model/submodules/brute_force_protection.rb +16 -14
- data/lib/sorcery/model/submodules/external.rb +8 -10
- data/lib/sorcery/model/submodules/magic_login.rb +8 -4
- data/lib/sorcery/model/submodules/remember_me.rb +3 -3
- data/lib/sorcery/model/submodules/reset_password.rb +21 -13
- data/lib/sorcery/model/submodules/user_activation.rb +19 -17
- data/lib/sorcery/model/temporary_token.rb +5 -5
- data/lib/sorcery/model.rb +21 -25
- data/lib/sorcery/providers/base.rb +1 -1
- data/lib/sorcery/providers/facebook.rb +2 -2
- data/lib/sorcery/providers/github.rb +3 -3
- data/lib/sorcery/providers/heroku.rb +1 -2
- data/lib/sorcery/providers/jira.rb +3 -2
- data/lib/sorcery/providers/line.rb +2 -4
- data/lib/sorcery/providers/microsoft.rb +1 -1
- data/lib/sorcery/providers/twitter.rb +2 -2
- data/lib/sorcery/providers/vk.rb +4 -4
- data/lib/sorcery/providers/xing.rb +3 -2
- data/lib/sorcery/test_helpers/internal/rails.rb +5 -22
- data/lib/sorcery/test_helpers/internal.rb +4 -6
- data/lib/sorcery/test_helpers/rails/integration.rb +1 -1
- data/lib/sorcery/test_helpers/rails/request.rb +1 -1
- data/lib/sorcery/version.rb +1 -1
- data/lib/sorcery.rb +6 -1
- metadata +19 -149
- data/.devcontainer/Dockerfile +0 -10
- data/.devcontainer/devcontainer.json +0 -29
- data/.devcontainer/postcreate.sh +0 -4
- data/.document +0 -5
- data/.github/FUNDING.yml +0 -1
- data/.github/ISSUE_TEMPLATE.md +0 -24
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -7
- data/.github/workflows/ruby.yml +0 -70
- data/.gitignore +0 -60
- data/.rspec +0 -1
- data/.rubocop.yml +0 -55
- data/.rubocop_todo.yml +0 -163
- data/CODE_OF_CONDUCT.md +0 -14
- data/Gemfile +0 -8
- data/MAINTAINING.md +0 -64
- data/Rakefile +0 -8
- data/SECURITY.md +0 -19
- data/gemfiles/rails_52.gemfile +0 -7
- data/gemfiles/rails_60.gemfile +0 -7
- data/gemfiles/rails_61.gemfile +0 -7
- data/gemfiles/rails_70.gemfile +0 -7
- data/sorcery.gemspec +0 -49
- data/spec/active_record/user_activation_spec.rb +0 -17
- data/spec/active_record/user_activity_logging_spec.rb +0 -15
- data/spec/active_record/user_brute_force_protection_spec.rb +0 -15
- data/spec/active_record/user_magic_login_spec.rb +0 -15
- data/spec/active_record/user_oauth_spec.rb +0 -15
- data/spec/active_record/user_remember_me_spec.rb +0 -15
- data/spec/active_record/user_reset_password_spec.rb +0 -15
- data/spec/active_record/user_spec.rb +0 -27
- data/spec/controllers/controller_activity_logging_spec.rb +0 -113
- data/spec/controllers/controller_brute_force_protection_spec.rb +0 -41
- data/spec/controllers/controller_http_basic_auth_spec.rb +0 -67
- data/spec/controllers/controller_oauth2_spec.rb +0 -568
- data/spec/controllers/controller_oauth_spec.rb +0 -266
- data/spec/controllers/controller_remember_me_spec.rb +0 -130
- data/spec/controllers/controller_session_timeout_spec.rb +0 -166
- data/spec/controllers/controller_spec.rb +0 -194
- data/spec/orm/active_record.rb +0 -21
- data/spec/providers/example_provider_spec.rb +0 -17
- data/spec/providers/example_spec.rb +0 -17
- data/spec/providers/examples_spec.rb +0 -17
- data/spec/providers/vk_spec.rb +0 -42
- data/spec/rails_app/app/active_record/authentication.rb +0 -3
- data/spec/rails_app/app/active_record/user.rb +0 -5
- data/spec/rails_app/app/active_record/user_provider.rb +0 -3
- data/spec/rails_app/app/assets/config/manifest.js +0 -1
- data/spec/rails_app/app/controllers/application_controller.rb +0 -2
- data/spec/rails_app/app/controllers/sorcery_controller.rb +0 -489
- data/spec/rails_app/app/helpers/application_helper.rb +0 -2
- data/spec/rails_app/app/mailers/sorcery_mailer.rb +0 -38
- data/spec/rails_app/app/views/application/index.html.erb +0 -17
- data/spec/rails_app/app/views/layouts/application.html.erb +0 -14
- data/spec/rails_app/app/views/sorcery_mailer/activation_email.html.erb +0 -17
- data/spec/rails_app/app/views/sorcery_mailer/activation_email.text.erb +0 -9
- data/spec/rails_app/app/views/sorcery_mailer/activation_needed_email.html.erb +0 -17
- data/spec/rails_app/app/views/sorcery_mailer/activation_success_email.html.erb +0 -17
- data/spec/rails_app/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
- data/spec/rails_app/app/views/sorcery_mailer/magic_login_email.html.erb +0 -13
- data/spec/rails_app/app/views/sorcery_mailer/magic_login_email.text.erb +0 -6
- data/spec/rails_app/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
- data/spec/rails_app/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
- data/spec/rails_app/app/views/sorcery_mailer/send_unlock_token_email.text.erb +0 -1
- data/spec/rails_app/config/application.rb +0 -61
- data/spec/rails_app/config/boot.rb +0 -4
- data/spec/rails_app/config/database.yml +0 -22
- data/spec/rails_app/config/environment.rb +0 -5
- data/spec/rails_app/config/environments/test.rb +0 -37
- data/spec/rails_app/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/rails_app/config/initializers/compatible_legacy_migration.rb +0 -11
- data/spec/rails_app/config/initializers/inflections.rb +0 -10
- data/spec/rails_app/config/initializers/mime_types.rb +0 -5
- data/spec/rails_app/config/initializers/session_store.rb +0 -12
- data/spec/rails_app/config/locales/en.yml +0 -5
- data/spec/rails_app/config/routes.rb +0 -81
- data/spec/rails_app/config/secrets.yml +0 -4
- data/spec/rails_app/config.ru +0 -4
- data/spec/rails_app/db/migrate/activation/20101224223622_add_activation_to_users.rb +0 -17
- data/spec/rails_app/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -19
- data/spec/rails_app/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -13
- data/spec/rails_app/db/migrate/core/20101224223620_create_users.rb +0 -16
- data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +0 -22
- data/spec/rails_app/db/migrate/invalidate_active_sessions/20180221093235_add_invalidate_active_sessions_before_to_users.rb +0 -9
- data/spec/rails_app/db/migrate/magic_login/20170924151831_add_magic_login_to_users.rb +0 -17
- data/spec/rails_app/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -15
- data/spec/rails_app/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -15
- data/spec/rails_app/db/schema.rb +0 -21
- data/spec/rails_app/db/seeds.rb +0 -7
- data/spec/shared_examples/user_activation_shared_examples.rb +0 -361
- data/spec/shared_examples/user_activity_logging_shared_examples.rb +0 -106
- data/spec/shared_examples/user_brute_force_protection_shared_examples.rb +0 -151
- data/spec/shared_examples/user_magic_login_shared_examples.rb +0 -150
- data/spec/shared_examples/user_oauth_shared_examples.rb +0 -33
- data/spec/shared_examples/user_remember_me_shared_examples.rb +0 -129
- data/spec/shared_examples/user_reset_password_shared_examples.rb +0 -370
- data/spec/shared_examples/user_shared_examples.rb +0 -678
- data/spec/sorcery_crypto_providers_spec.rb +0 -245
- data/spec/sorcery_temporary_token_spec.rb +0 -27
- data/spec/spec.opts +0 -2
- data/spec/spec_helper.rb +0 -50
- data/spec/support/migration_helper.rb +0 -29
- data/spec/support/providers/example.rb +0 -11
- data/spec/support/providers/example_provider.rb +0 -11
- data/spec/support/providers/examples.rb +0 -11
|
@@ -48,9 +48,9 @@ module Sorcery
|
|
|
48
48
|
# Fix: replace default oauth2 options, specially to prevent the Faraday gem which
|
|
49
49
|
# concatenates with "/", removing the Facebook api version
|
|
50
50
|
options = {
|
|
51
|
-
site:
|
|
51
|
+
site: File.join(@site, api_version.to_s),
|
|
52
52
|
authorize_url: File.join(@auth_site, api_version.to_s, auth_path),
|
|
53
|
-
token_url:
|
|
53
|
+
token_url: token_url
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
@scope = access_permissions.present? ? access_permissions.join(',') : scope
|
|
@@ -26,7 +26,7 @@ module Sorcery
|
|
|
26
26
|
|
|
27
27
|
auth_hash(access_token).tap do |h|
|
|
28
28
|
h[:user_info] = JSON.parse(response.body).tap do |uih|
|
|
29
|
-
uih['email'] = primary_email(access_token) if scope
|
|
29
|
+
uih['email'] = primary_email(access_token) if scope&.include?('user')
|
|
30
30
|
end
|
|
31
31
|
h[:uid] = h[:user_info]['id']
|
|
32
32
|
end
|
|
@@ -48,10 +48,10 @@ module Sorcery
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def primary_email(access_token)
|
|
51
|
-
response = access_token.get(user_info_path
|
|
51
|
+
response = access_token.get("#{user_info_path}/emails")
|
|
52
52
|
emails = JSON.parse(response.body)
|
|
53
53
|
primary = emails.find { |i| i['primary'] }
|
|
54
|
-
primary && primary['email'] || emails.first && emails.first['email']
|
|
54
|
+
(primary && primary['email']) || (emails.first && emails.first['email'])
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
end
|
|
@@ -8,8 +8,7 @@ module Sorcery
|
|
|
8
8
|
# config.heroku.scope = "read"
|
|
9
9
|
# config.heroku.user_info_mapping = {:email => "email", :name => "email" }
|
|
10
10
|
|
|
11
|
-
# NOTE:
|
|
12
|
-
# The full path must be set for OAuth Callback URL when configuring the API Client Information on Heroku.
|
|
11
|
+
# NOTE: The full path must be set for OAuth Callback URL when configuring the API Client Information on Heroku.
|
|
13
12
|
|
|
14
13
|
class Heroku < Base
|
|
15
14
|
include Protocols::Oauth2
|
|
@@ -13,6 +13,7 @@ module Sorcery
|
|
|
13
13
|
:user_info_path, :site, :signature_method, :private_key_file, :callback_url
|
|
14
14
|
|
|
15
15
|
def initialize
|
|
16
|
+
super
|
|
16
17
|
@configuration = {
|
|
17
18
|
authorize_path: '/authorize',
|
|
18
19
|
request_token_path: '/request-token',
|
|
@@ -59,8 +60,8 @@ module Sorcery
|
|
|
59
60
|
# tries to login the user from access token
|
|
60
61
|
def process_callback(params, session)
|
|
61
62
|
args = {
|
|
62
|
-
oauth_verifier:
|
|
63
|
-
request_token:
|
|
63
|
+
oauth_verifier: params[:oauth_verifier],
|
|
64
|
+
request_token: session[:request_token],
|
|
64
65
|
request_token_secret: session[:request_token_secret]
|
|
65
66
|
}
|
|
66
67
|
|
|
@@ -38,11 +38,9 @@ module Sorcery
|
|
|
38
38
|
|
|
39
39
|
# overrides oauth2#authorize_url to add bot_prompt query.
|
|
40
40
|
def authorize_url(options = {})
|
|
41
|
-
options.
|
|
42
|
-
connection_opts: { params: { bot_prompt: bot_prompt } }
|
|
43
|
-
}) if bot_prompt.present?
|
|
41
|
+
options[:connection_opts] = { params: { bot_prompt: bot_prompt } } if bot_prompt.present?
|
|
44
42
|
|
|
45
|
-
super
|
|
43
|
+
super
|
|
46
44
|
end
|
|
47
45
|
|
|
48
46
|
# tries to login the user from access token
|
|
@@ -44,8 +44,8 @@ module Sorcery
|
|
|
44
44
|
# tries to login the user from access token
|
|
45
45
|
def process_callback(params, session)
|
|
46
46
|
args = {
|
|
47
|
-
oauth_verifier:
|
|
48
|
-
request_token:
|
|
47
|
+
oauth_verifier: params[:oauth_verifier],
|
|
48
|
+
request_token: session[:request_token],
|
|
49
49
|
request_token_secret: session[:request_token_secret]
|
|
50
50
|
}
|
|
51
51
|
|
data/lib/sorcery/providers/vk.rb
CHANGED
|
@@ -26,10 +26,10 @@ module Sorcery
|
|
|
26
26
|
|
|
27
27
|
params = {
|
|
28
28
|
access_token: access_token.token,
|
|
29
|
-
uids:
|
|
30
|
-
fields:
|
|
31
|
-
scope:
|
|
32
|
-
v:
|
|
29
|
+
uids: access_token.params['user_id'],
|
|
30
|
+
fields: user_info_mapping.values.join(','),
|
|
31
|
+
scope: scope,
|
|
32
|
+
v: api_version.to_s
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
response = access_token.get(user_info_url, params: params)
|
|
@@ -13,6 +13,7 @@ module Sorcery
|
|
|
13
13
|
:user_info_path
|
|
14
14
|
|
|
15
15
|
def initialize
|
|
16
|
+
super
|
|
16
17
|
@configuration = {
|
|
17
18
|
site: 'https://api.xing.com/v1',
|
|
18
19
|
authorize_path: '/authorize',
|
|
@@ -48,8 +49,8 @@ module Sorcery
|
|
|
48
49
|
# tries to login the user from access token
|
|
49
50
|
def process_callback(params, session)
|
|
50
51
|
args = {
|
|
51
|
-
oauth_verifier:
|
|
52
|
-
request_token:
|
|
52
|
+
oauth_verifier: params[:oauth_verifier],
|
|
53
|
+
request_token: session[:request_token],
|
|
53
54
|
request_token_secret: session[:request_token_secret]
|
|
54
55
|
}
|
|
55
56
|
|
|
@@ -19,20 +19,16 @@ module Sorcery
|
|
|
19
19
|
|
|
20
20
|
# remove all plugin before_actions so they won't fail other tests.
|
|
21
21
|
# I don't like this way, but I didn't find another.
|
|
22
|
-
|
|
23
|
-
chain =
|
|
24
|
-
SorceryController._process_action_callbacks.send :chain
|
|
25
|
-
else
|
|
26
|
-
SorceryController._process_action_callbacks
|
|
27
|
-
end
|
|
28
|
-
|
|
22
|
+
callbacks = SorceryController._process_action_callbacks
|
|
23
|
+
chain = callbacks.send :chain
|
|
29
24
|
chain.delete_if { |c| SUBMODULES_AUTO_ADDED_CONTROLLER_FILTERS.include?(c.filter) }
|
|
25
|
+
callbacks.instance_variable_set(:@all_callbacks, nil)
|
|
26
|
+
callbacks.instance_variable_set(:@single_callbacks, {})
|
|
30
27
|
|
|
31
28
|
# configure
|
|
32
29
|
::Sorcery::Controller::Config.submodules = submodules
|
|
33
|
-
::Sorcery::Controller::Config.user_class = nil
|
|
34
|
-
ActionController::Base.send(:include, ::Sorcery::Controller)
|
|
35
30
|
::Sorcery::Controller::Config.user_class = 'User'
|
|
31
|
+
ActionController::Base.include(::Sorcery::Controller)
|
|
36
32
|
|
|
37
33
|
::Sorcery::Controller::Config.user_config do |user|
|
|
38
34
|
options.each do |property, value|
|
|
@@ -40,11 +36,6 @@ module Sorcery
|
|
|
40
36
|
end
|
|
41
37
|
end
|
|
42
38
|
User.authenticates_with_sorcery!
|
|
43
|
-
return unless defined?(DataMapper) && User.ancestors.include?(DataMapper::Resource)
|
|
44
|
-
|
|
45
|
-
DataMapper.auto_migrate!
|
|
46
|
-
User.finalize
|
|
47
|
-
Authentication.finalize
|
|
48
39
|
end
|
|
49
40
|
|
|
50
41
|
def sorcery_controller_property_set(property, value)
|
|
@@ -62,14 +53,6 @@ module Sorcery
|
|
|
62
53
|
def clear_user_without_logout
|
|
63
54
|
subject.instance_variable_set(:@current_user, nil)
|
|
64
55
|
end
|
|
65
|
-
|
|
66
|
-
if ::Rails.version < '5.0.0'
|
|
67
|
-
%w[get post put].each do |method|
|
|
68
|
-
define_method(method) do |action, options = {}|
|
|
69
|
-
super action, options[:params] || {}, options[:session]
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
56
|
end
|
|
74
57
|
end
|
|
75
58
|
end
|
|
@@ -17,14 +17,14 @@ module Sorcery
|
|
|
17
17
|
# a patch to fix a bug in testing that happens when you 'destroy' a session twice.
|
|
18
18
|
# After the first destroy, the session is an ordinary hash, and then when destroy
|
|
19
19
|
# is called again there's an exception.
|
|
20
|
-
class ::Hash
|
|
20
|
+
class ::Hash
|
|
21
21
|
def destroy
|
|
22
22
|
clear
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def build_new_user(attributes_hash = nil)
|
|
27
|
-
user_attributes_hash = attributes_hash || { username: 'gizmo', email: 'bla@
|
|
27
|
+
user_attributes_hash = attributes_hash || { username: 'gizmo', email: 'bla@example.com', password: 'secret' }
|
|
28
28
|
@user = User.new(user_attributes_hash)
|
|
29
29
|
end
|
|
30
30
|
|
|
@@ -58,8 +58,8 @@ module Sorcery
|
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
-
def update_model(&
|
|
62
|
-
User.class_exec(&
|
|
61
|
+
def update_model(&)
|
|
62
|
+
User.class_exec(&)
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
private
|
|
@@ -70,8 +70,6 @@ module Sorcery
|
|
|
70
70
|
User && Object.send(:remove_const, 'User')
|
|
71
71
|
load 'user.rb'
|
|
72
72
|
|
|
73
|
-
return unless User.respond_to?(:reset_column_information)
|
|
74
|
-
|
|
75
73
|
User.reset_column_information
|
|
76
74
|
end
|
|
77
75
|
end
|
|
@@ -10,7 +10,7 @@ module Sorcery
|
|
|
10
10
|
|
|
11
11
|
username_attr = user.sorcery_config.username_attribute_names.first
|
|
12
12
|
username = user.send(username_attr)
|
|
13
|
-
page.driver.send(http_method, route,
|
|
13
|
+
page.driver.send(http_method, route, "#{username_attr}": username, password: 'secret')
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
# Accepts route and HTTP method arguments
|
|
@@ -4,7 +4,7 @@ module Sorcery
|
|
|
4
4
|
module Request
|
|
5
5
|
# Accepts arguments for user to login, the password, route to use and HTTP method
|
|
6
6
|
# Defaults - @user, 'secret', 'user_sessions_url' and http_method: POST
|
|
7
|
-
def login_user(user = nil, password = 'secret', route = nil, http_method = :post)
|
|
7
|
+
def login_user(user = nil, password = 'secret', route = nil, http_method = :post) # rubocop:disable Metrics/ParameterLists
|
|
8
8
|
user ||= @user
|
|
9
9
|
route ||= user_sessions_url
|
|
10
10
|
|
data/lib/sorcery/version.rb
CHANGED
data/lib/sorcery.rb
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
require 'sorcery/version'
|
|
2
|
+
require 'sorcery/errors'
|
|
2
3
|
|
|
3
4
|
module Sorcery
|
|
5
|
+
def self.deprecator
|
|
6
|
+
@deprecator ||= ActiveSupport::Deprecation.new(nil, 'Sorcery')
|
|
7
|
+
end
|
|
8
|
+
|
|
4
9
|
require 'sorcery/model'
|
|
5
10
|
|
|
6
11
|
module Adapters
|
|
@@ -82,7 +87,7 @@ module Sorcery
|
|
|
82
87
|
|
|
83
88
|
if defined?(Mongoid::Document)
|
|
84
89
|
require 'sorcery/adapters/mongoid_adapter'
|
|
85
|
-
Mongoid::Document::ClassMethods.
|
|
90
|
+
Mongoid::Document::ClassMethods.include Sorcery::Model
|
|
86
91
|
|
|
87
92
|
Mongoid::Document.send :define_method, :sorcery_adapter do
|
|
88
93
|
@sorcery_adapter ||= Sorcery::Adapters::MongoidAdapter.new(self)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sorcery
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.18.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Noam Ben Ari
|
|
@@ -9,10 +9,9 @@ authors:
|
|
|
9
9
|
- Grzegorz Witek
|
|
10
10
|
- Chase Gilliam
|
|
11
11
|
- Josh Buker
|
|
12
|
-
autorequire:
|
|
13
12
|
bindir: bin
|
|
14
13
|
cert_chain: []
|
|
15
|
-
date:
|
|
14
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
16
15
|
dependencies:
|
|
17
16
|
- !ruby/object:Gem::Dependency
|
|
18
17
|
name: bcrypt
|
|
@@ -57,35 +56,35 @@ dependencies:
|
|
|
57
56
|
- !ruby/object:Gem::Version
|
|
58
57
|
version: '2.0'
|
|
59
58
|
- !ruby/object:Gem::Dependency
|
|
60
|
-
name:
|
|
59
|
+
name: railties
|
|
61
60
|
requirement: !ruby/object:Gem::Requirement
|
|
62
61
|
requirements:
|
|
63
|
-
- - "
|
|
62
|
+
- - ">="
|
|
64
63
|
- !ruby/object:Gem::Version
|
|
65
|
-
version:
|
|
66
|
-
type: :
|
|
64
|
+
version: '7.1'
|
|
65
|
+
type: :runtime
|
|
67
66
|
prerelease: false
|
|
68
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
69
68
|
requirements:
|
|
70
|
-
- - "
|
|
69
|
+
- - ">="
|
|
71
70
|
- !ruby/object:Gem::Version
|
|
72
|
-
version:
|
|
71
|
+
version: '7.1'
|
|
73
72
|
- !ruby/object:Gem::Dependency
|
|
74
|
-
name:
|
|
73
|
+
name: byebug
|
|
75
74
|
requirement: !ruby/object:Gem::Requirement
|
|
76
75
|
requirements:
|
|
77
76
|
- - "~>"
|
|
78
77
|
- !ruby/object:Gem::Version
|
|
79
|
-
version:
|
|
78
|
+
version: 11.1.3
|
|
80
79
|
type: :development
|
|
81
80
|
prerelease: false
|
|
82
81
|
version_requirements: !ruby/object:Gem::Requirement
|
|
83
82
|
requirements:
|
|
84
83
|
- - "~>"
|
|
85
84
|
- !ruby/object:Gem::Version
|
|
86
|
-
version:
|
|
85
|
+
version: 11.1.3
|
|
87
86
|
- !ruby/object:Gem::Dependency
|
|
88
|
-
name:
|
|
87
|
+
name: rspec-rails
|
|
89
88
|
requirement: !ruby/object:Gem::Requirement
|
|
90
89
|
requirements:
|
|
91
90
|
- - ">="
|
|
@@ -98,34 +97,6 @@ dependencies:
|
|
|
98
97
|
- - ">="
|
|
99
98
|
- !ruby/object:Gem::Version
|
|
100
99
|
version: '0'
|
|
101
|
-
- !ruby/object:Gem::Dependency
|
|
102
|
-
name: simplecov
|
|
103
|
-
requirement: !ruby/object:Gem::Requirement
|
|
104
|
-
requirements:
|
|
105
|
-
- - ">="
|
|
106
|
-
- !ruby/object:Gem::Version
|
|
107
|
-
version: 0.3.8
|
|
108
|
-
type: :development
|
|
109
|
-
prerelease: false
|
|
110
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
111
|
-
requirements:
|
|
112
|
-
- - ">="
|
|
113
|
-
- !ruby/object:Gem::Version
|
|
114
|
-
version: 0.3.8
|
|
115
|
-
- !ruby/object:Gem::Dependency
|
|
116
|
-
name: test-unit
|
|
117
|
-
requirement: !ruby/object:Gem::Requirement
|
|
118
|
-
requirements:
|
|
119
|
-
- - "~>"
|
|
120
|
-
- !ruby/object:Gem::Version
|
|
121
|
-
version: 3.2.0
|
|
122
|
-
type: :development
|
|
123
|
-
prerelease: false
|
|
124
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
125
|
-
requirements:
|
|
126
|
-
- - "~>"
|
|
127
|
-
- !ruby/object:Gem::Version
|
|
128
|
-
version: 3.2.0
|
|
129
100
|
- !ruby/object:Gem::Dependency
|
|
130
101
|
name: timecop
|
|
131
102
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -182,30 +153,9 @@ executables: []
|
|
|
182
153
|
extensions: []
|
|
183
154
|
extra_rdoc_files: []
|
|
184
155
|
files:
|
|
185
|
-
- ".devcontainer/Dockerfile"
|
|
186
|
-
- ".devcontainer/devcontainer.json"
|
|
187
|
-
- ".devcontainer/postcreate.sh"
|
|
188
|
-
- ".document"
|
|
189
|
-
- ".github/FUNDING.yml"
|
|
190
|
-
- ".github/ISSUE_TEMPLATE.md"
|
|
191
|
-
- ".github/PULL_REQUEST_TEMPLATE.md"
|
|
192
|
-
- ".github/workflows/ruby.yml"
|
|
193
|
-
- ".gitignore"
|
|
194
|
-
- ".rspec"
|
|
195
|
-
- ".rubocop.yml"
|
|
196
|
-
- ".rubocop_todo.yml"
|
|
197
156
|
- CHANGELOG.md
|
|
198
|
-
- CODE_OF_CONDUCT.md
|
|
199
|
-
- Gemfile
|
|
200
157
|
- LICENSE.md
|
|
201
|
-
- MAINTAINING.md
|
|
202
158
|
- README.md
|
|
203
|
-
- Rakefile
|
|
204
|
-
- SECURITY.md
|
|
205
|
-
- gemfiles/rails_52.gemfile
|
|
206
|
-
- gemfiles/rails_60.gemfile
|
|
207
|
-
- gemfiles/rails_61.gemfile
|
|
208
|
-
- gemfiles/rails_70.gemfile
|
|
209
159
|
- lib/generators/sorcery/USAGE
|
|
210
160
|
- lib/generators/sorcery/helpers.rb
|
|
211
161
|
- lib/generators/sorcery/install_generator.rb
|
|
@@ -238,6 +188,7 @@ files:
|
|
|
238
188
|
- lib/sorcery/crypto_providers/sha256.rb
|
|
239
189
|
- lib/sorcery/crypto_providers/sha512.rb
|
|
240
190
|
- lib/sorcery/engine.rb
|
|
191
|
+
- lib/sorcery/errors.rb
|
|
241
192
|
- lib/sorcery/model.rb
|
|
242
193
|
- lib/sorcery/model/config.rb
|
|
243
194
|
- lib/sorcery/model/submodules/activity_logging.rb
|
|
@@ -278,93 +229,13 @@ files:
|
|
|
278
229
|
- lib/sorcery/test_helpers/rails/integration.rb
|
|
279
230
|
- lib/sorcery/test_helpers/rails/request.rb
|
|
280
231
|
- lib/sorcery/version.rb
|
|
281
|
-
- sorcery.gemspec
|
|
282
|
-
- spec/active_record/user_activation_spec.rb
|
|
283
|
-
- spec/active_record/user_activity_logging_spec.rb
|
|
284
|
-
- spec/active_record/user_brute_force_protection_spec.rb
|
|
285
|
-
- spec/active_record/user_magic_login_spec.rb
|
|
286
|
-
- spec/active_record/user_oauth_spec.rb
|
|
287
|
-
- spec/active_record/user_remember_me_spec.rb
|
|
288
|
-
- spec/active_record/user_reset_password_spec.rb
|
|
289
|
-
- spec/active_record/user_spec.rb
|
|
290
|
-
- spec/controllers/controller_activity_logging_spec.rb
|
|
291
|
-
- spec/controllers/controller_brute_force_protection_spec.rb
|
|
292
|
-
- spec/controllers/controller_http_basic_auth_spec.rb
|
|
293
|
-
- spec/controllers/controller_oauth2_spec.rb
|
|
294
|
-
- spec/controllers/controller_oauth_spec.rb
|
|
295
|
-
- spec/controllers/controller_remember_me_spec.rb
|
|
296
|
-
- spec/controllers/controller_session_timeout_spec.rb
|
|
297
|
-
- spec/controllers/controller_spec.rb
|
|
298
|
-
- spec/orm/active_record.rb
|
|
299
|
-
- spec/providers/example_provider_spec.rb
|
|
300
|
-
- spec/providers/example_spec.rb
|
|
301
|
-
- spec/providers/examples_spec.rb
|
|
302
|
-
- spec/providers/vk_spec.rb
|
|
303
|
-
- spec/rails_app/app/active_record/authentication.rb
|
|
304
|
-
- spec/rails_app/app/active_record/user.rb
|
|
305
|
-
- spec/rails_app/app/active_record/user_provider.rb
|
|
306
|
-
- spec/rails_app/app/assets/config/manifest.js
|
|
307
|
-
- spec/rails_app/app/controllers/application_controller.rb
|
|
308
|
-
- spec/rails_app/app/controllers/sorcery_controller.rb
|
|
309
|
-
- spec/rails_app/app/helpers/application_helper.rb
|
|
310
|
-
- spec/rails_app/app/mailers/sorcery_mailer.rb
|
|
311
|
-
- spec/rails_app/app/views/application/index.html.erb
|
|
312
|
-
- spec/rails_app/app/views/layouts/application.html.erb
|
|
313
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_email.html.erb
|
|
314
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_email.text.erb
|
|
315
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_needed_email.html.erb
|
|
316
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_success_email.html.erb
|
|
317
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_success_email.text.erb
|
|
318
|
-
- spec/rails_app/app/views/sorcery_mailer/magic_login_email.html.erb
|
|
319
|
-
- spec/rails_app/app/views/sorcery_mailer/magic_login_email.text.erb
|
|
320
|
-
- spec/rails_app/app/views/sorcery_mailer/reset_password_email.html.erb
|
|
321
|
-
- spec/rails_app/app/views/sorcery_mailer/reset_password_email.text.erb
|
|
322
|
-
- spec/rails_app/app/views/sorcery_mailer/send_unlock_token_email.text.erb
|
|
323
|
-
- spec/rails_app/config.ru
|
|
324
|
-
- spec/rails_app/config/application.rb
|
|
325
|
-
- spec/rails_app/config/boot.rb
|
|
326
|
-
- spec/rails_app/config/database.yml
|
|
327
|
-
- spec/rails_app/config/environment.rb
|
|
328
|
-
- spec/rails_app/config/environments/test.rb
|
|
329
|
-
- spec/rails_app/config/initializers/backtrace_silencers.rb
|
|
330
|
-
- spec/rails_app/config/initializers/compatible_legacy_migration.rb
|
|
331
|
-
- spec/rails_app/config/initializers/inflections.rb
|
|
332
|
-
- spec/rails_app/config/initializers/mime_types.rb
|
|
333
|
-
- spec/rails_app/config/initializers/session_store.rb
|
|
334
|
-
- spec/rails_app/config/locales/en.yml
|
|
335
|
-
- spec/rails_app/config/routes.rb
|
|
336
|
-
- spec/rails_app/config/secrets.yml
|
|
337
|
-
- spec/rails_app/db/migrate/activation/20101224223622_add_activation_to_users.rb
|
|
338
|
-
- spec/rails_app/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb
|
|
339
|
-
- spec/rails_app/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb
|
|
340
|
-
- spec/rails_app/db/migrate/core/20101224223620_create_users.rb
|
|
341
|
-
- spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb
|
|
342
|
-
- spec/rails_app/db/migrate/invalidate_active_sessions/20180221093235_add_invalidate_active_sessions_before_to_users.rb
|
|
343
|
-
- spec/rails_app/db/migrate/magic_login/20170924151831_add_magic_login_to_users.rb
|
|
344
|
-
- spec/rails_app/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb
|
|
345
|
-
- spec/rails_app/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb
|
|
346
|
-
- spec/rails_app/db/schema.rb
|
|
347
|
-
- spec/rails_app/db/seeds.rb
|
|
348
|
-
- spec/shared_examples/user_activation_shared_examples.rb
|
|
349
|
-
- spec/shared_examples/user_activity_logging_shared_examples.rb
|
|
350
|
-
- spec/shared_examples/user_brute_force_protection_shared_examples.rb
|
|
351
|
-
- spec/shared_examples/user_magic_login_shared_examples.rb
|
|
352
|
-
- spec/shared_examples/user_oauth_shared_examples.rb
|
|
353
|
-
- spec/shared_examples/user_remember_me_shared_examples.rb
|
|
354
|
-
- spec/shared_examples/user_reset_password_shared_examples.rb
|
|
355
|
-
- spec/shared_examples/user_shared_examples.rb
|
|
356
|
-
- spec/sorcery_crypto_providers_spec.rb
|
|
357
|
-
- spec/sorcery_temporary_token_spec.rb
|
|
358
|
-
- spec/spec.opts
|
|
359
|
-
- spec/spec_helper.rb
|
|
360
|
-
- spec/support/migration_helper.rb
|
|
361
|
-
- spec/support/providers/example.rb
|
|
362
|
-
- spec/support/providers/example_provider.rb
|
|
363
|
-
- spec/support/providers/examples.rb
|
|
364
232
|
homepage: https://github.com/Sorcery/sorcery
|
|
365
233
|
licenses:
|
|
366
234
|
- MIT
|
|
367
|
-
metadata:
|
|
235
|
+
metadata:
|
|
236
|
+
bug_tracker_uri: https://github.com/Sorcery/sorcery/issues
|
|
237
|
+
changelog_uri: https://github.com/Sorcery/sorcery/releases
|
|
238
|
+
rubygems_mfa_required: 'true'
|
|
368
239
|
post_install_message: |-
|
|
369
240
|
As of version 1.0 oauth/oauth2 won't be automatically bundled so you may need to add those dependencies to your Gemfile.
|
|
370
241
|
You may need oauth2 if you use external providers such as any of these: https://github.com/Sorcery/sorcery/tree/master/lib/sorcery/providers
|
|
@@ -375,15 +246,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
375
246
|
requirements:
|
|
376
247
|
- - ">="
|
|
377
248
|
- !ruby/object:Gem::Version
|
|
378
|
-
version: 2.
|
|
249
|
+
version: 3.2.0
|
|
379
250
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
380
251
|
requirements:
|
|
381
252
|
- - ">="
|
|
382
253
|
- !ruby/object:Gem::Version
|
|
383
254
|
version: '0'
|
|
384
255
|
requirements: []
|
|
385
|
-
rubygems_version: 3.
|
|
386
|
-
signing_key:
|
|
256
|
+
rubygems_version: 3.6.9
|
|
387
257
|
specification_version: 4
|
|
388
258
|
summary: Magical authentication for Rails applications
|
|
389
259
|
test_files: []
|
data/.devcontainer/Dockerfile
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Which Ruby version to use. You may need to use a more restrictive version,
|
|
2
|
-
# e.g. `3.0`
|
|
3
|
-
ARG VARIANT=3.0
|
|
4
|
-
|
|
5
|
-
# Pull Microsoft's ruby devcontainer base image
|
|
6
|
-
FROM mcr.microsoft.com/devcontainers/ruby:${VARIANT}
|
|
7
|
-
|
|
8
|
-
# Ensure we're running the latest bundler, as what ships with the Ruby image may
|
|
9
|
-
# not be current, and bundler will auto-downgrade to match the Gemfile.lock
|
|
10
|
-
RUN gem install bundler
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Ruby",
|
|
3
|
-
"build": {
|
|
4
|
-
"dockerfile": "Dockerfile"
|
|
5
|
-
},
|
|
6
|
-
|
|
7
|
-
// Configure tool-specific properties.
|
|
8
|
-
"customizations": {
|
|
9
|
-
// Configure properties specific to VS Code.
|
|
10
|
-
"vscode": {
|
|
11
|
-
// Add the IDs of extensions you want installed when the container is created.
|
|
12
|
-
"extensions": [
|
|
13
|
-
"rebornix.Ruby"
|
|
14
|
-
]
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
|
|
18
|
-
// Set the environment variables
|
|
19
|
-
// "runArgs": ["--env-file",".env"],
|
|
20
|
-
|
|
21
|
-
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
|
22
|
-
// "forwardPorts": [],
|
|
23
|
-
|
|
24
|
-
// Use 'postCreateCommand' to run commands after the container is created.
|
|
25
|
-
"postCreateCommand": "bash .devcontainer/postcreate.sh",
|
|
26
|
-
|
|
27
|
-
// Set `remoteUser` to `root` to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
|
28
|
-
"remoteUser": "vscode"
|
|
29
|
-
}
|
data/.devcontainer/postcreate.sh
DELETED
data/.document
DELETED
data/.github/FUNDING.yml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
github: athix
|
data/.github/ISSUE_TEMPLATE.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
<!-- Please complete all sections. -->
|
|
2
|
-
|
|
3
|
-
### Configuration
|
|
4
|
-
|
|
5
|
-
- Sorcery Version: ``
|
|
6
|
-
- Ruby Version: ``
|
|
7
|
-
- Framework: ``
|
|
8
|
-
- Platform: ``
|
|
9
|
-
|
|
10
|
-
### Expected Behavior
|
|
11
|
-
|
|
12
|
-
<!-- Tell us what should happen. -->
|
|
13
|
-
|
|
14
|
-
### Actual Behavior
|
|
15
|
-
|
|
16
|
-
<!-- Tell us what happens instead. -->
|
|
17
|
-
|
|
18
|
-
### Steps to Reproduce
|
|
19
|
-
|
|
20
|
-
<!-- Please list all steps to reproduce the issue. -->
|
|
21
|
-
|
|
22
|
-
1.
|
|
23
|
-
2.
|
|
24
|
-
3.
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Please ensure your pull request includes the following:
|
|
2
|
-
|
|
3
|
-
- [ ] Description of changes
|
|
4
|
-
- [ ] Update to CHANGELOG.md with short description and link to pull request
|
|
5
|
-
- [ ] Changes have related RSpec tests that ensure functionality does not break
|
|
6
|
-
|
|
7
|
-
<!-- For the changelog, please add your entry to the HEAD section. Do not create a new release header. -->
|