sorcery 0.9.0 → 0.10.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.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +29 -104
  3. data/CHANGELOG.md +22 -1
  4. data/Gemfile +2 -16
  5. data/README.md +124 -271
  6. data/Rakefile +2 -2
  7. data/gemfiles/{mongoid-rails40.gemfile → active_record-rails42.gemfile} +1 -3
  8. data/lib/generators/sorcery/helpers.rb +4 -4
  9. data/lib/generators/sorcery/install_generator.rb +25 -19
  10. data/lib/generators/sorcery/templates/initializer.rb +29 -53
  11. data/lib/generators/sorcery/templates/migration/activity_logging.rb +2 -2
  12. data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +1 -1
  13. data/lib/generators/sorcery/templates/migration/core.rb +3 -3
  14. data/lib/generators/sorcery/templates/migration/external.rb +3 -3
  15. data/lib/generators/sorcery/templates/migration/remember_me.rb +2 -2
  16. data/lib/generators/sorcery/templates/migration/reset_password.rb +2 -2
  17. data/lib/generators/sorcery/templates/migration/user_activation.rb +2 -2
  18. data/lib/sorcery/adapters/active_record_adapter.rb +7 -18
  19. data/lib/sorcery/controller/config.rb +20 -18
  20. data/lib/sorcery/controller/submodules/activity_logging.rb +7 -15
  21. data/lib/sorcery/controller/submodules/brute_force_protection.rb +1 -2
  22. data/lib/sorcery/controller/submodules/external.rb +23 -15
  23. data/lib/sorcery/controller/submodules/http_basic_auth.rb +16 -19
  24. data/lib/sorcery/controller/submodules/remember_me.rb +15 -10
  25. data/lib/sorcery/controller/submodules/session_timeout.rb +7 -8
  26. data/lib/sorcery/controller.rb +19 -21
  27. data/lib/sorcery/crypto_providers/aes256.rb +15 -15
  28. data/lib/sorcery/crypto_providers/bcrypt.rb +19 -21
  29. data/lib/sorcery/crypto_providers/common.rb +1 -1
  30. data/lib/sorcery/crypto_providers/md5.rb +5 -5
  31. data/lib/sorcery/crypto_providers/sha1.rb +5 -5
  32. data/lib/sorcery/crypto_providers/sha256.rb +2 -2
  33. data/lib/sorcery/crypto_providers/sha512.rb +3 -3
  34. data/lib/sorcery/engine.rb +3 -8
  35. data/lib/sorcery/model/config.rb +64 -49
  36. data/lib/sorcery/model/submodules/activity_logging.rb +31 -12
  37. data/lib/sorcery/model/submodules/brute_force_protection.rb +23 -23
  38. data/lib/sorcery/model/submodules/external.rb +3 -7
  39. data/lib/sorcery/model/submodules/remember_me.rb +19 -7
  40. data/lib/sorcery/model/submodules/reset_password.rb +32 -36
  41. data/lib/sorcery/model/submodules/user_activation.rb +38 -50
  42. data/lib/sorcery/model/temporary_token.rb +2 -2
  43. data/lib/sorcery/model.rb +27 -31
  44. data/lib/sorcery/protocols/oauth.rb +3 -9
  45. data/lib/sorcery/protocols/oauth2.rb +0 -2
  46. data/lib/sorcery/providers/base.rb +4 -4
  47. data/lib/sorcery/providers/facebook.rb +17 -9
  48. data/lib/sorcery/providers/github.rb +12 -5
  49. data/lib/sorcery/providers/google.rb +3 -5
  50. data/lib/sorcery/providers/heroku.rb +6 -8
  51. data/lib/sorcery/providers/jira.rb +12 -17
  52. data/lib/sorcery/providers/linkedin.rb +6 -8
  53. data/lib/sorcery/providers/liveid.rb +4 -7
  54. data/lib/sorcery/providers/paypal.rb +60 -0
  55. data/lib/sorcery/providers/salesforce.rb +3 -5
  56. data/lib/sorcery/providers/slack.rb +45 -0
  57. data/lib/sorcery/providers/twitter.rb +4 -6
  58. data/lib/sorcery/providers/vk.rb +3 -5
  59. data/lib/sorcery/providers/wechat.rb +79 -0
  60. data/lib/sorcery/providers/xing.rb +8 -11
  61. data/lib/sorcery/test_helpers/internal/rails.rb +16 -8
  62. data/lib/sorcery/test_helpers/internal.rb +10 -10
  63. data/lib/sorcery/test_helpers/rails/controller.rb +1 -1
  64. data/lib/sorcery/test_helpers/rails/integration.rb +5 -6
  65. data/lib/sorcery/version.rb +1 -1
  66. data/lib/sorcery.rb +0 -28
  67. data/sorcery.gemspec +25 -27
  68. data/spec/active_record/user_activation_spec.rb +2 -3
  69. data/spec/active_record/user_activity_logging_spec.rb +2 -4
  70. data/spec/active_record/user_brute_force_protection_spec.rb +3 -4
  71. data/spec/active_record/user_oauth_spec.rb +3 -4
  72. data/spec/active_record/user_remember_me_spec.rb +3 -4
  73. data/spec/active_record/user_reset_password_spec.rb +2 -3
  74. data/spec/active_record/user_spec.rb +7 -7
  75. data/spec/controllers/controller_activity_logging_spec.rb +13 -24
  76. data/spec/controllers/controller_brute_force_protection_spec.rb +6 -8
  77. data/spec/controllers/controller_http_basic_auth_spec.rb +19 -20
  78. data/spec/controllers/controller_oauth2_spec.rb +142 -102
  79. data/spec/controllers/controller_oauth_spec.rb +86 -66
  80. data/spec/controllers/controller_remember_me_spec.rb +35 -30
  81. data/spec/controllers/controller_session_timeout_spec.rb +14 -15
  82. data/spec/controllers/controller_spec.rb +77 -111
  83. data/spec/orm/active_record.rb +1 -1
  84. data/spec/rails_app/app/active_record/authentication.rb +1 -1
  85. data/spec/rails_app/app/active_record/user.rb +2 -2
  86. data/spec/rails_app/app/controllers/sorcery_controller.rb +89 -24
  87. data/spec/rails_app/app/mailers/sorcery_mailer.rb +16 -17
  88. data/spec/rails_app/config/application.rb +7 -7
  89. data/spec/rails_app/config/boot.rb +1 -1
  90. data/spec/rails_app/config/environments/test.rb +1 -1
  91. data/spec/rails_app/config/initializers/compatible_legacy_migration.rb +11 -0
  92. data/spec/rails_app/config/initializers/session_store.rb +3 -3
  93. data/spec/rails_app/config/routes.rb +11 -1
  94. data/spec/rails_app/config.ru +1 -1
  95. data/spec/rails_app/db/migrate/activation/20101224223622_add_activation_to_users.rb +4 -4
  96. data/spec/rails_app/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +8 -8
  97. data/spec/rails_app/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +5 -5
  98. data/spec/rails_app/db/migrate/core/20101224223620_create_users.rb +5 -5
  99. data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +3 -3
  100. data/spec/rails_app/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +6 -6
  101. data/spec/rails_app/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +5 -5
  102. data/spec/shared_examples/user_activation_shared_examples.rb +99 -58
  103. data/spec/shared_examples/user_activity_logging_shared_examples.rb +47 -41
  104. data/spec/shared_examples/user_brute_force_protection_shared_examples.rb +19 -24
  105. data/spec/shared_examples/user_oauth_shared_examples.rb +7 -10
  106. data/spec/shared_examples/user_remember_me_shared_examples.rb +90 -21
  107. data/spec/shared_examples/user_reset_password_shared_examples.rb +52 -54
  108. data/spec/shared_examples/user_shared_examples.rb +226 -116
  109. data/spec/sorcery_crypto_providers_spec.rb +63 -76
  110. data/spec/spec_helper.rb +17 -13
  111. metadata +28 -82
  112. data/gemfiles/mongo_mapper-rails40.gemfile +0 -9
  113. data/gemfiles/mongo_mapper-rails41.gemfile +0 -9
  114. data/gemfiles/mongoid-rails41.gemfile +0 -9
  115. data/gemfiles/mongoid3-rails32.gemfile +0 -9
  116. data/lib/sorcery/adapters/data_mapper_adapter.rb +0 -176
  117. data/lib/sorcery/adapters/mongo_mapper_adapter.rb +0 -110
  118. data/lib/sorcery/adapters/mongoid_adapter.rb +0 -97
  119. data/lib/sorcery/railties/tasks.rake +0 -6
  120. data/spec/data_mapper/user_activation_spec.rb +0 -10
  121. data/spec/data_mapper/user_activity_logging_spec.rb +0 -14
  122. data/spec/data_mapper/user_brute_force_protection_spec.rb +0 -9
  123. data/spec/data_mapper/user_oauth_spec.rb +0 -9
  124. data/spec/data_mapper/user_remember_me_spec.rb +0 -8
  125. data/spec/data_mapper/user_reset_password_spec.rb +0 -8
  126. data/spec/data_mapper/user_spec.rb +0 -27
  127. data/spec/mongo_mapper/user_activation_spec.rb +0 -9
  128. data/spec/mongo_mapper/user_activity_logging_spec.rb +0 -8
  129. data/spec/mongo_mapper/user_brute_force_protection_spec.rb +0 -8
  130. data/spec/mongo_mapper/user_oauth_spec.rb +0 -8
  131. data/spec/mongo_mapper/user_remember_me_spec.rb +0 -8
  132. data/spec/mongo_mapper/user_reset_password_spec.rb +0 -8
  133. data/spec/mongo_mapper/user_spec.rb +0 -37
  134. data/spec/mongoid/user_activation_spec.rb +0 -9
  135. data/spec/mongoid/user_activity_logging_spec.rb +0 -8
  136. data/spec/mongoid/user_brute_force_protection_spec.rb +0 -8
  137. data/spec/mongoid/user_oauth_spec.rb +0 -8
  138. data/spec/mongoid/user_remember_me_spec.rb +0 -8
  139. data/spec/mongoid/user_reset_password_spec.rb +0 -8
  140. data/spec/mongoid/user_spec.rb +0 -51
  141. data/spec/orm/data_mapper.rb +0 -48
  142. data/spec/orm/mongo_mapper.rb +0 -10
  143. data/spec/orm/mongoid.rb +0 -22
  144. data/spec/rails_app/app/data_mapper/authentication.rb +0 -8
  145. data/spec/rails_app/app/data_mapper/user.rb +0 -7
  146. data/spec/rails_app/app/mongo_mapper/authentication.rb +0 -6
  147. data/spec/rails_app/app/mongo_mapper/user.rb +0 -7
  148. data/spec/rails_app/app/mongoid/authentication.rb +0 -7
  149. data/spec/rails_app/app/mongoid/user.rb +0 -7
  150. data/spec/rails_app/log/development.log +0 -1791
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f79fec92f71b24d1507e3848c0c943e3b8e7a6ed
4
- data.tar.gz: bf2cfc0eb30778fbb3eb85f896a9b73811a179c4
3
+ metadata.gz: bb39af475e80d1cf60b3d9d29d594596e1e49f7b
4
+ data.tar.gz: 4c673dbd8669efa22e8422a8d6991100e6ffdd15
5
5
  SHA512:
