sorcery 0.6.1 → 0.7.10

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 (205) hide show
  1. data/.travis.yml +2 -0
  2. data/Gemfile +2 -23
  3. data/Gemfile.lock +105 -77
  4. data/README.rdoc +32 -59
  5. data/Rakefile +29 -1
  6. data/VERSION +1 -1
  7. data/lib/generators/sorcery/USAGE +22 -0
  8. data/lib/generators/sorcery/install_generator.rb +77 -0
  9. data/lib/generators/sorcery/templates/initializer.rb +406 -0
  10. data/lib/generators/sorcery/templates/migration/activity_logging.rb +17 -0
  11. data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +13 -0
  12. data/lib/generators/{sorcery_migration/templates → sorcery/templates/migration}/core.rb +3 -3
  13. data/lib/generators/{sorcery_migration/templates → sorcery/templates/migration}/external.rb +1 -1
  14. data/lib/generators/sorcery/templates/migration/remember_me.rb +15 -0
  15. data/lib/generators/sorcery/templates/migration/reset_password.rb +17 -0
  16. data/lib/generators/sorcery/templates/migration/user_activation.rb +17 -0
  17. data/lib/sorcery/controller/submodules/activity_logging.rb +24 -10
  18. data/lib/sorcery/controller/submodules/brute_force_protection.rb +3 -2
  19. data/lib/sorcery/controller/submodules/external/protocols/certs/ca-bundle.crt +5182 -0
  20. data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +28 -9
  21. data/lib/sorcery/controller/submodules/external/providers/facebook.rb +12 -4
  22. data/lib/sorcery/controller/submodules/external/providers/github.rb +89 -0
  23. data/lib/sorcery/controller/submodules/external/providers/google.rb +90 -0
  24. data/lib/sorcery/controller/submodules/external/providers/liveid.rb +91 -0
  25. data/lib/sorcery/controller/submodules/external/providers/twitter.rb +8 -2
  26. data/lib/sorcery/controller/submodules/external.rb +17 -4
  27. data/lib/sorcery/controller/submodules/http_basic_auth.rb +1 -1
  28. data/lib/sorcery/controller/submodules/remember_me.rb +26 -15
  29. data/lib/sorcery/controller/submodules/session_timeout.rb +4 -4
  30. data/lib/sorcery/controller.rb +61 -38
  31. data/lib/sorcery/crypto_providers/aes256.rb +7 -3
  32. data/lib/sorcery/engine.rb +1 -0
  33. data/lib/sorcery/model/adapters/active_record.rb +17 -1
  34. data/lib/sorcery/model/adapters/mongo_mapper.rb +54 -0
  35. data/lib/sorcery/model/adapters/mongoid.rb +22 -4
  36. data/lib/sorcery/model/submodules/activity_logging.rb +4 -4
  37. data/lib/sorcery/model/submodules/brute_force_protection.rb +53 -14
  38. data/lib/sorcery/model/submodules/remember_me.rb +10 -3
  39. data/lib/sorcery/model/submodules/reset_password.rb +26 -11
  40. data/lib/sorcery/model/submodules/user_activation.rb +28 -10
  41. data/lib/sorcery/model/temporary_token.rb +8 -1
  42. data/lib/sorcery/model.rb +51 -19
  43. data/lib/sorcery/test_helpers/internal/rails.rb +1 -1
  44. data/lib/sorcery/test_helpers/rails.rb +2 -2
  45. data/lib/sorcery.rb +8 -7
  46. data/sorcery.gemspec +110 -223
  47. data/spec/Gemfile +1 -1
  48. data/spec/Gemfile.lock +26 -26
  49. data/spec/README.md +31 -0
  50. data/spec/rails3/Gemfile +5 -3
  51. data/spec/rails3/Gemfile.lock +74 -48
  52. data/spec/rails3/app/controllers/application_controller.rb +70 -23
  53. data/spec/rails3/app/mailers/sorcery_mailer.rb +7 -0
  54. data/spec/rails3/app/views/application/index.html.erb +17 -0
  55. data/spec/rails3/app/views/sorcery_mailer/send_unlock_token_email.text.erb +1 -0
  56. data/spec/rails3/config/environments/in_memory.rb +35 -0
  57. data/spec/rails3/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +2 -0
  58. data/spec/rails3/spec/controller_activity_logging_spec.rb +33 -3
  59. data/spec/rails3/spec/controller_brute_force_protection_spec.rb +25 -3
  60. data/spec/rails3/spec/controller_oauth2_spec.rb +170 -25
  61. data/spec/rails3/spec/controller_remember_me_spec.rb +37 -6
  62. data/spec/rails3/spec/controller_session_timeout_spec.rb +4 -4
  63. data/spec/rails3/spec/controller_spec.rb +60 -2
  64. data/spec/rails3/spec/integration_spec.rb +23 -0
  65. data/spec/rails3/spec/spec_helper.rb +6 -5
  66. data/spec/rails3_mongo_mapper/.gitignore +4 -0
  67. data/spec/rails3_mongo_mapper/.rspec +1 -0
  68. data/spec/{sinatra_modular → rails3_mongo_mapper}/Gemfile +6 -5
  69. data/spec/rails3_mongo_mapper/Gemfile.lock +154 -0
  70. data/spec/{sinatra → rails3_mongo_mapper}/Rakefile +3 -3
  71. data/spec/rails3_mongo_mapper/app/controllers/application_controller.rb +108 -0
  72. data/spec/rails3_mongo_mapper/app/helpers/application_helper.rb +2 -0
  73. data/spec/rails3_mongo_mapper/app/models/authentication.rb +6 -0
  74. data/spec/rails3_mongo_mapper/app/models/user.rb +5 -0
  75. data/spec/rails3_mongo_mapper/app/views/layouts/application.html.erb +14 -0
  76. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.html.erb +17 -0
  77. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.text.erb +9 -0
  78. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_success_email.html.erb +17 -0
  79. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_success_email.text.erb +9 -0
  80. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.html.erb +16 -0
  81. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.text.erb +8 -0
  82. data/spec/rails3_mongo_mapper/config/application.rb +51 -0
  83. data/spec/rails3_mongo_mapper/config/boot.rb +13 -0
  84. data/spec/rails3_mongo_mapper/config/environment.rb +5 -0
  85. data/spec/rails3_mongo_mapper/config/environments/development.rb +30 -0
  86. data/spec/rails3_mongo_mapper/config/environments/in_memory.rb +0 -0
  87. data/spec/rails3_mongo_mapper/config/environments/production.rb +49 -0
  88. data/spec/rails3_mongo_mapper/config/environments/test.rb +35 -0
  89. data/spec/rails3_mongo_mapper/config/initializers/backtrace_silencers.rb +7 -0
  90. data/spec/rails3_mongo_mapper/config/initializers/inflections.rb +10 -0
  91. data/spec/rails3_mongo_mapper/config/initializers/mime_types.rb +5 -0
  92. data/spec/rails3_mongo_mapper/config/initializers/mongo.rb +2 -0
  93. data/spec/rails3_mongo_mapper/config/initializers/secret_token.rb +7 -0
  94. data/spec/rails3_mongo_mapper/config/initializers/session_store.rb +8 -0
  95. data/spec/rails3_mongo_mapper/config/locales/en.yml +5 -0
  96. data/spec/rails3_mongo_mapper/config/routes.rb +59 -0
  97. data/spec/rails3_mongo_mapper/config.ru +4 -0
  98. data/spec/rails3_mongo_mapper/db/schema.rb +23 -0
  99. data/spec/rails3_mongo_mapper/db/seeds.rb +7 -0
  100. data/spec/rails3_mongo_mapper/lib/tasks/.gitkeep +0 -0
  101. data/spec/rails3_mongo_mapper/public/404.html +26 -0
  102. data/spec/rails3_mongo_mapper/public/422.html +26 -0
  103. data/spec/rails3_mongo_mapper/public/500.html +26 -0
  104. data/spec/rails3_mongo_mapper/public/favicon.ico +0 -0
  105. data/spec/rails3_mongo_mapper/public/images/rails.png +0 -0
  106. data/spec/rails3_mongo_mapper/public/javascripts/application.js +2 -0
  107. data/spec/rails3_mongo_mapper/public/javascripts/controls.js +965 -0
  108. data/spec/rails3_mongo_mapper/public/javascripts/dragdrop.js +974 -0
  109. data/spec/rails3_mongo_mapper/public/javascripts/effects.js +1123 -0
  110. data/spec/rails3_mongo_mapper/public/javascripts/prototype.js +6001 -0
  111. data/spec/rails3_mongo_mapper/public/javascripts/rails.js +175 -0
  112. data/spec/rails3_mongo_mapper/public/robots.txt +5 -0
  113. data/spec/rails3_mongo_mapper/public/stylesheets/.gitkeep +0 -0
  114. data/spec/rails3_mongo_mapper/script/rails +6 -0
  115. data/spec/rails3_mongo_mapper/spec/controller_spec.rb +163 -0
  116. data/spec/rails3_mongo_mapper/spec/spec_helper.orig.rb +27 -0
  117. data/spec/rails3_mongo_mapper/spec/spec_helper.rb +55 -0
  118. data/spec/rails3_mongo_mapper/spec/user_activation_spec.rb +9 -0
  119. data/spec/rails3_mongo_mapper/spec/user_activity_logging_spec.rb +8 -0
  120. data/spec/rails3_mongo_mapper/spec/user_brute_force_protection_spec.rb +8 -0
  121. data/spec/rails3_mongo_mapper/spec/user_oauth_spec.rb +8 -0
  122. data/spec/rails3_mongo_mapper/spec/user_remember_me_spec.rb +8 -0
  123. data/spec/rails3_mongo_mapper/spec/user_reset_password_spec.rb +8 -0
  124. data/spec/rails3_mongo_mapper/spec/user_spec.rb +37 -0
  125. data/spec/rails3_mongo_mapper/vendor/plugins/.gitkeep +0 -0
  126. data/spec/rails3_mongoid/Gemfile +2 -1
  127. data/spec/rails3_mongoid/Gemfile.lock +46 -45
  128. data/spec/rails3_mongoid/app/controllers/application_controller.rb +5 -0
  129. data/spec/rails3_mongoid/config/mongoid.yml +1 -1
  130. data/spec/rails3_mongoid/script/rails +0 -0
  131. data/spec/rails3_mongoid/spec/controller_activity_logging_spec.rb +105 -0
  132. data/spec/rails3_mongoid/spec/controller_spec.rb +174 -0
  133. data/spec/rails3_mongoid/spec/user_spec.rb +1 -0
  134. data/spec/shared_examples/user_activation_shared_examples.rb +72 -42
  135. data/spec/shared_examples/user_remember_me_shared_examples.rb +2 -1
  136. data/spec/shared_examples/user_reset_password_shared_examples.rb +81 -28
  137. data/spec/shared_examples/user_shared_examples.rb +36 -8
  138. data/spec/sorcery_crypto_providers_spec.rb +5 -1
  139. metadata +239 -346
  140. data/lib/generators/sorcery_migration/sorcery_migration_generator.rb +0 -24
  141. data/lib/generators/sorcery_migration/templates/activity_logging.rb +0 -17
  142. data/lib/generators/sorcery_migration/templates/brute_force_protection.rb +0 -11
  143. data/lib/generators/sorcery_migration/templates/remember_me.rb +0 -15
  144. data/lib/generators/sorcery_migration/templates/reset_password.rb +0 -13
  145. data/lib/generators/sorcery_migration/templates/user_activation.rb +0 -17
  146. data/lib/sorcery/controller/adapters/sinatra.rb +0 -104
  147. data/lib/sorcery/initializers/initializer.rb +0 -178
  148. data/lib/sorcery/sinatra.rb +0 -4
  149. data/lib/sorcery/test_helpers/internal/sinatra.rb +0 -74
  150. data/lib/sorcery/test_helpers/internal/sinatra_modular.rb +0 -74
  151. data/lib/sorcery/test_helpers/sinatra.rb +0 -88
  152. data/spec/rails3/Rakefile.unused +0 -7
  153. data/spec/rails3/public/index.html +0 -239
  154. data/spec/sinatra/Gemfile +0 -15
  155. data/spec/sinatra/Gemfile.lock +0 -117
  156. data/spec/sinatra/authentication.rb +0 -3
  157. data/spec/sinatra/db/migrate/activation/20101224223622_add_activation_to_users.rb +0 -17
  158. data/spec/sinatra/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -17
  159. data/spec/sinatra/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -11
  160. data/spec/sinatra/db/migrate/core/20101224223620_create_users.rb +0 -16
  161. data/spec/sinatra/db/migrate/external/20101224223628_create_authentications.rb +0 -14
  162. data/spec/sinatra/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -15
  163. data/spec/sinatra/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -13
  164. data/spec/sinatra/filters.rb +0 -27
  165. data/spec/sinatra/modular.rb +0 -157
  166. data/spec/sinatra/myapp.rb +0 -133
  167. data/spec/sinatra/spec/controller_activity_logging_spec.rb +0 -85
  168. data/spec/sinatra/spec/controller_brute_force_protection_spec.rb +0 -70
  169. data/spec/sinatra/spec/controller_http_basic_auth_spec.rb +0 -53
  170. data/spec/sinatra/spec/controller_oauth2_spec.rb +0 -99
  171. data/spec/sinatra/spec/controller_oauth_spec.rb +0 -100
  172. data/spec/sinatra/spec/controller_remember_me_spec.rb +0 -64
  173. data/spec/sinatra/spec/controller_session_timeout_spec.rb +0 -57
  174. data/spec/sinatra/spec/controller_spec.rb +0 -120
  175. data/spec/sinatra/spec/spec_helper.rb +0 -45
  176. data/spec/sinatra/user.rb +0 -6
  177. data/spec/sinatra/views/test_login.erb +0 -4
  178. data/spec/sinatra_modular/Gemfile.lock +0 -117
  179. data/spec/sinatra_modular/Rakefile +0 -11
  180. data/spec/sinatra_modular/authentication.rb +0 -3
  181. data/spec/sinatra_modular/db/migrate/activation/20101224223622_add_activation_to_users.rb +0 -17
  182. data/spec/sinatra_modular/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -17
  183. data/spec/sinatra_modular/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -11
  184. data/spec/sinatra_modular/db/migrate/core/20101224223620_create_users.rb +0 -16
  185. data/spec/sinatra_modular/db/migrate/external/20101224223628_create_authentications.rb +0 -14
  186. data/spec/sinatra_modular/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -15
  187. data/spec/sinatra_modular/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -13
  188. data/spec/sinatra_modular/filters.rb +0 -27
  189. data/spec/sinatra_modular/modular.rb +0 -157
  190. data/spec/sinatra_modular/myapp.rb +0 -133
  191. data/spec/sinatra_modular/sorcery_mailer.rb +0 -25
  192. data/spec/sinatra_modular/spec_modular/controller_activity_logging_spec.rb +0 -85
  193. data/spec/sinatra_modular/spec_modular/controller_brute_force_protection_spec.rb +0 -70
  194. data/spec/sinatra_modular/spec_modular/controller_http_basic_auth_spec.rb +0 -53
  195. data/spec/sinatra_modular/spec_modular/controller_oauth2_spec.rb +0 -99
  196. data/spec/sinatra_modular/spec_modular/controller_oauth_spec.rb +0 -100
  197. data/spec/sinatra_modular/spec_modular/controller_remember_me_spec.rb +0 -64
  198. data/spec/sinatra_modular/spec_modular/controller_session_timeout_spec.rb +0 -57
  199. data/spec/sinatra_modular/spec_modular/controller_spec.rb +0 -116
  200. data/spec/sinatra_modular/spec_modular/spec.opts +0 -2
  201. data/spec/sinatra_modular/spec_modular/spec_helper.rb +0 -51
  202. data/spec/sinatra_modular/user.rb +0 -6
  203. data/spec/sinatra_modular/views/test_login.erb +0 -4
  204. /data/spec/{sinatra → rails3_mongo_mapper/app/mailers}/sorcery_mailer.rb +0 -0
  205. /data/spec/{sinatra → rails3_mongo_mapper}/spec/spec.opts +0 -0
