sorcery 0.11.0 → 0.16.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/ISSUE_TEMPLATE.md +20 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +5 -0
  5. data/.github/workflows/ruby.yml +49 -0
  6. data/.rubocop.yml +55 -0
  7. data/.rubocop_todo.yml +163 -0
  8. data/CHANGELOG.md +84 -0
  9. data/CODE_OF_CONDUCT.md +14 -0
  10. data/Gemfile +2 -2
  11. data/{LICENSE.txt → LICENSE.md} +1 -1
  12. data/README.md +34 -8
  13. data/Rakefile +3 -1
  14. data/SECURITY.md +19 -0
  15. data/gemfiles/rails_52.gemfile +7 -0
  16. data/gemfiles/rails_60.gemfile +7 -0
  17. data/lib/generators/sorcery/USAGE +1 -1
  18. data/lib/generators/sorcery/helpers.rb +4 -0
  19. data/lib/generators/sorcery/install_generator.rb +21 -21
  20. data/lib/generators/sorcery/templates/initializer.rb +176 -69
  21. data/lib/generators/sorcery/templates/migration/activity_logging.rb +5 -5
  22. data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +4 -4
  23. data/lib/generators/sorcery/templates/migration/core.rb +4 -4
  24. data/lib/generators/sorcery/templates/migration/external.rb +3 -3
  25. data/lib/generators/sorcery/templates/migration/magic_login.rb +9 -0
  26. data/lib/generators/sorcery/templates/migration/remember_me.rb +3 -3
  27. data/lib/generators/sorcery/templates/migration/reset_password.rb +5 -4
  28. data/lib/generators/sorcery/templates/migration/user_activation.rb +4 -4
  29. data/lib/sorcery.rb +2 -0
  30. data/lib/sorcery/adapters/active_record_adapter.rb +4 -3
  31. data/lib/sorcery/adapters/mongoid_adapter.rb +23 -11
  32. data/lib/sorcery/controller.rb +26 -15
  33. data/lib/sorcery/controller/config.rb +7 -5
  34. data/lib/sorcery/controller/submodules/activity_logging.rb +9 -3
  35. data/lib/sorcery/controller/submodules/external.rb +49 -33
  36. data/lib/sorcery/controller/submodules/http_basic_auth.rb +2 -0
  37. data/lib/sorcery/controller/submodules/remember_me.rb +3 -8
  38. data/lib/sorcery/controller/submodules/session_timeout.rb +28 -5
  39. data/lib/sorcery/crypto_providers/aes256.rb +2 -1
  40. data/lib/sorcery/crypto_providers/bcrypt.rb +8 -2
  41. data/lib/sorcery/engine.rb +16 -3
  42. data/lib/sorcery/model.rb +14 -10
  43. data/lib/sorcery/model/config.rb +12 -4
  44. data/lib/sorcery/model/submodules/brute_force_protection.rb +6 -7
  45. data/lib/sorcery/model/submodules/external.rb +19 -3
  46. data/lib/sorcery/model/submodules/magic_login.rb +130 -0
  47. data/lib/sorcery/model/submodules/reset_password.rb +25 -2
  48. data/lib/sorcery/model/submodules/user_activation.rb +1 -1
  49. data/lib/sorcery/model/temporary_token.rb +3 -1
  50. data/lib/sorcery/protocols/oauth.rb +1 -0
  51. data/lib/sorcery/providers/auth0.rb +46 -0
  52. data/lib/sorcery/providers/battlenet.rb +51 -0
  53. data/lib/sorcery/providers/discord.rb +52 -0
  54. data/lib/sorcery/providers/heroku.rb +1 -0
  55. data/lib/sorcery/providers/instagram.rb +73 -0
  56. data/lib/sorcery/providers/line.rb +63 -0
  57. data/lib/sorcery/providers/linkedin.rb +45 -36
  58. data/lib/sorcery/providers/vk.rb +5 -4
  59. data/lib/sorcery/providers/wechat.rb +8 -6
  60. data/lib/sorcery/test_helpers/internal.rb +5 -4
  61. data/lib/sorcery/test_helpers/internal/rails.rb +11 -11
  62. data/lib/sorcery/test_helpers/rails/request.rb +20 -0
  63. data/lib/sorcery/version.rb +1 -1
  64. data/sorcery.gemspec +27 -11
  65. data/spec/active_record/user_activation_spec.rb +2 -2
  66. data/spec/active_record/user_activity_logging_spec.rb +2 -2
  67. data/spec/active_record/user_brute_force_protection_spec.rb +2 -2
  68. data/spec/active_record/user_magic_login_spec.rb +15 -0
  69. data/spec/active_record/user_oauth_spec.rb +2 -2
  70. data/spec/active_record/user_remember_me_spec.rb +2 -2
  71. data/spec/active_record/user_reset_password_spec.rb +2 -2
  72. data/spec/active_record/user_spec.rb +0 -10
  73. data/spec/controllers/controller_http_basic_auth_spec.rb +1 -1
  74. data/spec/controllers/controller_oauth2_spec.rb +230 -123
  75. data/spec/controllers/controller_oauth_spec.rb +13 -7
  76. data/spec/controllers/controller_remember_me_spec.rb +16 -8
  77. data/spec/controllers/controller_session_timeout_spec.rb +90 -3
  78. data/spec/controllers/controller_spec.rb +13 -3
  79. data/spec/orm/active_record.rb +2 -2
  80. data/spec/providers/example_provider_spec.rb +17 -0
  81. data/spec/providers/example_spec.rb +17 -0
  82. data/spec/providers/vk_spec.rb +42 -0
  83. data/spec/rails_app/app/assets/config/manifest.js +1 -0
  84. data/spec/rails_app/app/controllers/application_controller.rb +2 -0
  85. data/spec/rails_app/app/controllers/sorcery_controller.rb +152 -33
  86. data/spec/rails_app/app/mailers/sorcery_mailer.rb +7 -0
  87. data/spec/rails_app/app/views/sorcery_mailer/magic_login_email.html.erb +13 -0
  88. data/spec/rails_app/app/views/sorcery_mailer/magic_login_email.text.erb +6 -0
  89. data/spec/rails_app/config/application.rb +8 -3
  90. data/spec/rails_app/config/boot.rb +1 -1
  91. data/spec/rails_app/config/environment.rb +1 -1
  92. data/spec/rails_app/config/routes.rb +17 -0
  93. data/spec/rails_app/config/secrets.yml +4 -0
  94. data/spec/rails_app/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +2 -2
  95. data/spec/rails_app/db/migrate/invalidate_active_sessions/20180221093235_add_invalidate_active_sessions_before_to_users.rb +9 -0
  96. data/spec/rails_app/db/migrate/magic_login/20170924151831_add_magic_login_to_users.rb +17 -0
  97. data/spec/rails_app/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +2 -0
  98. data/spec/rails_app/db/schema.rb +7 -9
  99. data/spec/shared_examples/user_magic_login_shared_examples.rb +150 -0
  100. data/spec/shared_examples/user_oauth_shared_examples.rb +1 -1
  101. data/spec/shared_examples/user_remember_me_shared_examples.rb +1 -1
  102. data/spec/shared_examples/user_reset_password_shared_examples.rb +37 -5
  103. data/spec/shared_examples/user_shared_examples.rb +104 -43
  104. data/spec/sorcery_crypto_providers_spec.rb +61 -1
  105. data/spec/sorcery_temporary_token_spec.rb +27 -0
  106. data/spec/spec.opts +1 -1
  107. data/spec/spec_helper.rb +2 -2
  108. data/spec/support/migration_helper.rb +29 -0
  109. data/spec/support/providers/example.rb +11 -0
  110. data/spec/support/providers/example_provider.rb +11 -0
  111. metadata +97 -34
  112. data/.travis.yml +0 -57
  113. data/gemfiles/active_record-rails40.gemfile +0 -7
  114. data/gemfiles/active_record-rails41.gemfile +0 -7
  115. data/gemfiles/active_record-rails42.gemfile +0 -7
  116. data/spec/rails_app/config/initializers/secret_token.rb +0 -7
