sorcery 0.17.0 → 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 +4 -1
- data/README.md +8 -5
- data/lib/generators/sorcery/helpers.rb +1 -1
- data/lib/generators/sorcery/install_generator.rb +9 -18
- 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 +21 -150
- 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 -54
- 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_61.gemfile +0 -7
- data/gemfiles/rails_70.gemfile +0 -7
- data/gemfiles/rails_71.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 -168
- data/spec/controllers/controller_spec.rb +0 -200
- 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,75 +56,47 @@ dependencies:
|
|
|
57
56
|
- !ruby/object:Gem::Version
|
|
58
57
|
version: '2.0'
|
|
59
58
|
- !ruby/object:Gem::Dependency
|
|
60
|
-
name:
|
|
61
|
-
requirement: !ruby/object:Gem::Requirement
|
|
62
|
-
requirements:
|
|
63
|
-
- - "~>"
|
|
64
|
-
- !ruby/object:Gem::Version
|
|
65
|
-
version: 10.0.0
|
|
66
|
-
type: :development
|
|
67
|
-
prerelease: false
|
|
68
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
69
|
-
requirements:
|
|
70
|
-
- - "~>"
|
|
71
|
-
- !ruby/object:Gem::Version
|
|
72
|
-
version: 10.0.0
|
|
73
|
-
- !ruby/object:Gem::Dependency
|
|
74
|
-
name: rspec-rails
|
|
59
|
+
name: railties
|
|
75
60
|
requirement: !ruby/object:Gem::Requirement
|
|
76
61
|
requirements:
|
|
77
62
|
- - ">="
|
|
78
63
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: '
|
|
80
|
-
type: :
|
|
64
|
+
version: '7.1'
|
|
65
|
+
type: :runtime
|
|
81
66
|
prerelease: false
|
|
82
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
83
68
|
requirements:
|
|
84
69
|
- - ">="
|
|
85
70
|
- !ruby/object:Gem::Version
|
|
86
|
-
version: '
|
|
71
|
+
version: '7.1'
|
|
87
72
|
- !ruby/object:Gem::Dependency
|
|
88
|
-
name:
|
|
73
|
+
name: byebug
|
|
89
74
|
requirement: !ruby/object:Gem::Requirement
|
|
90
75
|
requirements:
|
|
91
|
-
- - "
|
|
76
|
+
- - "~>"
|
|
92
77
|
- !ruby/object:Gem::Version
|
|
93
|
-
version:
|
|
78
|
+
version: 11.1.3
|
|
94
79
|
type: :development
|
|
95
80
|
prerelease: false
|
|
96
81
|
version_requirements: !ruby/object:Gem::Requirement
|
|
97
82
|
requirements:
|
|
98
|
-
- - "
|
|
83
|
+
- - "~>"
|
|
99
84
|
- !ruby/object:Gem::Version
|
|
100
|
-
version:
|
|
85
|
+
version: 11.1.3
|
|
101
86
|
- !ruby/object:Gem::Dependency
|
|
102
|
-
name:
|
|
87
|
+
name: rspec-rails
|
|
103
88
|
requirement: !ruby/object:Gem::Requirement
|
|
104
89
|
requirements:
|
|
105
90
|
- - ">="
|
|
106
91
|
- !ruby/object:Gem::Version
|
|
107
|
-
version: 0
|
|
92
|
+
version: '0'
|
|
108
93
|
type: :development
|
|
109
94
|
prerelease: false
|
|
110
95
|
version_requirements: !ruby/object:Gem::Requirement
|
|
111
96
|
requirements:
|
|
112
97
|
- - ">="
|
|
113
98
|
- !ruby/object:Gem::Version
|
|
114
|
-
version: 0
|
|
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
|
|
99
|
+
version: '0'
|
|
129
100
|
- !ruby/object:Gem::Dependency
|
|
130
101
|
name: timecop
|
|
131
102
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -182,29 +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_61.gemfile
|
|
206
|
-
- gemfiles/rails_70.gemfile
|
|
207
|
-
- gemfiles/rails_71.gemfile
|
|
208
159
|
- lib/generators/sorcery/USAGE
|
|
209
160
|
- lib/generators/sorcery/helpers.rb
|
|
210
161
|
- lib/generators/sorcery/install_generator.rb
|
|
@@ -237,6 +188,7 @@ files:
|
|
|
237
188
|
- lib/sorcery/crypto_providers/sha256.rb
|
|
238
189
|
- lib/sorcery/crypto_providers/sha512.rb
|
|
239
190
|
- lib/sorcery/engine.rb
|
|
191
|
+
- lib/sorcery/errors.rb
|
|
240
192
|
- lib/sorcery/model.rb
|
|
241
193
|
- lib/sorcery/model/config.rb
|
|
242
194
|
- lib/sorcery/model/submodules/activity_logging.rb
|
|
@@ -277,93 +229,13 @@ files:
|
|
|
277
229
|
- lib/sorcery/test_helpers/rails/integration.rb
|
|
278
230
|
- lib/sorcery/test_helpers/rails/request.rb
|
|
279
231
|
- lib/sorcery/version.rb
|
|
280
|
-
- sorcery.gemspec
|
|
281
|
-
- spec/active_record/user_activation_spec.rb
|
|
282
|
-
- spec/active_record/user_activity_logging_spec.rb
|
|
283
|
-
- spec/active_record/user_brute_force_protection_spec.rb
|
|
284
|
-
- spec/active_record/user_magic_login_spec.rb
|
|
285
|
-
- spec/active_record/user_oauth_spec.rb
|
|
286
|
-
- spec/active_record/user_remember_me_spec.rb
|
|
287
|
-
- spec/active_record/user_reset_password_spec.rb
|
|
288
|
-
- spec/active_record/user_spec.rb
|
|
289
|
-
- spec/controllers/controller_activity_logging_spec.rb
|
|
290
|
-
- spec/controllers/controller_brute_force_protection_spec.rb
|
|
291
|
-
- spec/controllers/controller_http_basic_auth_spec.rb
|
|
292
|
-
- spec/controllers/controller_oauth2_spec.rb
|
|
293
|
-
- spec/controllers/controller_oauth_spec.rb
|
|
294
|
-
- spec/controllers/controller_remember_me_spec.rb
|
|
295
|
-
- spec/controllers/controller_session_timeout_spec.rb
|
|
296
|
-
- spec/controllers/controller_spec.rb
|
|
297
|
-
- spec/orm/active_record.rb
|
|
298
|
-
- spec/providers/example_provider_spec.rb
|
|
299
|
-
- spec/providers/example_spec.rb
|
|
300
|
-
- spec/providers/examples_spec.rb
|
|
301
|
-
- spec/providers/vk_spec.rb
|
|
302
|
-
- spec/rails_app/app/active_record/authentication.rb
|
|
303
|
-
- spec/rails_app/app/active_record/user.rb
|
|
304
|
-
- spec/rails_app/app/active_record/user_provider.rb
|
|
305
|
-
- spec/rails_app/app/assets/config/manifest.js
|
|
306
|
-
- spec/rails_app/app/controllers/application_controller.rb
|
|
307
|
-
- spec/rails_app/app/controllers/sorcery_controller.rb
|
|
308
|
-
- spec/rails_app/app/helpers/application_helper.rb
|
|
309
|
-
- spec/rails_app/app/mailers/sorcery_mailer.rb
|
|
310
|
-
- spec/rails_app/app/views/application/index.html.erb
|
|
311
|
-
- spec/rails_app/app/views/layouts/application.html.erb
|
|
312
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_email.html.erb
|
|
313
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_email.text.erb
|
|
314
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_needed_email.html.erb
|
|
315
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_success_email.html.erb
|
|
316
|
-
- spec/rails_app/app/views/sorcery_mailer/activation_success_email.text.erb
|
|
317
|
-
- spec/rails_app/app/views/sorcery_mailer/magic_login_email.html.erb
|
|
318
|
-
- spec/rails_app/app/views/sorcery_mailer/magic_login_email.text.erb
|
|
319
|
-
- spec/rails_app/app/views/sorcery_mailer/reset_password_email.html.erb
|
|
320
|
-
- spec/rails_app/app/views/sorcery_mailer/reset_password_email.text.erb
|
|
321
|
-
- spec/rails_app/app/views/sorcery_mailer/send_unlock_token_email.text.erb
|
|
322
|
-
- spec/rails_app/config.ru
|
|
323
|
-
- spec/rails_app/config/application.rb
|
|
324
|
-
- spec/rails_app/config/boot.rb
|
|
325
|
-
- spec/rails_app/config/database.yml
|
|
326
|
-
- spec/rails_app/config/environment.rb
|
|
327
|
-
- spec/rails_app/config/environments/test.rb
|
|
328
|
-
- spec/rails_app/config/initializers/backtrace_silencers.rb
|
|
329
|
-
- spec/rails_app/config/initializers/compatible_legacy_migration.rb
|
|
330
|
-
- spec/rails_app/config/initializers/inflections.rb
|
|
331
|
-
- spec/rails_app/config/initializers/mime_types.rb
|
|
332
|
-
- spec/rails_app/config/initializers/session_store.rb
|
|
333
|
-
- spec/rails_app/config/locales/en.yml
|
|
334
|
-
- spec/rails_app/config/routes.rb
|
|
335
|
-
- spec/rails_app/config/secrets.yml
|
|
336
|
-
- spec/rails_app/db/migrate/activation/20101224223622_add_activation_to_users.rb
|
|
337
|
-
- spec/rails_app/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb
|
|
338
|
-
- spec/rails_app/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb
|
|
339
|
-
- spec/rails_app/db/migrate/core/20101224223620_create_users.rb
|
|
340
|
-
- spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb
|
|
341
|
-
- spec/rails_app/db/migrate/invalidate_active_sessions/20180221093235_add_invalidate_active_sessions_before_to_users.rb
|
|
342
|
-
- spec/rails_app/db/migrate/magic_login/20170924151831_add_magic_login_to_users.rb
|
|
343
|
-
- spec/rails_app/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb
|
|
344
|
-
- spec/rails_app/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb
|
|
345
|
-
- spec/rails_app/db/schema.rb
|
|
346
|
-
- spec/rails_app/db/seeds.rb
|
|
347
|
-
- spec/shared_examples/user_activation_shared_examples.rb
|
|
348
|
-
- spec/shared_examples/user_activity_logging_shared_examples.rb
|
|
349
|
-
- spec/shared_examples/user_brute_force_protection_shared_examples.rb
|
|
350
|
-
- spec/shared_examples/user_magic_login_shared_examples.rb
|
|
351
|
-
- spec/shared_examples/user_oauth_shared_examples.rb
|
|
352
|
-
- spec/shared_examples/user_remember_me_shared_examples.rb
|
|
353
|
-
- spec/shared_examples/user_reset_password_shared_examples.rb
|
|
354
|
-
- spec/shared_examples/user_shared_examples.rb
|
|
355
|
-
- spec/sorcery_crypto_providers_spec.rb
|
|
356
|
-
- spec/sorcery_temporary_token_spec.rb
|
|
357
|
-
- spec/spec.opts
|
|
358
|
-
- spec/spec_helper.rb
|
|
359
|
-
- spec/support/migration_helper.rb
|
|
360
|
-
- spec/support/providers/example.rb
|
|
361
|
-
- spec/support/providers/example_provider.rb
|
|
362
|
-
- spec/support/providers/examples.rb
|
|
363
232
|
homepage: https://github.com/Sorcery/sorcery
|
|
364
233
|
licenses:
|
|
365
234
|
- MIT
|
|
366
|
-
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'
|
|
367
239
|
post_install_message: |-
|
|
368
240
|
As of version 1.0 oauth/oauth2 won't be automatically bundled so you may need to add those dependencies to your Gemfile.
|
|
369
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
|
|
@@ -374,15 +246,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
374
246
|
requirements:
|
|
375
247
|
- - ">="
|
|
376
248
|
- !ruby/object:Gem::Version
|
|
377
|
-
version: 2.
|
|
249
|
+
version: 3.2.0
|
|
378
250
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
379
251
|
requirements:
|
|
380
252
|
- - ">="
|
|
381
253
|
- !ruby/object:Gem::Version
|
|
382
254
|
version: '0'
|
|
383
255
|
requirements: []
|
|
384
|
-
rubygems_version: 3.
|
|
385
|
-
signing_key:
|
|
256
|
+
rubygems_version: 3.6.9
|
|
386
257
|
specification_version: 4
|
|
387
258
|
summary: Magical authentication for Rails applications
|
|
388
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: joshbuker
|
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. -->
|