6
- metadata.gz: d48170391dc1db75bb8bc88ce444ecc8d957796e0aaf96c29cafc4a01493689bc52e47ecaa5c0968c3aced147d623d2623f9dbe56e3dfdf46bf5309b005345f6
7
- data.tar.gz: 4101544b567f3cb86c02bda20721a864b9c32fb688d62e64e7eee7fc0672614d06e0d8c004c8fa494113a9c834c1a09df1be91454ee00ee58865fcd31d01d7e0
6
+ metadata.gz: 259226a4a2577089ad0f2ff0a4f2db786c2b0b035ac62d942788e37dcac483e3843c4847e9dda3ffddab601ad981d46a809461da091779fb914497f80e9a92ef
7
+ data.tar.gz: 0d8d54eb5b6f600d17e28b78124ee046c7d00addbcf349d47de742dc1e3abbd2f4b8ed6ce2766f5f98037b0634324554eb389fccc3bde348d27ea1c021a5b378
data/.travis.yml CHANGED
@@ -1,132 +1,57 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
3
+ - jruby
4
4
  - 2.0.0
5
- - 2.1
5
+ - 2.1.10
6
+ - 2.2.6
7
+ - 2.3.3
8
+ - 2.4.0
6
9
 
7
- services: mongodb
10
+ env:
11
+ global:
12
+ - JRUBY_OPTS="--2.0"
8
13
 