@@ -1,120 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe Sinatra::Application do
4
-
5
- # ----------------- PLUGIN CONFIGURATION -----------------------
6
- describe "plugin configuration" do
7
- before(:all) do
8
- sorcery_reload!
9
- end
10
-
11
- after(:each) do
12
- Sorcery::Controller::Config.reset!
13
- sorcery_reload!
14
- end
15
-
16
- it "should enable configuration option 'user_class'" do
17
- sorcery_controller_property_set(:user_class, "TestUser")
18
- Sorcery::Controller::Config.user_class.should == "TestUser"
19
- end
20
-
21
- it "should enable configuration option 'not_authenticated_action'" do
22
- sorcery_controller_property_set(:not_authenticated_action, :my_action)
23
- Sorcery::Controller::Config.not_authenticated_action.should equal(:my_action)
24
- end
25
-
26
- end
27
-
28
- # ----------------- PLUGIN ACTIVATED -----------------------
29
- describe Sinatra::Application, "when activated with sorcery" do
30
-
31
- before(:all) do
32
- User.delete_all
33
- create_new_user
34
- end
35
-
36
- after(:each) do
37
- Sorcery::Controller::Config.reset!
38
- sorcery_controller_property_set(:user_class, User)
39
- end
40
-
41
- it "should respond to the instance method login" do
42
- get_sinatra_app(subject).should respond_to(:login)
43
- end
44
-
45
- it "should respond to the instance method logout" do
46
- get_sinatra_app(subject).should respond_to(:logout)
47
- end
48
-
49
- it "should respond to the instance method logged_in?" do
50
- get_sinatra_app(subject).should respond_to(:logged_in?)
51
- end
52
-
53
- it "should respond to the instance method current_user" do
54
- get_sinatra_app(subject).should respond_to(:current_user)
55
- end
56
-
57
- it "login(username,password) should return the user when success and set the session with user.id" do
58
- get "/test_login", :username => 'gizmo', :password => 'secret'
59
- assigns[:user].should == @user
60
- session[:user_id].should == @user.id
61
- end
62
-
63
- it "login(username,password) should return nil and not set the session when failure" do
64
- get "/test_login", :username => 'gizmo', :password => 'opensesame!'
65
- assigns[:user].should be_nil
66
- session[:user_id].should be_nil
67
- end
68
-
69
- it "logout should clear the session" do
70
- get "/test_logout"
71
- session[:user_id].should be_nil
72
- end
73
-
74
- it "logged_in? should return true if logged in" do
75
- get "/test_login", :username => 'gizmo', :password => 'secret'
76
- assigns[:logged_in].should be_true
77
- end
78
-
79
- it "logged_in? should return false if not logged in" do
80
- get "/test_login", :username => 'gizmo', :password => 'opensesame!'
81
- assigns[:logged_in].should be_false
82
- end
83
-
84
- it "current_user should return the user instance if logged in" do
85
- create_new_user
86
- get "/test_current_user", :id => @user.id
87
- assigns[:current_user].should == @user
88
- end
89
-
90
- it "current_user should return false if not logged in" do
91
- get "/test_logout"
92
- assigns[:current_user].should == false
93
- end
94
-
95
- it "should respond to 'require_login'" do
96
- get_sinatra_app(subject).should respond_to(:require_login)
97
- end
98
-
99
- it "should call the configured 'not_authenticated_action' when authenticate before_filter fails" do
100
- sorcery_controller_property_set(:not_authenticated_action, :test_not_authenticated_action)
101
- get "/test_logout"
102
- last_response.body.should == "test_not_authenticated_action"
103
- end
104
-
105
- it "require_login before_filter should save the url that the user originally wanted" do
106
- sorcery_controller_property_set(:not_authenticated_action, :not_authenticated2)
107
- get "/some_action"
108
- assigns[:session][:return_to_url].should == "http://example.org/some_action"
109
- last_response.status.should == 302
110
- last_response.should redirect_to("http://example.org/")
111
- end
112
-
113
- it "on successful login the user should be redirected to the url he originally wanted" do
114
- post "/test_return_to", :username => 'gizmo', :password => 'secret', :return_to_url => "http://example.org/blabla"
115
- last_response.should redirect_to("http://example.org/blabla")
116
- end
117
-
118
- end
119
-
120
- end
@@ -1,45 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '..', 'myapp.rb')
2
- $: << APP_ROOT # for model reloading
3
-
4
- require 'rack/test'
5
- require 'rspec'
6
- require 'timecop'
7
-
8
- # set test environment
9
- set :environment, :test
10
- set :run, false
11
- set :raise_errors, true
12
- set :logging, false
13
-
14
- module RSpecMixinExample
15
- include Rack::Test::Methods
16
- def app
17
- @app ||= Sinatra::Application
18
- end
19
- end
20
-
21
- Rspec.configure do |config|
22
- config.send(:include, RSpecMixinExample)
23
- config.send(:include, ::Sorcery::TestHelpers::Internal)
24
- config.send(:include, ::Sorcery::TestHelpers::Internal::Sinatra)
25
- config.before(:suite) do
26
- ActiveRecord::Migrator.migrate("#{APP_ROOT}/db/migrate/core")
27
- end
28
-
29
- config.after(:suite) do
30
- ActiveRecord::Migrator.rollback("#{APP_ROOT}/db/migrate/core")
31
- end
32
-
33
- end
34
-
35
- # needed when running individual specs
36
- require File.join(File.dirname(__FILE__), '..','user')
37
- require File.join(File.dirname(__FILE__), '..','authentication')
38
-
39
- class TestUser < ActiveRecord::Base
40
- authenticates_with_sorcery!
41
- end
42
-
43
- class TestMailer < ActionMailer::Base
44
-
45
- end
data/spec/sinatra/user.rb DELETED
@@ -1,6 +0,0 @@
1
- class User < ActiveRecord::Base
2
- attr_accessible :email, :password, :password_confirmation, :authentications_attributes
3
-
4
- has_many :authentications, :dependent => :destroy
5
- accepts_nested_attributes_for :authentications
6
- end
@@ -1,4 +0,0 @@
1
- <%= @user %> bla bla
2
-
3
- hourdyasd
4
- <bla>
@@ -1,117 +0,0 @@
1
- PATH
2
- remote: ../../
3
- specs:
4
- sorcery (0.6.0)
5
- bcrypt-ruby (~> 3.0.0)
6
- oauth (>= 0.4.4)
7
- oauth (>= 0.4.4)
8
- oauth2 (>= 0.1.1)
9
- oauth2 (>= 0.1.1)
10
-
11
- GEM
12
- remote: http://rubygems.org/
13
- specs:
14
- abstract (1.0.0)
15
- actionmailer (3.0.5)
16
- actionpack (= 3.0.5)
17
- mail (~> 2.2.15)
18
- actionpack (3.0.5)
19
- activemodel (= 3.0.5)
20
- activesupport (= 3.0.5)
21
- builder (~> 2.1.2)
22
- erubis (~> 2.6.6)
23
- i18n (~> 0.4)
24
- rack (~> 1.2.1)
25
- rack-mount (~> 0.6.13)
26
- rack-test (~> 0.5.7)
27
- tzinfo (~> 0.3.23)
28
- activemodel (3.0.5)
29
- activesupport (= 3.0.5)
30
- builder (~> 2.1.2)
31
- i18n (~> 0.4)
32
- activerecord (3.0.5)
33
- activemodel (= 3.0.5)
34
- activesupport (= 3.0.5)
35
- arel (~> 2.0.2)
36
- tzinfo (~> 0.3.23)
37
- activesupport (3.0.5)
38
- addressable (2.2.6)
39
- archive-tar-minitar (0.5.2)
40
- arel (2.0.7)
41
- bcrypt-ruby (3.0.0)
42
- builder (2.1.2)
43
- columnize (0.3.2)
44
- diff-lcs (1.1.2)
45
- erubis (2.6.6)
46
- abstract (>= 1.0.0)
47
- faraday (0.6.1)
48
- addressable (~> 2.2.4)
49
- multipart-post (~> 1.1.0)
50
- rack (< 2, >= 1.1.0)
51
- i18n (0.5.0)
52
- linecache19 (0.5.11)
53
- ruby_core_source (>= 0.1.4)
54
- mail (2.2.15)
55
- activesupport (>= 2.3.6)
56
- i18n (>= 0.4.0)
57
- mime-types (~> 1.16)
58
- treetop (~> 1.4.8)
59
- mime-types (1.16)
60
- multi_json (1.0.3)
61
- multipart-post (1.1.3)
62
- oauth (0.4.5)
63
- oauth2 (0.4.1)
64
- faraday (~> 0.6.1)
65
- multi_json (>= 0.0.5)
66
- polyglot (0.3.1)
67
- rack (1.2.1)
68
- rack-mount (0.6.14)
69
- rack (>= 1.0.0)
70
- rack-test (0.5.7)
71
- rack (>= 1.0)
72
- rake (0.8.7)
73
- rspec (2.5.0)
74
- rspec-core (~> 2.5.0)
75
- rspec-expectations (~> 2.5.0)
76
- rspec-mocks (~> 2.5.0)
77
- rspec-core (2.5.1)
78
- rspec-expectations (2.5.0)
79
- diff-lcs (~> 1.1.2)
80
- rspec-mocks (2.5.0)
81
- ruby-debug-base19 (0.11.24)
82
- columnize (>= 0.3.1)
83
- linecache19 (>= 0.5.11)
84
- ruby_core_source (>= 0.1.4)
85
- ruby-debug19 (0.11.6)
86
- columnize (>= 0.3.1)
87
- linecache19 (>= 0.5.11)
88
- ruby-debug-base19 (>= 0.11.19)
89
- ruby_core_source (0.1.4)
90
- archive-tar-minitar (>= 0.5.2)
91
- simplecov (0.3.9)
92
- simplecov-html (>= 0.3.7)
93
- simplecov-html (0.3.9)
94
- sinatra (1.2.0)
95
- rack (~> 1.1)
96
- tilt (< 2.0, >= 1.2.2)
97
- sqlite3-ruby (1.3.2)
98
- tilt (1.2.2)
99
- timecop (0.3.5)
100
- treetop (1.4.9)
101
- polyglot (>= 0.3.1)
102
- tzinfo (0.3.24)
103
-
104
- PLATFORMS
105
- ruby
106
-
107
- DEPENDENCIES
108
- actionmailer (>= 3.0.3)
109
- activerecord (>= 3.0.3)
110
- rake
111
- rspec (~> 2.5.0)
112
- ruby-debug19
113
- simplecov (>= 0.3.8)
114
- sinatra (>= 1.2.0)
115
- sorcery (>= 0.1.0)!
116
- sqlite3-ruby
117
- timecop
@@ -1,11 +0,0 @@
1
- require 'rake'
2
- require 'rspec/core/rake_task'
3
-
4
- desc 'Default: Run all specs.'
5
- task :default => :spec
6
-
7
- desc "Run all specs"
8
- RSpec::Core::RakeTask.new(:spec) do |t|
9
- t.pattern = 'spec_modular/*_spec.rb'
10
- t.rspec_opts = ["--options #{File.dirname(__FILE__)}/spec_modular/spec.opts"]
11
- end
@@ -1,3 +0,0 @@
1
- class Authentication < ActiveRecord::Base
2
- belongs_to :user
3
- end
@@ -1,17 +0,0 @@
1
- class AddActivationToUsers < ActiveRecord::Migration
2
- def self.up
3
- add_column :users, :activation_state, :string, :default => nil
4
- add_column :users, :activation_token, :string, :default => nil
5
- add_column :users, :activation_token_expires_at, :datetime, :default => nil
6
-
7
- add_index :users, :activation_token
8
- end
9
-
10
- def self.down
11
- remove_index :users, :activation_token
12
-
13
- remove_column :users, :activation_token_expires_at
14
- remove_column :users, :activation_token
15
- remove_column :users, :activation_state
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- class AddActivityLoggingToUsers < ActiveRecord::Migration
2
- def self.up
3
- add_column :users, :last_login_at, :datetime, :default => nil
4
- add_column :users, :last_logout_at, :datetime, :default => nil
5
- add_column :users, :last_activity_at, :datetime, :default => nil
6
-
7
- add_index :users, [:last_logout_at, :last_activity_at]
8
- end
9
-
10
- def self.down
11
- remove_index :users, [:last_logout_at, :last_activity_at]
12
-
13
- remove_column :users, :last_activity_at
14
- remove_column :users, :last_logout_at
15
- remove_column :users, :last_login_at
16
- end
17
- end
@@ -1,11 +0,0 @@
1
- class AddBruteForceProtectionToUsers < ActiveRecord::Migration
2
- def self.up
3
- add_column :users, :failed_logins_count, :integer, :default => 0
4
- add_column :users, :lock_expires_at, :datetime, :default => nil
5
- end
6
-
7
- def self.down
8
- remove_column :users, :lock_expires_at
9
- remove_column :users, :failed_logins_count
10
- end
11
- end
@@ -1,16 +0,0 @@
1
- class CreateUsers < ActiveRecord::Migration
2
- def self.up
3
- create_table :users do |t|
4
- t.string :username, :null => false
5
- t.string :email, :default => nil
6
- t.string :crypted_password, :default => nil
7
- t.string :salt, :default => nil
8
-
9
- t.timestamps
10
- end
11
- end
12
-
13
- def self.down
14
- drop_table :users
15
- end
16
- end
@@ -1,14 +0,0 @@
1
- class CreateAuthentications < ActiveRecord::Migration
2
- def self.up
3
- create_table :authentications do |t|
4
- t.integer :user_id, :null => false
5
- t.string :provider, :uid, :null => false
6
-
7
- t.timestamps
8
- end
9
- end
10
-
11
- def self.down
12
- drop_table :authentications
13
- end
14
- end
@@ -1,15 +0,0 @@
1
- class AddRememberMeTokenToUsers < ActiveRecord::Migration
2
- def self.up
3
- add_column :users, :remember_me_token, :string, :default => nil
4
- add_column :users, :remember_me_token_expires_at, :datetime, :default => nil
5
-
6
- add_index :users, :remember_me_token
7
- end
8
-
9
- def self.down
10
- remove_index :users, :remember_me_token
11
-
12
- remove_column :users, :remember_me_token_expires_at
13
- remove_column :users, :remember_me_token
14
- end
15
- end
@@ -1,13 +0,0 @@
1
- class AddResetPasswordToUsers < ActiveRecord::Migration
2
- def self.up
3
- add_column :users, :reset_password_token, :string, :default => nil
4
- add_column :users, :reset_password_token_expires_at, :datetime, :default => nil
5
- add_column :users, :reset_password_email_sent_at, :datetime, :default => nil
6
- end
7
-
8
- def self.down
9
- remove_column :users, :reset_password_email_sent_at
10
- remove_column :users, :reset_password_token_expires_at
11
- remove_column :users, :reset_password_token
12
- end
13
- end
@@ -1,27 +0,0 @@
1
- # --- before filters
2
- module Filters
3
-
4
- def self.included(klass)
5
- klass.class_eval do
6
- ['/test_logout', '/some_action', '/test_should_be_logged_in'].each do |pattern|
7
- before pattern do
8
- require_login
9
- end
10
- end
11
-
12
- before '/test_http_basic_auth' do
13
- require_login_from_http_basic
14
- end
15
-
16
- # ----- test filters
17
-
18
- before do
19
- self.class.sorcery_vars = {}
20
- end
21
-
22
- after do
23
- save_instance_vars
24
- end
25
- end
26
- end
27
- end
@@ -1,157 +0,0 @@
1
- require 'sinatra/base'
2
- #enable :sessions
3
-
4
- require 'sqlite3'
5
- require 'active_record'
6
-
7
- # establish connection
8
- ActiveRecord::Base.establish_connection(
9
- :adapter => "sqlite3",
10
- :database => ":memory:",
11
- :verbosity => "quiet"
12
- )
13
-
14
- require 'action_mailer'
15
- ActionMailer::Base.delivery_method = :test
16
- require File.join(File.dirname(__FILE__), 'sorcery_mailer')
17
-
18
- # models
19
- require File.join(File.dirname(__FILE__), 'user')
20
- require 'sorcery'
21
-
22
- APP_ROOT = File.dirname(__FILE__)
23
-
24
- class Modular < Sinatra::Base
25
- set :sessions, true
26
-
27
- # ['/test_logout', '/some_action', '/test_should_be_logged_in'].each do |patt|
28
- # before patt do
29
- # require_login
30
- # end
31
- # end
32
- #
33
- # before '/test_http_basic_auth' do
34
- # require_login_from_http_basic
35
- # end
36
- #
37
- ## ----- test filters
38
- #
39
- # before do
40
- # self.class.sorcery_vars = {}
41
- # end
42
- #
43
- # after do
44
- # save_instance_vars
45
- # end
46
-
47
- get '/' do
48
-
49
- end
50
-
51
- get '/test_login' do
52
- @user = login(params[:username], params[:password])
53
- @current_user = current_user
54
- @logged_in = logged_in?
55
- erb :test_login
56
- end
57
-
58
- get '/test_logout' do
59
- session[:user_id] = User.first.id
60
- logout
61
- @current_user = current_user
62
- @logged_in = logged_in?
63
- end
64
-
65
- get '/test_current_user' do
66
- session[:user_id] = params[:id]
67
- current_user
68
- end
69
-
70
- get '/some_action' do
71
- erb ''
72
- end
73
-
74
- post '/test_return_to' do
75
- session[:return_to_url] = params[:return_to_url] if params[:return_to_url]
76
- @user = login(params[:username], params[:password])
77
- redirect_back_or_to(:some_action)
78
- end
79
-
80
- get '/test_should_be_logged_in' do
81
- erb ''
82
- end
83
-
84
- def test_not_authenticated_action
85
- halt "test_not_authenticated_action"
86
- end
87
-
88
- def not_authenticated2
89
- @session = session
90
- save_instance_vars
91
- redirect '/'
92
- end
93
-
94
- # remember me
95
-
96
- post '/test_login_with_remember' do
97
- @user = login(params[:username], params[:password])
98
- remember_me!
99
- erb ''
100
- end
101
-
102
- post '/test_login_with_remember_in_login' do
103
- @user = login(params[:username], params[:password], params[:remember])
104
- erb ''
105
- end
106
-
107
- get '/test_login_from_cookie' do
108
- @user = current_user
109
- erb ''
110
- end
111
-
112
- # http_basic
113
-
114
- get '/test_http_basic_auth' do
115
- erb "HTTP Basic Auth"
116
- end
117
-
118
- # oauth
119
-
120
- get '/login_at_test' do
121
- login_at(:twitter)
122
- end
123
-
124
- get '/test_login_from' do
125
- if @user = login_from(:twitter)
126
- erb "Success!"
127
- else
128
- erb "Failed!"
129
- end
130
- end
131
-
132
- # oauth2
133
-
134
- get '/login_at_test2' do
135
- login_at(:facebook)
136
- end
137
-
138
- get '/test_login_from2' do
139
- if @user = login_from(:facebook)
140
- erb "Success!"
141
- else
142
- erb "Failed!"
143
- end
144
- end
145
-
146
- get '/test_create_from_provider' do
147
- provider = params[:provider]
148
- login_from(provider)
149
- if @user = create_from(provider)
150
- erb "Success!"
151
- else
152
- erb "Failed!"
153
- end
154
- end
155
-
156
- #run! if app_file == $2
157
- end