data/.travis.yml DELETED
@@ -1,57 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - jruby
4
- - 2.0.0
5
- - 2.1.10
6
- - 2.2.6
7
- - 2.3.3
8
- - 2.4.0
9
-
10
- env:
11
- global:
12
- - JRUBY_OPTS="--2.0"
13
-
14
- gemfile:
15
- - Gemfile
16
- - gemfiles/active_record-rails40.gemfile
17
- - gemfiles/active_record-rails41.gemfile
18
- - gemfiles/active_record-rails42.gemfile
19
-
20
- before_script:
21
- - mysql -e 'create database sorcery_test;'
22
-
23
- before_install:
24
- - rvm get stable --auto-dotfiles
25
- - gem update bundler
26
-
27
- matrix:
28
- allow_failures:
29
- - rvm: jruby
30
-
31
- exclude:
32
- - rvm: 2.0.0
33
- gemfile: gemfiles/active_record-rails42.gemfile
34
-
35
- - rvm: 2.0.0
36
- gemfile: Gemfile
37
-
38
- - rvm: 2.1.10
39
- gemfile: Gemfile
40
-
41
- - rvm: 2.2.6
42
- gemfile: gemfiles/active_record-rails40.gemfile
43
-
44
- - rvm: 2.3.3
45
- gemfile: gemfiles/active_record-rails40.gemfile
46
-
47
- - rvm: 2.4.0
48
- gemfile: gemfiles/active_record-rails40.gemfile
49
-
50
- - rvm: 2.4.0
51
- gemfile: gemfiles/active_record-rails41.gemfile
52
-
53
- - rvm: 2.4.0
54
- gemfile: gemfiles/active_record-rails42.gemfile
55
-
56
- - rvm: jruby
57
- gemfile: Gemfile
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'sqlite3', platform: :mri
4
- gem 'activerecord-jdbcsqlite3-adapter', platform: :jruby
5
- gem 'rails', '~> 4.0.1'
6
-
7
- gemspec path: '..'
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'sqlite3', platform: :mri
4
- gem 'activerecord-jdbcsqlite3-adapter', platform: :jruby
5
- gem 'rails', '~> 4.1.0'
6
-
7
- gemspec path: '..'
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'sqlite3', platform: :mri
4
- gem 'activerecord-jdbcsqlite3-adapter', platform: :jruby
5
- gem 'rails', '~> 4.2.0'
6
-
7
- gemspec path: '..'
@@ -1,7 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Your secret key for verifying the integrity of signed cookies.
4
- # If you change this key, all old signed cookies will become invalid!
5
- # Make sure the secret is at least 30 characters and all random,
6
- # no regular words or you'll be exposed to dictionary attacks.
7
- AppRoot::Application.config.secret_token = 'a9789f869a0d0ac2f2b683d6e9410c530696b178bca28a7971f4a652b14ff2da89f2cf4dcbf0355f6bc41f81731aa8e46085674d1acc1980436f61cdba76ff5d'