9
14
  gemfile:
10
15
  - Gemfile
11
-
12
- env:
13
- - "SORCERY_ORM=active_record"
14
- - "SORCERY_ORM=mongoid"
15
- - "SORCERY_ORM=mongo_mapper"
16
- - "SORCERY_ORM=data_mapper"
16
+ - gemfiles/active_record-rails40.gemfile
17
+ - gemfiles/active_record-rails41.gemfile
18
+ - gemfiles/active_record-rails42.gemfile
17
19
 
18
20
  before_script:
19
21
  - mysql -e 'create database sorcery_test;'
20
22
 
23
+ before_install:
24
+ - rvm get stable --auto-dotfiles
25
+ - gem update bundler
26
+
21
27
  matrix:
22
28
  allow_failures:
23
- - rvm: :jruby
24
-
25
- include:
26
- - rvm: 1.9.3
27
- gemfile: gemfiles/mongoid-rails41.gemfile
28
- env: "SORCERY_ORM=mongoid"
29
-
30
- - rvm: 2.0.0
31
- gemfile: gemfiles/mongoid-rails41.gemfile
32
- env: "SORCERY_ORM=mongoid"
33
-
34
- - rvm: 2.1
35
- gemfile: gemfiles/mongoid-rails41.gemfile
36
- env: "SORCERY_ORM=mongoid"
37
-
38
29
  - rvm: jruby
