sorcery 0.8.2 → 0.8.6

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 (341) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +55 -0
  3. data/.travis.yml +69 -1
  4. data/CHANGELOG.md +248 -0
  5. data/Gemfile +16 -22
  6. data/Gemfile.rails4 +22 -0
  7. data/README.md +320 -0
  8. data/Rakefile +3 -79
  9. data/VERSION +1 -1
  10. data/gemfiles/active_record-rails41.gemfile +6 -0
  11. data/gemfiles/mongo_mapper-rails41.gemfile +8 -0
  12. data/gemfiles/mongoid-rails41.gemfile +11 -0
  13. data/lib/generators/sorcery/helpers.rb +40 -0
  14. data/lib/generators/sorcery/install_generator.rb +21 -17
  15. data/lib/generators/sorcery/templates/initializer.rb +1 -1
  16. data/lib/generators/sorcery/templates/migration/activity_logging.rb +2 -11
  17. data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +1 -7
  18. data/lib/generators/sorcery/templates/migration/core.rb +5 -8
  19. data/lib/generators/sorcery/templates/migration/external.rb +1 -5
  20. data/lib/generators/sorcery/templates/migration/remember_me.rb +2 -9
  21. data/lib/generators/sorcery/templates/migration/reset_password.rb +2 -10
  22. data/lib/generators/sorcery/templates/migration/user_activation.rb +2 -10
  23. data/lib/sorcery/controller/submodules/external.rb +39 -20
  24. data/lib/sorcery/controller/submodules/remember_me.rb +1 -1
  25. data/lib/sorcery/controller/submodules/session_timeout.rb +2 -2
  26. data/lib/sorcery/controller.rb +18 -11
  27. data/lib/sorcery/model/adapters/active_record.rb +7 -2
  28. data/lib/sorcery/model/adapters/datamapper.rb +123 -0
  29. data/lib/sorcery/model/adapters/mongo_mapper.rb +8 -4
  30. data/lib/sorcery/model/adapters/mongoid.rb +8 -8
  31. data/lib/sorcery/model/submodules/activity_logging.rb +24 -0
  32. data/lib/sorcery/model/submodules/brute_force_protection.rb +22 -8
  33. data/lib/sorcery/model/submodules/remember_me.rb +19 -4
  34. data/lib/sorcery/model/submodules/reset_password.rb +35 -14
  35. data/lib/sorcery/model/submodules/user_activation.rb +69 -24
  36. data/lib/sorcery/model.rb +111 -73
  37. data/lib/sorcery/protocols/oauth.rb +42 -0
  38. data/lib/sorcery/protocols/oauth2.rb +47 -0
  39. data/lib/sorcery/providers/base.rb +27 -0
  40. data/lib/sorcery/providers/facebook.rb +63 -0
  41. data/lib/sorcery/providers/github.rb +51 -0
  42. data/lib/sorcery/providers/google.rb +51 -0
  43. data/lib/sorcery/providers/linkedin.rb +66 -0
  44. data/lib/sorcery/providers/liveid.rb +53 -0
  45. data/lib/sorcery/providers/twitter.rb +59 -0
  46. data/lib/sorcery/providers/vk.rb +61 -0
  47. data/lib/sorcery/providers/xing.rb +64 -0
  48. data/lib/sorcery/test_helpers/internal/rails.rb +17 -6
  49. data/lib/sorcery/test_helpers/internal.rb +23 -6
  50. data/lib/sorcery/test_helpers/rails/controller.rb +17 -0
  51. data/lib/sorcery/test_helpers/rails/integration.rb +26 -0
  52. data/lib/sorcery/test_helpers/rails.rb +1 -10
  53. data/lib/sorcery.rb +20 -28
  54. data/sorcery.gemspec +21 -363
  55. data/spec/active_record/controller_activity_logging_spec.rb +29 -0
  56. data/spec/active_record/controller_brute_force_protection_spec.rb +158 -0
  57. data/spec/active_record/controller_http_basic_auth_spec.rb +65 -0
  58. data/spec/active_record/controller_oauth2_spec.rb +342 -0
  59. data/spec/{rails3/spec → active_record}/controller_oauth_spec.rb +69 -59
  60. data/spec/active_record/controller_remember_me_spec.rb +97 -0
  61. data/spec/active_record/controller_session_timeout_spec.rb +70 -0
  62. data/spec/active_record/controller_spec.rb +8 -0
  63. data/spec/{rails3/spec → active_record}/integration_spec.rb +3 -3
  64. data/spec/active_record/user_activation_spec.rb +18 -0
  65. data/spec/active_record/user_activity_logging_spec.rb +8 -0
  66. data/spec/{rails3/spec → active_record}/user_brute_force_protection_spec.rb +6 -5
  67. data/spec/{rails3/spec → active_record}/user_oauth_spec.rb +6 -5
  68. data/spec/{rails3/spec → active_record}/user_remember_me_spec.rb +5 -4
  69. data/spec/{rails3/spec → active_record}/user_reset_password_spec.rb +7 -7
  70. data/spec/active_record/user_spec.rb +37 -0
  71. data/spec/datamapper/controller_activity_logging_spec.rb +17 -0
  72. data/spec/datamapper/controller_spec.rb +8 -0
  73. data/spec/datamapper/user_activation_spec.rb +10 -0
  74. data/spec/datamapper/user_activity_logging_spec.rb +9 -0
  75. data/spec/datamapper/user_brute_force_protection_spec.rb +9 -0
  76. data/spec/datamapper/user_oauth_spec.rb +9 -0
  77. data/spec/datamapper/user_remember_me_spec.rb +8 -0
  78. data/spec/datamapper/user_reset_password_spec.rb +8 -0
  79. data/spec/datamapper/user_spec.rb +27 -0
  80. data/spec/mongo_mapper/controller_spec.rb +8 -0
  81. data/spec/mongo_mapper/user_activation_spec.rb +9 -0
  82. data/spec/mongo_mapper/user_activity_logging_spec.rb +8 -0
  83. data/spec/mongo_mapper/user_brute_force_protection_spec.rb +8 -0
  84. data/spec/mongo_mapper/user_oauth_spec.rb +8 -0
  85. data/spec/mongo_mapper/user_remember_me_spec.rb +8 -0
  86. data/spec/mongo_mapper/user_reset_password_spec.rb +8 -0
  87. data/spec/mongo_mapper/user_spec.rb +37 -0
  88. data/spec/mongoid/controller_activity_logging_spec.rb +16 -0
  89. data/spec/mongoid/controller_spec.rb +8 -0
  90. data/spec/mongoid/user_activation_spec.rb +9 -0
  91. data/spec/mongoid/user_activity_logging_spec.rb +8 -0
  92. data/spec/mongoid/user_brute_force_protection_spec.rb +8 -0
  93. data/spec/mongoid/user_oauth_spec.rb +8 -0
  94. data/spec/mongoid/user_remember_me_spec.rb +8 -0
  95. data/spec/mongoid/user_reset_password_spec.rb +8 -0
  96. data/spec/mongoid/user_spec.rb +38 -0
  97. data/spec/orm/active_record.rb +9 -0
  98. data/spec/orm/datamapper.rb +34 -0
  99. data/spec/orm/mongo_mapper.rb +11 -0
  100. data/spec/orm/mongoid.rb +18 -0
  101. data/spec/{rails3/app/models → rails_app/app/active_record}/user.rb +1 -2
  102. data/spec/rails_app/app/active_record/user_provider.rb +3 -0
  103. data/spec/rails_app/app/controllers/sorcery_controller.rb +224 -0
  104. data/spec/rails_app/app/datamapper/authentication.rb +8 -0
  105. data/spec/rails_app/app/datamapper/user.rb +7 -0
  106. data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/user.rb +2 -0
  107. data/spec/{rails3_mongo_mapper → rails_app}/config/application.rb +13 -8
  108. data/spec/rails_app/config/boot.rb +4 -0
  109. data/spec/rails_app/config/database.yml +22 -0
  110. data/spec/{rails3_mongo_mapper → rails_app}/config/environments/test.rb +2 -0
  111. data/spec/{rails3_mongoid → rails_app}/config/initializers/session_store.rb +4 -0
  112. data/spec/rails_app/config/routes.rb +42 -0
  113. data/spec/{rails3_mongo_mapper → rails_app}/config.ru +1 -1
  114. data/spec/{rails3 → rails_app}/db/migrate/activation/20101224223622_add_activation_to_users.rb +3 -3
  115. data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +22 -0
  116. data/spec/rails_app/log/development.log +1791 -0
  117. data/spec/shared_examples/controller_activity_logging_shared_examples.rb +125 -0
  118. data/spec/shared_examples/controller_oauth2_shared_examples.rb +32 -36
  119. data/spec/shared_examples/controller_oauth_shared_examples.rb +35 -28
  120. data/spec/shared_examples/controller_shared_examples.rb +203 -0
  121. data/spec/shared_examples/user_activation_shared_examples.rb +136 -97
  122. data/spec/shared_examples/user_activity_logging_shared_examples.rb +10 -10
  123. data/spec/shared_examples/user_brute_force_protection_shared_examples.rb +14 -13
  124. data/spec/shared_examples/user_oauth_shared_examples.rb +23 -15
  125. data/spec/shared_examples/user_remember_me_shared_examples.rb +32 -23
  126. data/spec/shared_examples/user_reset_password_shared_examples.rb +162 -129
  127. data/spec/shared_examples/user_shared_examples.rb +265 -190
  128. data/spec/sorcery_crypto_providers_spec.rb +74 -72
  129. data/spec/spec_helper.rb +47 -4
  130. metadata +277 -501
  131. data/Gemfile.lock +0 -175
  132. data/README.rdoc +0 -261
  133. data/lib/sorcery/controller/submodules/external/protocols/oauth1.rb +0 -46
  134. data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +0 -49
  135. data/lib/sorcery/controller/submodules/external/providers/base.rb +0 -21
  136. data/lib/sorcery/controller/submodules/external/providers/facebook.rb +0 -98
  137. data/lib/sorcery/controller/submodules/external/providers/github.rb +0 -92
  138. data/lib/sorcery/controller/submodules/external/providers/google.rb +0 -91
  139. data/lib/sorcery/controller/submodules/external/providers/linkedin.rb +0 -102
  140. data/lib/sorcery/controller/submodules/external/providers/liveid.rb +0 -92
  141. data/lib/sorcery/controller/submodules/external/providers/twitter.rb +0 -93
  142. data/lib/sorcery/controller/submodules/external/providers/vk.rb +0 -100
  143. data/lib/sorcery/controller/submodules/external/providers/xing.rb +0 -97
  144. data/lib/sorcery/test_helpers.rb +0 -5
  145. data/spec/Gemfile +0 -12
  146. data/spec/Gemfile.lock +0 -129
  147. data/spec/README.md +0 -31
  148. data/spec/Rakefile +0 -12
  149. data/spec/rails3/.gitignore +0 -4
  150. data/spec/rails3/.rspec +0 -1
  151. data/spec/rails3/Gemfile +0 -15
  152. data/spec/rails3/Gemfile.lock +0 -162
  153. data/spec/rails3/README +0 -256
  154. data/spec/rails3/Rakefile +0 -11
  155. data/spec/rails3/app/controllers/application_controller.rb +0 -208
  156. data/spec/rails3/config/application.rb +0 -46
  157. data/spec/rails3/config/boot.rb +0 -13
  158. data/spec/rails3/config/database.yml +0 -27
  159. data/spec/rails3/config/environments/development.rb +0 -26
  160. data/spec/rails3/config/environments/in_memory.rb +0 -35
  161. data/spec/rails3/config/environments/production.rb +0 -49
  162. data/spec/rails3/config/environments/test.rb +0 -35
  163. data/spec/rails3/config/initializers/session_store.rb +0 -8
  164. data/spec/rails3/config/routes.rb +0 -59
  165. data/spec/rails3/config.ru +0 -4
  166. data/spec/rails3/db/migrate/external/20101224223628_create_authentications.rb +0 -14
  167. data/spec/rails3/public/stylesheets/.gitkeep +0 -0
  168. data/spec/rails3/script/rails +0 -6
  169. data/spec/rails3/spec/controller_activity_logging_spec.rb +0 -130
  170. data/spec/rails3/spec/controller_brute_force_protection_spec.rb +0 -96
  171. data/spec/rails3/spec/controller_http_basic_auth_spec.rb +0 -50
  172. data/spec/rails3/spec/controller_oauth2_spec.rb +0 -380
  173. data/spec/rails3/spec/controller_remember_me_spec.rb +0 -96
  174. data/spec/rails3/spec/controller_session_timeout_spec.rb +0 -55
  175. data/spec/rails3/spec/controller_spec.rb +0 -182
  176. data/spec/rails3/spec/spec.opts +0 -2
  177. data/spec/rails3/spec/spec_helper.orig.rb +0 -27
  178. data/spec/rails3/spec/spec_helper.rb +0 -71
  179. data/spec/rails3/spec/user_activation_spec.rb +0 -16
  180. data/spec/rails3/spec/user_activity_logging_spec.rb +0 -8
  181. data/spec/rails3/spec/user_spec.rb +0 -36
  182. data/spec/rails3/vendor/plugins/.gitkeep +0 -0
  183. data/spec/rails3_mongo_mapper/.gitignore +0 -4
  184. data/spec/rails3_mongo_mapper/.rspec +0 -1
  185. data/spec/rails3_mongo_mapper/Gemfile +0 -16
  186. data/spec/rails3_mongo_mapper/Gemfile.lock +0 -156
  187. data/spec/rails3_mongo_mapper/Rakefile +0 -11
  188. data/spec/rails3_mongo_mapper/app/controllers/application_controller.rb +0 -122
  189. data/spec/rails3_mongo_mapper/app/helpers/application_helper.rb +0 -2
  190. data/spec/rails3_mongo_mapper/app/mailers/sorcery_mailer.rb +0 -25
  191. data/spec/rails3_mongo_mapper/app/views/layouts/application.html.erb +0 -14
  192. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  193. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  194. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  195. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  196. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  197. data/spec/rails3_mongo_mapper/config/boot.rb +0 -13
  198. data/spec/rails3_mongo_mapper/config/environment.rb +0 -5
  199. data/spec/rails3_mongo_mapper/config/environments/development.rb +0 -30
  200. data/spec/rails3_mongo_mapper/config/environments/in_memory.rb +0 -0
  201. data/spec/rails3_mongo_mapper/config/environments/production.rb +0 -49
  202. data/spec/rails3_mongo_mapper/config/initializers/backtrace_silencers.rb +0 -7
  203. data/spec/rails3_mongo_mapper/config/initializers/inflections.rb +0 -10
  204. data/spec/rails3_mongo_mapper/config/initializers/mime_types.rb +0 -5
  205. data/spec/rails3_mongo_mapper/config/initializers/mongo.rb +0 -2
  206. data/spec/rails3_mongo_mapper/config/initializers/secret_token.rb +0 -7
  207. data/spec/rails3_mongo_mapper/config/initializers/session_store.rb +0 -8
  208. data/spec/rails3_mongo_mapper/config/locales/en.yml +0 -5
  209. data/spec/rails3_mongo_mapper/config/routes.rb +0 -59
  210. data/spec/rails3_mongo_mapper/db/schema.rb +0 -23
  211. data/spec/rails3_mongo_mapper/db/seeds.rb +0 -7
  212. data/spec/rails3_mongo_mapper/lib/tasks/.gitkeep +0 -0
  213. data/spec/rails3_mongo_mapper/public/404.html +0 -26
  214. data/spec/rails3_mongo_mapper/public/422.html +0 -26
  215. data/spec/rails3_mongo_mapper/public/500.html +0 -26
  216. data/spec/rails3_mongo_mapper/public/favicon.ico +0 -0
  217. data/spec/rails3_mongo_mapper/public/images/rails.png +0 -0
  218. data/spec/rails3_mongo_mapper/public/javascripts/application.js +0 -2
  219. data/spec/rails3_mongo_mapper/public/javascripts/controls.js +0 -965
  220. data/spec/rails3_mongo_mapper/public/javascripts/dragdrop.js +0 -974
  221. data/spec/rails3_mongo_mapper/public/javascripts/effects.js +0 -1123
  222. data/spec/rails3_mongo_mapper/public/javascripts/prototype.js +0 -6001
  223. data/spec/rails3_mongo_mapper/public/javascripts/rails.js +0 -175
  224. data/spec/rails3_mongo_mapper/public/robots.txt +0 -5
  225. data/spec/rails3_mongo_mapper/public/stylesheets/.gitkeep +0 -0
  226. data/spec/rails3_mongo_mapper/script/rails +0 -6
  227. data/spec/rails3_mongo_mapper/spec/controller_spec.rb +0 -175
  228. data/spec/rails3_mongo_mapper/spec/spec.opts +0 -2
  229. data/spec/rails3_mongo_mapper/spec/spec_helper.orig.rb +0 -27
  230. data/spec/rails3_mongo_mapper/spec/spec_helper.rb +0 -55
  231. data/spec/rails3_mongo_mapper/spec/user_activation_spec.rb +0 -9
  232. data/spec/rails3_mongo_mapper/spec/user_activity_logging_spec.rb +0 -8
  233. data/spec/rails3_mongo_mapper/spec/user_brute_force_protection_spec.rb +0 -8
  234. data/spec/rails3_mongo_mapper/spec/user_oauth_spec.rb +0 -8
  235. data/spec/rails3_mongo_mapper/spec/user_remember_me_spec.rb +0 -8
  236. data/spec/rails3_mongo_mapper/spec/user_reset_password_spec.rb +0 -8
  237. data/spec/rails3_mongo_mapper/spec/user_spec.rb +0 -37
  238. data/spec/rails3_mongo_mapper/vendor/plugins/.gitkeep +0 -0
  239. data/spec/rails3_mongoid/.gitignore +0 -4
  240. data/spec/rails3_mongoid/.rspec +0 -1
  241. data/spec/rails3_mongoid/Gemfile +0 -15
  242. data/spec/rails3_mongoid/Gemfile.lock +0 -146
  243. data/spec/rails3_mongoid/Rakefile +0 -11
  244. data/spec/rails3_mongoid/app/controllers/application_controller.rb +0 -127
  245. data/spec/rails3_mongoid/app/helpers/application_helper.rb +0 -2
  246. data/spec/rails3_mongoid/app/mailers/sorcery_mailer.rb +0 -25
  247. data/spec/rails3_mongoid/app/views/layouts/application.html.erb +0 -14
  248. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  249. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  250. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.html.erb +0 -17
  251. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  252. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  253. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  254. data/spec/rails3_mongoid/config/application.rb +0 -51
  255. data/spec/rails3_mongoid/config/boot.rb +0 -13
  256. data/spec/rails3_mongoid/config/environment.rb +0 -5
  257. data/spec/rails3_mongoid/config/environments/development.rb +0 -26
  258. data/spec/rails3_mongoid/config/environments/in_memory.rb +0 -0
  259. data/spec/rails3_mongoid/config/environments/production.rb +0 -49
  260. data/spec/rails3_mongoid/config/environments/test.rb +0 -35
  261. data/spec/rails3_mongoid/config/initializers/backtrace_silencers.rb +0 -7
  262. data/spec/rails3_mongoid/config/initializers/inflections.rb +0 -10
  263. data/spec/rails3_mongoid/config/initializers/mime_types.rb +0 -5
  264. data/spec/rails3_mongoid/config/initializers/secret_token.rb +0 -7
  265. data/spec/rails3_mongoid/config/locales/en.yml +0 -5
  266. data/spec/rails3_mongoid/config/mongoid.yml +0 -7
  267. data/spec/rails3_mongoid/config/routes.rb +0 -59
  268. data/spec/rails3_mongoid/config.ru +0 -4
  269. data/spec/rails3_mongoid/db/schema.rb +0 -23
  270. data/spec/rails3_mongoid/db/seeds.rb +0 -7
  271. data/spec/rails3_mongoid/lib/tasks/.gitkeep +0 -0
  272. data/spec/rails3_mongoid/public/404.html +0 -26
  273. data/spec/rails3_mongoid/public/422.html +0 -26
  274. data/spec/rails3_mongoid/public/500.html +0 -26
  275. data/spec/rails3_mongoid/public/favicon.ico +0 -0
  276. data/spec/rails3_mongoid/public/images/rails.png +0 -0
  277. data/spec/rails3_mongoid/public/javascripts/application.js +0 -2
  278. data/spec/rails3_mongoid/public/javascripts/controls.js +0 -965
  279. data/spec/rails3_mongoid/public/javascripts/dragdrop.js +0 -974
  280. data/spec/rails3_mongoid/public/javascripts/effects.js +0 -1123
  281. data/spec/rails3_mongoid/public/javascripts/prototype.js +0 -6001
  282. data/spec/rails3_mongoid/public/javascripts/rails.js +0 -175
  283. data/spec/rails3_mongoid/public/robots.txt +0 -5
  284. data/spec/rails3_mongoid/public/stylesheets/.gitkeep +0 -0
  285. data/spec/rails3_mongoid/script/rails +0 -6
  286. data/spec/rails3_mongoid/spec/controller_activity_logging_spec.rb +0 -111
  287. data/spec/rails3_mongoid/spec/controller_spec.rb +0 -186
  288. data/spec/rails3_mongoid/spec/spec.opts +0 -2
  289. data/spec/rails3_mongoid/spec/spec_helper.orig.rb +0 -27
  290. data/spec/rails3_mongoid/spec/spec_helper.rb +0 -55
  291. data/spec/rails3_mongoid/spec/user_activation_spec.rb +0 -9
  292. data/spec/rails3_mongoid/spec/user_activity_logging_spec.rb +0 -8
  293. data/spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb +0 -8
  294. data/spec/rails3_mongoid/spec/user_oauth_spec.rb +0 -8
  295. data/spec/rails3_mongoid/spec/user_remember_me_spec.rb +0 -8
  296. data/spec/rails3_mongoid/spec/user_reset_password_spec.rb +0 -8
  297. data/spec/rails3_mongoid/spec/user_spec.rb +0 -38
  298. data/spec/rails3_mongoid/vendor/plugins/.gitkeep +0 -0
  299. /data/lib/sorcery/{controller/submodules/external/protocols → protocols}/certs/ca-bundle.crt +0 -0
  300. /data/spec/{rails3/app/models → rails_app/app/active_record}/authentication.rb +0 -0
  301. /data/spec/{rails3 → rails_app}/app/helpers/application_helper.rb +0 -0
  302. /data/spec/{rails3 → rails_app}/app/mailers/sorcery_mailer.rb +0 -0
  303. /data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/authentication.rb +0 -0
  304. /data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/user.rb +0 -0
  305. /data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/authentication.rb +0 -0
  306. /data/spec/{rails3 → rails_app}/app/views/application/index.html.erb +0 -0
  307. /data/spec/{rails3 → rails_app}/app/views/layouts/application.html.erb +0 -0
  308. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.html.erb +0 -0
  309. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.text.erb +0 -0
  310. /data/spec/{rails3/app/views/sorcery_mailer/activation_success_email.html.erb → rails_app/app/views/sorcery_mailer/activation_needed_email.html.erb} +0 -0
  311. /data/spec/{rails3_mongo_mapper → rails_app}/app/views/sorcery_mailer/activation_success_email.html.erb +0 -0
  312. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_success_email.text.erb +0 -0
  313. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.html.erb +0 -0
  314. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.text.erb +0 -0
  315. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/send_unlock_token_email.text.erb +0 -0
  316. /data/spec/{rails3 → rails_app}/config/environment.rb +0 -0
  317. /data/spec/{rails3 → rails_app}/config/initializers/backtrace_silencers.rb +0 -0
  318. /data/spec/{rails3 → rails_app}/config/initializers/inflections.rb +0 -0
  319. /data/spec/{rails3 → rails_app}/config/initializers/mime_types.rb +0 -0
  320. /data/spec/{rails3 → rails_app}/config/initializers/secret_token.rb +0 -0
  321. /data/spec/{rails3 → rails_app}/config/locales/en.yml +0 -0
  322. /data/spec/{rails3 → rails_app}/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -0
  323. /data/spec/{rails3 → rails_app}/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -0
  324. /data/spec/{rails3 → rails_app}/db/migrate/core/20101224223620_create_users.rb +0 -0
  325. /data/spec/{rails3 → rails_app}/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -0
  326. /data/spec/{rails3 → rails_app}/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -0
  327. /data/spec/{rails3 → rails_app}/db/schema.rb +0 -0
  328. /data/spec/{rails3 → rails_app}/db/seeds.rb +0 -0
  329. /data/spec/{rails3 → rails_app}/public/404.html +0 -0
  330. /data/spec/{rails3 → rails_app}/public/422.html +0 -0
  331. /data/spec/{rails3 → rails_app}/public/500.html +0 -0
  332. /data/spec/{rails3 → rails_app}/public/favicon.ico +0 -0
  333. /data/spec/{rails3 → rails_app}/public/images/rails.png +0 -0
  334. /data/spec/{rails3 → rails_app}/public/javascripts/application.js +0 -0
  335. /data/spec/{rails3 → rails_app}/public/javascripts/controls.js +0 -0
  336. /data/spec/{rails3 → rails_app}/public/javascripts/dragdrop.js +0 -0
  337. /data/spec/{rails3 → rails_app}/public/javascripts/effects.js +0 -0
  338. /data/spec/{rails3 → rails_app}/public/javascripts/prototype.js +0 -0
  339. /data/spec/{rails3 → rails_app}/public/javascripts/rails.js +0 -0
  340. /data/spec/{rails3 → rails_app}/public/robots.txt +0 -0
  341. /data/spec/{rails3/lib/tasks → rails_app/public/stylesheets}/.gitkeep +0 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 73519a45c58c078688dd72b3ef7dc52b2b05ba92