39
- gemfile: gemfiles/mongoid-rails41.gemfile
40
- env: "SORCERY_ORM=mongoid"
41
-
42
- - rvm: 1.9.3
43
- gemfile: gemfiles/mongo_mapper-rails41.gemfile
44
- env: "SORCERY_ORM=mongo_mapper"
45
30
 
31
+ exclude:
46
32
  - rvm: 2.0.0
47
- gemfile: gemfiles/mongo_mapper-rails41.gemfile
48
- env: "SORCERY_ORM=mongo_mapper"
49
-
50
- - rvm: 2.1
51
- gemfile: gemfiles/mongo_mapper-rails41.gemfile
52
- env: "SORCERY_ORM=mongo_mapper"
53
-
54
- - rvm: jruby
55
- gemfile: gemfiles/mongo_mapper-rails41.gemfile
56
- env: "SORCERY_ORM=mongo_mapper"
57
-
58
- - rvm: 1.9.3
59
- gemfile: gemfiles/active_record-rails41.gemfile
60
- env: "SORCERY_ORM=active_record"
33
+ gemfile: gemfiles/active_record-rails42.gemfile
61
34
 
62
35
  - rvm: 2.0.0
63
- gemfile: gemfiles/active_record-rails41.gemfile
64
- env: "SORCERY_ORM=active_record"
65
-
66
- - rvm: 2.1
67
- gemfile: gemfiles/active_record-rails41.gemfile
68
- env: "SORCERY_ORM=active_record"
36
+ gemfile: Gemfile
69
37
 
70
- - rvm: jruby
71
- gemfile: gemfiles/active_record-rails41.gemfile
72
- env: "SORCERY_ORM=active_record"
38
+ - rvm: 2.1.10
39
+ gemfile: Gemfile
73
40
 
74
- - rvm: 1.9.3
75
- gemfile: gemfiles/mongoid-rails40.gemfile
76
- env: "SORCERY_ORM=mongoid"
77
-
78
- - rvm: 2.0.0
79
- gemfile: gemfiles/mongoid-rails40.gemfile
80
- env: "SORCERY_ORM=mongoid"
81
-
82
- - rvm: 2.1
83
- gemfile: gemfiles/mongoid-rails40.gemfile
84
- env: "SORCERY_ORM=mongoid"
85
-
86
- - rvm: jruby
87
- gemfile: gemfiles/mongoid-rails40.gemfile
88
- env: "SORCERY_ORM=mongoid"
89
-
90
- - rvm: 1.9.3
91
- gemfile: gemfiles/mongo_mapper-rails40.gemfile
92
- env: "SORCERY_ORM=mongo_mapper"
93
-
94
- - rvm: 2.0.0
95
- gemfile: gemfiles/mongo_mapper-rails40.gemfile
96
- env: "SORCERY_ORM=mongo_mapper"
97
-
98
- - rvm: 2.1
99
- gemfile: gemfiles/mongo_mapper-rails40.gemfile
100
- env: "SORCERY_ORM=mongo_mapper"
101
-
102
- - rvm: jruby
103
- gemfile: gemfiles/mongo_mapper-rails40.gemfile
104
- env: "SORCERY_ORM=mongo_mapper"
105
-
106
- - rvm: 1.9.3
41
+ - rvm: 2.2.6
107
42
  gemfile: gemfiles/active_record-rails40.gemfile