4
+ data.tar.gz: a715fe10e2de64c09d76ec93e658849dd3b9112b
5
+ SHA512:
6
+ metadata.gz: 08d0df3e5b8970ec81233d6dbb373cdabb4ff0e219dce27c7c790756507a36d683557ca11d19b70ea8e85217646ef20259892b6e0ee55f8d35c7d25cfb8df636
7
+ data.tar.gz: 66cb33e9e89b23036e1470bf0b937da42e68828ecdb821bc736b471cf938c23fa9eb53911ac35050704748ebdfd1790caa27af12ee97fdd26b58c7fae4cf30f9
data/.gitignore ADDED
@@ -0,0 +1,55 @@
1
+ # rcov generated
2
+ coverage
3
+
4
+ # rdoc generated
5
+ rdoc
6
+
7
+ # yard generated
8
+ doc
9
+ .yardoc
10
+
11
+ # bundler
12
+ .bundle
13
+
14
+ # jeweler generated
15
+ pkg
16
+
17
+ # for RVM
18
+ .rvmrc
19
+
20
+ # for RubyMine
21
+ .idea
22
+
23
+ # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
24
+ #
25
+ # * Create a file at ~/.gitignore
26
+ # * Include files you want ignored
27
+ # * Run: git config --global core.excludesfile ~/.gitignore
28
+ #
29
+ # After doing this, these files will be ignored in all your git projects,
30
+ # saving you from having to 'pollute' every project you touch with them
31
+ #
32
+ # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
33
+ #
34
+ # For MacOS:
35
+ #
36
+ #.DS_Store
37
+ #
38
+ # For TextMate
39
+ #*.tmproj
40
+ tmtags
41
+ #
42
+ # For emacs:
43
+ #*~
44
+ #\#*
45
+ #.\#*
46
+ #
47
+ # For vim:
48
+ #*.swp
49
+ #
50
+ spec/rails_app/log/*
51
+ *.log
52
+ *.sqlite3
53
+ Gemfile*.lock
54
+ gemfiles/*.lock
55
+ .ruby-version
data/.travis.yml CHANGED
@@ -1,3 +1,71 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.2
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1
6
+
7
+ services: mongodb
8
+
9
+ gemfile:
10
+ - Gemfile
11
+ - Gemfile.rails4
12
+
13
+ env:
14
+ - "SORCERY_ORM=active_record"
15
+ - "SORCERY_ORM=mongoid"
16
+ - "SORCERY_ORM=mongo_mapper"
17
+ - "SORCERY_ORM=datamapper"
18
+
19
+ before_script:
20
+ - mysql -e 'create database sorcery_test;'
21
+
22
+ matrix:
23
+ exclude:
24
+ - rvm: 1.9.3
25
+ gemfile: Gemfile.rails4
26
+ env: "SORCERY_ORM=datamapper"
27
+
28
+ - rvm: 2.0.0
29
+ gemfile: Gemfile.rails4
30
+ env: "SORCERY_ORM=datamapper"
31
+
32
+ - rvm: 2.1
33
+ gemfile: Gemfile.rails4
34
+ env: "SORCERY_ORM=datamapper"
35
+
36
+ include:
37
+ - rvm: 1.9.3
38
+ gemfile: gemfiles/mongoid-rails41.gemfile
39
+ env: "SORCERY_ORM=mongoid"
40
+
41
+ - rvm: 2.0.0
42
+ gemfile: gemfiles/mongoid-rails41.gemfile
43
+ env: "SORCERY_ORM=mongoid"
44
+
45
+ - rvm: 2.1
46
+ gemfile: gemfiles/mongoid-rails41.gemfile
47
+ env: "SORCERY_ORM=mongoid"
48
+
49
+ - rvm: 1.9.3
50
+ gemfile: gemfiles/mongo_mapper-rails41.gemfile
51
+ env: "SORCERY_ORM=mongo_mapper"
52
+
53
+ - rvm: 2.0.0
54
+ gemfile: gemfiles/mongo_mapper-rails41.gemfile
55
+ env: "SORCERY_ORM=mongo_mapper"
56
+
57
+ - rvm: 2.1
58
+ gemfile: gemfiles/mongo_mapper-rails41.gemfile
59
+ env: "SORCERY_ORM=mongo_mapper"
60
+
61
+ - rvm: 1.9.3
62
+ gemfile: gemfiles/active_record-rails41.gemfile
63
+ env: "SORCERY_ORM=active_record"
64
+
65
+ - rvm: 2.0.0
66
+ gemfile: gemfiles/active_record-rails41.gemfile
67
+ env: "SORCERY_ORM=active_record"
68
+
69
+ - rvm: 2.1
70
+ gemfile: gemfiles/active_record-rails41.gemfile
71
+ env: "SORCERY_ORM=active_record"
data/CHANGELOG.md ADDED
@@ -0,0 +1,248 @@
1
+ # Changelog
2
+
3
+ ## 0.8.6 (not released)
4
+
5
+ * `current_user` returns `nil` instead of `false` if there's no user loggd in (#493)
6
+ * MongoMapper adapter does not override `save!` method anymore. However due to ORM's lack of support for `validate: false` in `save!`, the combination of `validate: false` and `raise_on_failure: true` is not possible in MongoMapper. The errors will not be raised in this situation. (#151)
7
+ * Fixed rename warnings for bcrypt-ruby
8
+ * The way Sorcery adapters are included has been changed due to problem with multiple `included` blocks error in `ActiveSupport::Concern` class (#527)
9
+ * Session timeout works with new cookie serializer introduced in Rails 4.1
10
+ * Rails 4.1 compatibility bugs were fixed, this version is fully supported (#538)
11
+ * VK providers now supports `scope` option
12
+ * Support for DataMapper added
13
+ * Helpers for integration tests were added
14
+ * Fixed problems with special characters in user login attributes (MongoMapper & Mongoid)
15
+ * Fixed remaining `password_confirmation` value - it is now cleared just like `password`
16
+
17
+ ## 0.8.5
18
+ * Fixed add_provider_to_user with CamelCased authentications_class model (#382)
19
+ * Fixed unlock_token_mailer_disabled to only disable automatic mailing (#467)
20
+ * Make send_email_* methods easier to overwrite (#473)
21
+ * Don't add `:username` field for User. Config option `username_attribute_names` is now `:email` by default instead of `:username`.
22
+
23
+ If you're using `username` as main field for users to login, you'll need to tune your Sorcery config:
24
+
25
+ ```ruby
26
+ config.user_config do |user|
27
+ # ...
28
+ user.username_attribute_names = [:username]
29
+ end
30
+ ```
31
+ * `rails generate sorcery:install` now works inside Rails engine
32
+
33
+ ## 0.8.4
34
+
35
+ * Few security fixes in `external` module
36
+
37
+ ## 0.8.3 (yanked because of bad Jeweler release)
38
+
39
+ ## 0.8.2
40
+
41
+ * Activity logging feature has a new column called `last_login_from_ip_address` (string type). If you use ActiveRecord, you will have to add this column to DB ([#465](https://github.com/NoamB/sorcery/issues/465))
42
+
43
+ ## 0.8.1
44
+ <!-- TO BE WRITTEN -->
45
+
46
+ ## 0.8.0
47
+ <!-- TO BE WRITTEN -->
48
+
49
+ ## 0.7.13
50
+ <!-- TO BE WRITTEN -->
51
+
52
+ ## 0.7.12
53
+ <!-- TO BE WRITTEN -->
54
+
55
+ ## 0.7.11
56
+ <!-- TO BE WRITTEN -->
57
+
58
+ ## 0.7.10
59
+ <!-- TO BE WRITTEN -->
60
+
61
+ ## 0.7.9
62
+ <!-- TO BE WRITTEN -->
63
+
64
+ ## 0.7.8
65
+ <!-- TO BE WRITTEN -->
66
+
67
+ ## 0.7.7
68
+ <!-- TO BE WRITTEN -->
69
+
70
+ ## 0.7.6
71
+ <!-- TO BE WRITTEN -->
72
+
73
+ ## 0.7.5
74
+ <!-- TO BE WRITTEN -->
75
+
76
+ ## 0.7.1-0.7.4
77
+
78
+ * Fixed a bug in the new generator
79
+ * Many bugfixes
80
+ * MongoMapper added to supported ORMs list, thanks @kbighorse
81
+ * Sinatra support discontinued!
82
+ * New generator contributed by @ahazem
83
+ * Cookie domain setting contributed by @Highcode
84
+
85
+
86
+ ## 0.7.0
87
+
88
+ * Many bugfixes
89
+ * Added default SSL certificate for oauth2
90
+ * Added multi-username ability
91
+ * Security fixes (CSRF, cookie digesting)
92
+ * Added auto_login(user) to the API
93
+ * Updated gem versions of oauth(1/2)
94
+ * Added logged_in? as a view helper
95
+ * Github provider added to external submodule
96
+
97
+
98
+ ## 0.6.1
99
+
100
+ Gemfile versions updated due to public demand.
101
+ (bcrypt 3.0.0 and oauth2 0.4.1)
102
+
103
+
104
+ ## 0.6.0
105
+
106
+ Fixes issues with external user_hash not including some fields, and an issue with User model not loaded when user_class is called. Now config.user_class should be a string or a symbol.
107
+
108
+ Improved specs.
109
+
110
+ ## 0.5.3
111
+
112
+ Fixed #9
113
+ Fixed hardcoded method names in remember_me submodule.
114
+ Improved specs.
115
+
116
+ ## 0.5.21
117
+
118
+ Fixed typo in initializer - MUST be "config.user_class = User"
119
+
120
+ ## 0.5.2
121
+
122
+ Fixed #3 and #4 - Modular Sinatra apps work now, and User model isn't cached in development mode.
123
+
124
+ ## 0.5.1
125
+
126
+ Fixed bug in reset_password - after reset can't login due to bad salt creation. Affected only Mongoid.
127
+
128
+ ## 0.5.0
129
+
130
+ Added support for Mongoid! (still buggy and not recommended for serious use)
131
+
132
+ 'reset_password!(:password => new_password)' changed into 'change_password!(new_password)'
133
+
134
+ ## 0.4.2
135
+
136
+ Added test helpers for Rails 3 & Sinatra.
137
+
138
+ ## 0.4.1
139
+
140
+ Fixing Rails app name in initializer.
141
+
142
+ ## 0.4.0
143
+
144
+ Changed the way Sorcery is configured.
145
+ Now inside the model only add:
146
+
147
+ ```
148
+ authenticates_with_sorcery!
149
+ ```
150
+
151
+ In the controller no code is needed! All configuration is done in an initializer.
152
+ Added a rake task to create it.
153
+
154
+ ```
155
+ rake sorcery:bootstrap
156
+ ```
157
+
158
+ ## 0.3.1
159
+
160
+ Renamed "oauth" module to "external" and made API prettier.
161
+ ```
162
+ auth_at_provider(provider) => login_at(provider)
163
+ login_from_access_token(provider) => login_from(provider)
164
+ create_from_provider!(provider) => create_from(provider)
165
+ ```
166
+
167
+ ## 0.3.0
168
+
169
+ Added Sinatra support!
170
+
171
+
172
+ Added Rails 3 generator for migrations
173
+
174
+
175
+ ## 0.2.1
176
+
177
+ Fixed bug with OAuth submodule - oauth gems were not required properly in gem.
178
+
179
+
180
+ Fixed bug with OAuth submodule - Authentications class was not passed between model and controller in all cases resulting in Nil exception.
181
+
182
+
183
+ ## 0.2.0
184
+
185
+ Added OAuth submodule.
186
+
187
+ ### OAuth:
188
+ * OAuth1 and OAuth2 support (currently twitter & facebook)
189
+ * configurable db field names and authentications table.
190
+
191
+ Some bug fixes: 'return_to' feature, brute force permanent ban.
192
+
193
+
194
+ ## 0.1.4
195
+
196
+ Added activity logging submodule.
197
+
198
+
199
+ ### Activity Logging:
200
+ * automatic logging of last login, last logout and last activity time.
201
+ * an easy method of collecting the list of currently logged in users.
202
+ * configurable timeout by which to decide whether to include a user in the list of logged in users.
203
+
204
+
205
+ Fixed bug in basic_auth - it didn't set the session[:user_id] on successful login and tried to relogin from basic_auth on every action.
206
+
207
+
208
+ Added Reset Password hammering protection and updated the API.
209
+
210
+
211
+ Totally rewritten Brute Force Protection submodule.
212
+
213
+
214
+ ## 0.1.3
215
+
216
+ Added support for Basic HTTP Auth.
217
+
218
+ ## 0.1.2
219
+
220
+ Separated mailers between user_activation and password_reset and updated readme.
221
+
222
+ ## 0.1.1
223
+
224
+ Fixed bug with BCrypt not being used properly by the lib and thus not working for authentication.
225
+
226
+ ## 0.1.0
227
+
228
+ ### Core Features:
229
+ * login/logout, optional redirect on login to where the user tried to reach before, configurable redirect for non-logged-in users.
230
+ * password encryption, algorithms: bcrypt(default), md5, sha1, sha256, sha512, aes256, custom(yours!), none. Configurable stretches and salt.
231
+ * configurable attribute names for username, password and email.
232
+ ### User Activation:
233
+ * User activation by email with optional success email.
234
+ * configurable attribute names.
235
+ * configurable mailer.
236
+ * Optionally prevent active users to login.
237
+ ### Password Reset:
238
+ * Reset password with email verification.
239
+ * configurable mailer, method name, and attribute name.
240
+ ### Remember Me:
241
+ * Remember me with configurable expiration.
242
+ * configurable attribute names.
243
+ ## Session Timeout:
244
+ * Configurable session timeout.
245
+ * Optionally session timeout will be calculated from last user action.
246
+ ### Brute Force Protection:
247
+ * Brute force login hammering protection.
248
+ * configurable logins before ban, logins within time period before ban, ban time and ban action.
data/Gemfile CHANGED
@@ -1,27 +1,21 @@
1
1
  source 'https://rubygems.org'
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
- gem 'oauth', "~> 0.4.4"
6
- gem 'oauth2', "~> 0.8.0"
7
- gem 'bcrypt-ruby', "~> 3.0.0"
8
2
 
9
- # Add dependencies to develop your gem here.
10
- # Include everything needed to run rake, tests, features, etc.
11
- group :development do
12
- gem 'abstract', '>= 1.0.0'
13
- gem "rails", ">= 3.0.0"
14
- gem 'json', ">= 1.7.7"
15
- gem "rspec", "~> 2.5.0"
16
- gem 'rspec-rails', "~> 2.5.0"
17
- #gem 'ruby-debug19'
18
- gem 'sqlite3'
19
- gem "yard", "~> 0.6.0"
20
- gem "bundler", ">= 1.1.0"
21
- gem "jeweler", "~> 1.8.3"
22
- gem 'simplecov', '>= 0.3.8', :require => false # Will install simplecov-html as a dependency
23
- gem 'timecop'
24
- gem 'capybara'
3
+ gem 'rails', '~> 3.2'
4
+ gem 'sqlite3'
5
+
6
+ group :mongomapper do
25
7
  gem 'mongo_mapper'
8
+ end
9
+
10
+ group :mongoid do
26
11
  gem 'mongoid', "~> 2.4.4"
12
+ gem 'bson_ext'
27
13
  end
14
+
15
+ group :datamapper do
16
+ gem 'mysql2'
17
+ gem 'data_mapper'
18
+ gem 'dm-mysql-adapter'
19
+ end
20
+
21
+ gemspec
data/Gemfile.rails4 ADDED
@@ -0,0 +1,22 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'sqlite3'
4
+
5
+ group :mongomapper do
6
+ gem 'mongo_mapper', github: 'jnunemaker/mongomapper'
7
+ end
8
+
9
+ group :mongoid do
10
+ gem 'mongoid', github: 'mongoid/mongoid', ref: 'f91feef0a0c6b83a1b878e154f1014536aa1c298'
11
+ gem 'bson_ext'
12
+ end
13
+
14
+ group :datamapper do
15
+ gem 'mysql2'
16
+ gem 'data_mapper'
17
+ gem 'dm-mysql-adapter'
18
+ end
19
+
20
+ gem 'rails', '~> 4.0.1'
21
+
22
+ gemspec