108
- env: "SORCERY_ORM=active_record"
109
43
 
110
- - rvm: 2.0.0
44
+ - rvm: 2.3.3
111
45
  gemfile: gemfiles/active_record-rails40.gemfile
112
- env: "SORCERY_ORM=active_record"
113
46
 
114
- - rvm: 2.1
47
+ - rvm: 2.4.0
115
48
  gemfile: gemfiles/active_record-rails40.gemfile
116
- env: "SORCERY_ORM=active_record"
117
49
 
118
- - rvm: jruby
119
- gemfile: gemfiles/active_record-rails40.gemfile
120
- env: "SORCERY_ORM=active_record"
121
-
122
- - rvm: 1.9.3
123
- gemfile: gemfiles/mongoid3-rails32.gemfile
124
- env: "SORCERY_ORM=mongoid"
50
+ - rvm: 2.4.0
51
+ gemfile: gemfiles/active_record-rails41.gemfile
125
52
 
126
- - rvm: 2.0.0
127
- gemfile: gemfiles/mongoid3-rails32.gemfile
128
- env: "SORCERY_ORM=mongoid"
53
+ - rvm: 2.4.0
54
+ gemfile: gemfiles/active_record-rails42.gemfile
129
55
 
130
- - rvm: 2.1
131
- gemfile: gemfiles/mongoid3-rails32.gemfile
132
- env: "SORCERY_ORM=mongoid"
56
+ - rvm: jruby
57
+ gemfile: Gemfile
data/CHANGELOG.md CHANGED
@@ -1,8 +1,29 @@
1
1
  # Changelog
2
2
 
3
- ## 1.0 (not released yet)
3
+ ## 0.10.0
4
4
 
5
5
  * Adapters (Mongoid, MongoMapper, DataMapper) are now separated from the core Sorcery repo and moved under `sorcery-rails` organization. Special thanks to @juike!
6
+ * `current_users` method was removed
7
+ * Added `logged_in?` `logged_out?` `online?` to activity_logging instance methods
8
+ * Added support for PayPal OAuth (thanks to @rubenmoya)
9
+ * Added support for Slack OAuth (thanks to @youzik)
10
+ * Added support for WeChat OAuth (thanks to @Darmody)
11
+ * Deprecated Rails 3
12
+ * Deprecated using `callback_filter` in favor of `callback_action`
13
+ * Added null: false to migrations
14
+ * Added support for Rails 5 (thanks to @kyuden)
15
+ * Added support for Ruby 2.4 (thanks to @kyuden)
16
+ * Added WeChat provider to external submodule.
17
+ * Namespace login lock/unlock methods to fix conflicts with Rails lock/unlock (thanks to @kyuden)
18
+
19
+ ## 0.9.1
20
+
21
+ * Fixed fetching private emails from github (thanks to @saratovsource)
22
+ * Added support for `active_for_authentication?` method (thanks to @gchaincl)
23
+ * Fixed migration bug for `external` submodule (thanks to @skv-headless)
24
+ * Added support for new Facebook Graph API (thanks to @mchaisse)
25
+ * Fixed issue with Xing submodule (thanks to @yoyostile)
26
+ * Fixed security bug with using `state` field in oAuth requests
6
27
 
7
28
  ## 0.9.0
8
29
 
data/Gemfile CHANGED
@@ -1,22 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'rails', '~> 3.2'
3
+ gem 'rails', '~> 5.0.0'
4
+ gem 'rails-controller-testing'
4
5
  gem 'sqlite3'
5
6
  gem 'pry'
6
7
 
7
- group :mongomapper do
8
- gem 'mongo_mapper'
9
- end
10
-
11
- group :mongoid do
12
- gem 'mongoid', "~> 2.4.4"
13
- gem 'bson_ext'
14
- end
15
-
16
- group :datamapper do
17
- gem 'mysql2'
18
- gem 'data_mapper'
19
- gem 'dm-mysql-adapter'
20
- end
21
-
22
8
  gemspec