sorcery 0.8.5 → 0.9.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 (163) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.travis.yml +122 -5
  4. data/CHANGELOG.md +37 -1
  5. data/Gemfile +10 -18
  6. data/README.md +159 -88
  7. data/gemfiles/active_record-rails40.gemfile +7 -0
  8. data/gemfiles/active_record-rails41.gemfile +7 -0
  9. data/gemfiles/mongo_mapper-rails40.gemfile +9 -0
  10. data/gemfiles/mongo_mapper-rails41.gemfile +9 -0
  11. data/gemfiles/mongoid-rails40.gemfile +9 -0
  12. data/gemfiles/mongoid-rails41.gemfile +9 -0
  13. data/gemfiles/mongoid3-rails32.gemfile +9 -0
  14. data/lib/generators/sorcery/USAGE +1 -1
  15. data/lib/generators/sorcery/install_generator.rb +19 -5
  16. data/lib/generators/sorcery/templates/initializer.rb +34 -9
  17. data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +3 -1
  18. data/lib/generators/sorcery/templates/migration/core.rb +2 -2
  19. data/lib/generators/sorcery/templates/migration/external.rb +3 -1
  20. data/lib/sorcery/adapters/active_record_adapter.rb +120 -0
  21. data/lib/sorcery/adapters/base_adapter.rb +30 -0
  22. data/lib/sorcery/adapters/data_mapper_adapter.rb +176 -0
  23. data/lib/sorcery/adapters/mongo_mapper_adapter.rb +110 -0
  24. data/lib/sorcery/adapters/mongoid_adapter.rb +97 -0
  25. data/lib/sorcery/controller/config.rb +65 -0
  26. data/lib/sorcery/controller/submodules/activity_logging.rb +16 -21
  27. data/lib/sorcery/controller/submodules/brute_force_protection.rb +6 -6
  28. data/lib/sorcery/controller/submodules/external.rb +35 -40
  29. data/lib/sorcery/controller/submodules/remember_me.rb +4 -4
  30. data/lib/sorcery/controller/submodules/session_timeout.rb +10 -6
  31. data/lib/sorcery/controller.rb +10 -74
  32. data/lib/sorcery/model/config.rb +96 -0
  33. data/lib/sorcery/model/submodules/activity_logging.rb +30 -13
  34. data/lib/sorcery/model/submodules/brute_force_protection.rb +21 -21
  35. data/lib/sorcery/model/submodules/external.rb +53 -9
  36. data/lib/sorcery/model/submodules/remember_me.rb +15 -19
  37. data/lib/sorcery/model/submodules/reset_password.rb +33 -34
  38. data/lib/sorcery/model/submodules/user_activation.rb +36 -47
  39. data/lib/sorcery/model/temporary_token.rb +4 -4
  40. data/lib/sorcery/model.rb +73 -173
  41. data/lib/sorcery/protocols/oauth.rb +42 -0
  42. data/lib/sorcery/protocols/oauth2.rb +47 -0
  43. data/lib/sorcery/providers/base.rb +38 -0
  44. data/lib/sorcery/providers/facebook.rb +63 -0
  45. data/lib/sorcery/providers/github.rb +51 -0
  46. data/lib/sorcery/providers/google.rb +51 -0
  47. data/lib/sorcery/providers/heroku.rb +57 -0
  48. data/lib/sorcery/providers/jira.rb +77 -0
  49. data/lib/sorcery/providers/linkedin.rb +66 -0
  50. data/lib/sorcery/providers/liveid.rb +53 -0
  51. data/lib/sorcery/providers/salesforce.rb +50 -0
  52. data/lib/sorcery/providers/twitter.rb +59 -0
  53. data/lib/sorcery/providers/vk.rb +63 -0
  54. data/lib/sorcery/providers/xing.rb +64 -0
  55. data/lib/sorcery/test_helpers/internal/rails.rb +14 -3
  56. data/lib/sorcery/test_helpers/internal.rb +7 -3
  57. data/lib/sorcery/test_helpers/rails/controller.rb +21 -0
  58. data/lib/sorcery/test_helpers/rails/integration.rb +26 -0
  59. data/lib/sorcery/version.rb +3 -0
  60. data/lib/sorcery.rb +82 -58
  61. data/sorcery.gemspec +19 -19
  62. data/spec/active_record/user_activation_spec.rb +1 -1
  63. data/spec/active_record/user_activity_logging_spec.rb +10 -1
  64. data/spec/active_record/user_brute_force_protection_spec.rb +1 -1
  65. data/spec/active_record/user_oauth_spec.rb +1 -1
  66. data/spec/active_record/user_remember_me_spec.rb +1 -1
  67. data/spec/active_record/user_reset_password_spec.rb +1 -1
  68. data/spec/active_record/user_spec.rb +7 -8
  69. data/spec/controllers/controller_activity_logging_spec.rb +124 -0
  70. data/spec/controllers/controller_brute_force_protection_spec.rb +43 -0
  71. data/spec/controllers/controller_http_basic_auth_spec.rb +68 -0
  72. data/spec/controllers/controller_oauth2_spec.rb +414 -0
  73. data/spec/controllers/controller_oauth_spec.rb +240 -0
  74. data/spec/controllers/controller_remember_me_spec.rb +117 -0
  75. data/spec/controllers/controller_session_timeout_spec.rb +80 -0
  76. data/spec/controllers/controller_spec.rb +218 -0
  77. data/spec/data_mapper/user_activation_spec.rb +10 -0
  78. data/spec/data_mapper/user_activity_logging_spec.rb +14 -0
  79. data/spec/data_mapper/user_brute_force_protection_spec.rb +9 -0
  80. data/spec/data_mapper/user_oauth_spec.rb +9 -0
  81. data/spec/data_mapper/user_remember_me_spec.rb +8 -0
  82. data/spec/data_mapper/user_reset_password_spec.rb +8 -0
  83. data/spec/data_mapper/user_spec.rb +27 -0
  84. data/spec/mongo_mapper/user_activation_spec.rb +1 -2
  85. data/spec/mongo_mapper/user_activity_logging_spec.rb +1 -1
  86. data/spec/mongo_mapper/user_brute_force_protection_spec.rb +1 -1
  87. data/spec/mongo_mapper/user_oauth_spec.rb +1 -1
  88. data/spec/mongo_mapper/user_remember_me_spec.rb +1 -1
  89. data/spec/mongo_mapper/user_reset_password_spec.rb +1 -1
  90. data/spec/mongo_mapper/user_spec.rb +7 -8
  91. data/spec/mongoid/user_activation_spec.rb +1 -2
  92. data/spec/mongoid/user_activity_logging_spec.rb +1 -2
  93. data/spec/mongoid/user_brute_force_protection_spec.rb +1 -2
  94. data/spec/mongoid/user_oauth_spec.rb +1 -2
  95. data/spec/mongoid/user_remember_me_spec.rb +1 -2
  96. data/spec/mongoid/user_reset_password_spec.rb +1 -2
  97. data/spec/mongoid/user_spec.rb +21 -9
  98. data/spec/orm/active_record.rb +14 -0
  99. data/spec/orm/data_mapper.rb +48 -0
  100. data/spec/orm/mongo_mapper.rb +1 -1
  101. data/spec/orm/mongoid.rb +5 -0
  102. data/spec/rails_app/app/controllers/sorcery_controller.rb +125 -59
  103. data/spec/rails_app/app/data_mapper/authentication.rb +8 -0
  104. data/spec/rails_app/app/data_mapper/user.rb +7 -0
  105. data/spec/rails_app/app/mongo_mapper/user.rb +2 -0
  106. data/spec/rails_app/config/routes.rb +27 -13
  107. data/spec/rails_app/db/migrate/core/20101224223620_create_users.rb +2 -2
  108. data/spec/shared_examples/user_activation_shared_examples.rb +108 -91
  109. data/spec/shared_examples/user_activity_logging_shared_examples.rb +83 -15
  110. data/spec/shared_examples/user_brute_force_protection_shared_examples.rb +140 -21
  111. data/spec/shared_examples/user_oauth_shared_examples.rb +21 -16
  112. data/spec/shared_examples/user_remember_me_shared_examples.rb +36 -24
  113. data/spec/shared_examples/user_reset_password_shared_examples.rb +138 -117
  114. data/spec/shared_examples/user_shared_examples.rb +297 -150
  115. data/spec/sorcery_crypto_providers_spec.rb +28 -28
  116. data/spec/spec_helper.rb +12 -18
  117. metadata +99 -165
  118. data/Gemfile.rails4 +0 -24
  119. data/VERSION +0 -1
  120. data/lib/sorcery/controller/submodules/external/protocols/oauth1.rb +0 -46
  121. data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +0 -50
  122. data/lib/sorcery/controller/submodules/external/providers/base.rb +0 -21
  123. data/lib/sorcery/controller/submodules/external/providers/facebook.rb +0 -99
  124. data/lib/sorcery/controller/submodules/external/providers/github.rb +0 -93
  125. data/lib/sorcery/controller/submodules/external/providers/google.rb +0 -92
  126. data/lib/sorcery/controller/submodules/external/providers/linkedin.rb +0 -103
  127. data/lib/sorcery/controller/submodules/external/providers/liveid.rb +0 -93
  128. data/lib/sorcery/controller/submodules/external/providers/twitter.rb +0 -94
  129. data/lib/sorcery/controller/submodules/external/providers/vk.rb +0 -101
  130. data/lib/sorcery/controller/submodules/external/providers/xing.rb +0 -98
  131. data/lib/sorcery/model/adapters/active_record.rb +0 -49
  132. data/lib/sorcery/model/adapters/mongo_mapper.rb +0 -56
  133. data/lib/sorcery/model/adapters/mongoid.rb +0 -88
  134. data/lib/sorcery/test_helpers/rails.rb +0 -16
  135. data/lib/sorcery/test_helpers.rb +0 -5
  136. data/spec/active_record/controller_activity_logging_spec.rb +0 -140
  137. data/spec/active_record/controller_brute_force_protection_spec.rb +0 -136
  138. data/spec/active_record/controller_http_basic_auth_spec.rb +0 -59
  139. data/spec/active_record/controller_oauth2_spec.rb +0 -417
  140. data/spec/active_record/controller_oauth_spec.rb +0 -212
  141. data/spec/active_record/controller_remember_me_spec.rb +0 -96
  142. data/spec/active_record/controller_session_timeout_spec.rb +0 -55
  143. data/spec/active_record/controller_spec.rb +0 -182
  144. data/spec/active_record/integration_spec.rb +0 -23
  145. data/spec/mongo_mapper/controller_spec.rb +0 -175
  146. data/spec/mongoid/controller_activity_logging_spec.rb +0 -111
  147. data/spec/mongoid/controller_spec.rb +0 -186
  148. data/spec/rails_app/public/404.html +0 -26
  149. data/spec/rails_app/public/422.html +0 -26
  150. data/spec/rails_app/public/500.html +0 -26
  151. data/spec/rails_app/public/favicon.ico +0 -0
  152. data/spec/rails_app/public/images/rails.png +0 -0
  153. data/spec/rails_app/public/javascripts/application.js +0 -2
  154. data/spec/rails_app/public/javascripts/controls.js +0 -965
  155. data/spec/rails_app/public/javascripts/dragdrop.js +0 -974
  156. data/spec/rails_app/public/javascripts/effects.js +0 -1123
  157. data/spec/rails_app/public/javascripts/prototype.js +0 -6001
  158. data/spec/rails_app/public/javascripts/rails.js +0 -175
  159. data/spec/rails_app/public/robots.txt +0 -5
  160. data/spec/rails_app/public/stylesheets/.gitkeep +0 -0
  161. data/spec/shared_examples/controller_oauth2_shared_examples.rb +0 -56
  162. data/spec/shared_examples/controller_oauth_shared_examples.rb +0 -69
  163. /data/lib/sorcery/{controller/submodules/external/protocols → protocols}/certs/ca-bundle.crt +0 -0
@@ -3,181 +3,246 @@ require 'oauth'
3
3
  class SorceryController < ActionController::Base
4
4
  protect_from_forgery
5
5
 
6
- #before_filter :validate_session, :only => [:test_should_be_logged_in] if defined?(:validate_session)
7
- before_filter :require_login_from_http_basic, :only => [:test_http_basic_auth]
8
- before_filter :require_login, :only => [:test_logout, :test_should_be_logged_in, :some_action]
6
+ before_filter :require_login_from_http_basic, only: [:test_http_basic_auth]
7
+ before_filter :require_login, only: [:test_logout, :test_should_be_logged_in, :some_action]
9
8
 
10
9
  def index
11
10
  end
12
11
 
13
12
  def some_action
14
- render :nothing => true
13
+ render nothing: true
15
14
  end
16
15
 
17
16
  def some_action_making_a_non_persisted_change_to_the_user
18
- current_user.email = "to_be_ignored"
19
- render :nothing => true
17
+ current_user.email = 'to_be_ignored'
18
+ render nothing: true
20
19
  end
21
20
 
22
21
  def test_login
23
22
  @user = login(params[:email], params[:password])
24
- render :text => ""
23
+ render nothing: true
25
24
  end
26
25
 
27
26
  def test_auto_login
28
- @user = User.find(:first)
27
+ @user = User.first
29
28
  auto_login(@user)
30
29
  @result = current_user
31
- render :text => ""
30
+ render nothing: true
32
31
  end
33
32
 
34
33
  def test_return_to
35
34
  @user = login(params[:email], params[:password])
36
- redirect_back_or_to(:index, :notice => 'haha!')
35
+ redirect_back_or_to(:index, notice: 'haha!')
37
36
  end
38
37
 
39
38
  def test_logout
40
39
  logout
41
- render :text => ""
40
+ render nothing: true
42
41
  end
43
42
 
44
43
  def test_logout_with_remember
45
44
  remember_me!
46
45
  logout
47
- render :text => ""
46
+ render nothing: true
48
47
  end
49
48
 
50
49
  def test_login_with_remember
51
50
  @user = login(params[:email], params[:password])
52
51
  remember_me!
53
52
 
54
- render :text => ""
53
+ render nothing: true
55
54
  end
56
55
 
57
56
  def test_login_with_remember_in_login
58
57
  @user = login(params[:email], params[:password], params[:remember])
59
58
 
60
- render :text => ""
59
+ render nothing: true
61
60
  end
62
61
 
63
62
  def test_login_from_cookie
64
63
  @user = current_user
65
- render :text => ""
64
+ render nothing: true
66
65
  end
67
66
 
68
67
  def test_not_authenticated_action
69
- render :text => "test_not_authenticated_action"
68
+ render text: 'test_not_authenticated_action'
70
69
  end
71
70
 
72
71
  def test_should_be_logged_in
73
- render :text => ""
72
+ render nothing: true
74
73
  end
75
74
 
76
75
  def test_http_basic_auth
77
- render :text => "HTTP Basic Auth"
76
+ render text: 'HTTP Basic Auth'
78
77
  end
79
78
 
80
- def login_at_test
79
+ def login_at_test_twitter
81
80
  login_at(:twitter)
82
81
  end
83
82
 
84
- def login_at_test2
83
+ alias :login_at_test :login_at_test_twitter
84
+
85
+ def login_at_test_facebook
85
86
  login_at(:facebook)
86
87
  end
87
88
 
88
- def login_at_test3
89
+ def login_at_test_github
89
90
  login_at(:github)
90
91
  end
91
92
 
92
- def login_at_test4
93
+ def login_at_test_google
93
94
  login_at(:google)
94
95
  end
95
96
 
96
- def login_at_test5
97
+ def login_at_test_liveid
97
98
  login_at(:liveid)
98
99
  end
99
100
 
101
+ def login_at_test_jira
102
+ login_at(:jira)
103
+ end
104
+
105
+ def login_at_test_vk
106
+ login_at(:vk)
107
+ end
108
+
109
+ def login_at_test_salesforce
110
+ login_at(:salesforce)
111
+ end
112
+
100
113
  def login_at_test_with_state
101
- login_at(:facebook, {:state => "bla"})
114
+ login_at(:facebook, {state: 'bla'})
102
115
  end
103
116
 
104
- def test_login_from
117
+ def test_login_from_twitter
105
118
  if @user = login_from(:twitter)
106
- redirect_to "bla", :notice => "Success!"
119
+ redirect_to 'bla', notice: 'Success!'
107
120
  else
108
- redirect_to "blu", :alert => "Failed!"
121
+ redirect_to 'blu', alert: 'Failed!'
109
122
  end
110
123
  end
111
124
 
112
- def test_login_from2
125
+ alias :test_login_from :test_login_from_twitter
126
+
127
+ def test_login_from_facebook
113
128
  if @user = login_from(:facebook)
114
- redirect_to "bla", :notice => "Success!"
129
+ redirect_to 'bla', notice: 'Success!'
115
130
  else
116
- redirect_to "blu", :alert => "Failed!"
131
+ redirect_to 'blu', alert: 'Failed!'
117
132
  end
118
133
  end
119
134
 
120
- def test_login_from3
135
+ def test_login_from_github
121
136
  if @user = login_from(:github)
122
- redirect_to "bla", :notice => "Success!"
137
+ redirect_to 'bla', notice: 'Success!'
123
138
  else
124
- redirect_to "blu", :alert => "Failed!"
139
+ redirect_to 'blu', alert: 'Failed!'
125
140
  end
126
141
  end
127
142
 
128
- def test_login_from4
143
+ def test_login_from_google
129
144
  if @user = login_from(:google)
130
- redirect_to "bla", :notice => "Success!"
145
+ redirect_to 'bla', notice: 'Success!'
131
146
  else
132
- redirect_to "blu", :alert => "Failed!"
147
+ redirect_to 'blu', alert: 'Failed!'
133
148
  end
134
149
  end
135
150
 
136
- def test_login_from5
151
+ def test_login_from_liveid
137
152
  if @user = login_from(:liveid)
138
- redirect_to "bla", :notice => "Success!"
153
+ redirect_to 'bla', notice: 'Success!'
139
154
  else
140
- redirect_to "blu", :alert => "Failed!"
155
+ redirect_to 'blu', alert: 'Failed!'
141
156
  end
142
157
  end
143
158
 
144
- def test_return_to_with_external
159
+ def test_login_from_vk
160
+ if @user = login_from(:vk)
161
+ redirect_to 'bla', notice: 'Success!'
162
+ else
163
+ redirect_to 'blu', alert: 'Failed!'
164
+ end
165
+ end
166
+
167
+ def test_login_from_jira
168
+ if @user = login_from(:jira)
169
+ redirect_to 'bla', notice: 'Success!'
170
+ else
171
+ redirect_to 'blu', alert: 'Failed!'
172
+ end
173
+ end
174
+
175
+ def test_login_from_salesforce
176
+ if @user = login_from(:salesforce)
177
+ redirect_to 'bla', notice: 'Success!'
178
+ else
179
+ redirect_to 'blu', alert: 'Failed!'
180
+ end
181
+ end
182
+
183
+ def test_return_to_with_external_twitter
145
184
  if @user = login_from(:twitter)
146
- redirect_back_or_to "bla", :notice => "Success!"
185
+ redirect_back_or_to 'bla', notice: 'Success!'
186
+ else
187
+ redirect_to 'blu', alert: 'Failed!'
188
+ end
189
+ end
190
+
191
+ def test_return_to_with_external_jira
192
+ if @user = login_from(:jira)
193
+ redirect_back_or_to 'bla', notice: 'Success!'
147
194
  else
148
- redirect_to "blu", :alert => "Failed!"
195
+ redirect_to 'blu', alert: 'Failed!'
149
196
  end
150
197
  end
151
198
 
152
- def test_return_to_with_external2
199
+ alias :test_return_to_with_external :test_return_to_with_external_twitter
200
+
201
+ def test_return_to_with_external_facebook
153
202
  if @user = login_from(:facebook)
154
- redirect_back_or_to "bla", :notice => "Success!"
203
+ redirect_back_or_to 'bla', notice: 'Success!'
155
204
  else
156
- redirect_to "blu", :alert => "Failed!"
205
+ redirect_to 'blu', alert: 'Failed!'
157
206
  end
158
207
  end
159
208
 
160
- def test_return_to_with_external3
209
+ def test_return_to_with_external_github
161
210
  if @user = login_from(:github)
162
- redirect_back_or_to "bla", :notice => "Success!"
211
+ redirect_back_or_to 'bla', notice: 'Success!'
163
212
  else
164
- redirect_to "blu", :alert => "Failed!"
213
+ redirect_to 'blu', alert: 'Failed!'
165
214
  end
166
215
  end
167
216
 
168
- def test_return_to_with_external4
217
+ def test_return_to_with_external_google
169
218
  if @user = login_from(:google)
170
- redirect_back_or_to "bla", :notice => "Success!"
219
+ redirect_back_or_to 'bla', notice: 'Success!'
171
220
  else
172
- redirect_to "blu", :alert => "Failed!"
221
+ redirect_to 'blu', alert: 'Failed!'
173
222
  end
174
223
  end
175
224
 
176
- def test_return_to_with_external5
225
+ def test_return_to_with_external_liveid
177
226
  if @user = login_from(:liveid)
178
- redirect_back_or_to "bla", :notice => "Success!"
227
+ redirect_back_or_to 'bla', notice: 'Success!'
228
+ else
229
+ redirect_to 'blu', alert: 'Failed!'
230
+ end
231
+ end
232
+
233
+ def test_return_to_with_external_vk
234
+ if @user = login_from(:vk)
235
+ redirect_back_or_to 'bla', notice: 'Success!'
236
+ else
237
+ redirect_to 'blu', alert: 'Failed!'
238
+ end
239
+ end
240
+
241
+ def test_return_to_with_external_salesforce
242
+ if @user = login_from(:salesforce)
243
+ redirect_back_or_to 'bla', notice: 'Success!'
179
244
  else
180
- redirect_to "blu", :alert => "Failed!"
245
+ redirect_to 'blu', alert: 'Failed!'
181
246
  end
182
247
  end
183
248
 
@@ -185,9 +250,9 @@ class SorceryController < ActionController::Base
185
250
  provider = params[:provider]
186
251
  login_from(provider)
187
252
  if @user = create_from(provider)
188
- redirect_to "bla", :notice => "Success!"
253
+ redirect_to 'bla', notice: 'Success!'
189
254
  else
190
- redirect_to "blu", :alert => "Failed!"
255
+ redirect_to 'blu', alert: 'Failed!'
191
256
  end
192
257
  end
193
258
 
@@ -207,12 +272,13 @@ class SorceryController < ActionController::Base
207
272
  login_from(provider)
208
273
  @user = create_from(provider) do |user|
209
274
  # check uniqueness of email
210
- User.where(:email => user.email).empty?
275
+ # User.where(email: user.email).empty?
276
+ false
211
277
  end
212
278
  if @user
213
- redirect_to "bla", :notice => "Success!"
279
+ redirect_to 'bla', notice: 'Success!'
214
280
  else
215
- redirect_to "blu", :alert => "Failed!"
281
+ redirect_to 'blu', alert: 'Failed!'
216
282
  end
217
283
  end
218
284
 
@@ -0,0 +1,8 @@
1
+ class Authentication
2
+ include DataMapper::Resource
3
+
4
+ property :id, Serial
5
+ property :uid, Integer
6
+ property :provider, String
7
+ belongs_to :user
8
+ end
@@ -0,0 +1,7 @@
1
+ class User
2
+ include DataMapper::Resource
3
+ property :id, Serial
4
+ property :username, String
5
+
6
+ has n, :authentications, :constraint => :destroy
7
+ end
@@ -1,5 +1,7 @@
1
1
  class User
2
2
  include MongoMapper::Document
3
3
 
4
+ key :username
5
+
4
6
  many :authentications, :dependent => :destroy
5
7
  end
@@ -15,23 +15,37 @@ AppRoot::Application.routes.draw do
15
15
  get :test_create_from_provider
16
16
  get :test_add_second_provider
17
17
  get :test_return_to_with_external
18
- get :test_login_from5
19
- get :test_login_from4
20
- get :test_login_from2
21
- get :test_login_from3
22
- get :test_return_to_with_external5
23
- get :login_at_test2
24
- get :login_at_test3
25
- get :login_at_test4
26
- get :test_return_to_with_external2
27
- get :test_return_to_with_external3
28
- get :test_return_to_with_external4
18
+ get :test_login_from
19
+ get :test_login_from_twitter
20
+ get :test_login_from_facebook
21
+ get :test_login_from_github
22
+ get :test_login_from_google
23
+ get :test_login_from_liveid
24
+ get :test_login_from_vk
25
+ get :test_login_from_jira
26
+ get :test_login_from_salesforce
27
+ get :login_at_test
28
+ get :login_at_test_twitter
29
+ get :login_at_test_facebook
30
+ get :login_at_test_github
31
+ get :login_at_test_google
32
+ get :login_at_test_liveid
33
+ get :login_at_test_vk
34
+ get :login_at_test_jira
35
+ get :login_at_test_salesforce
36
+ get :test_return_to_with_external
37
+ get :test_return_to_with_external_twitter
38
+ get :test_return_to_with_external_facebook
39
+ get :test_return_to_with_external_github
40
+ get :test_return_to_with_external_google
41
+ get :test_return_to_with_external_liveid
42
+ get :test_return_to_with_external_vk
43
+ get :test_return_to_with_external_jira
44
+ get :test_return_to_with_external_salesforce
29
45
  get :test_http_basic_auth
30
46
  get :some_action_making_a_non_persisted_change_to_the_user
31
47
  post :test_login_with_remember
32
48
  get :test_create_from_provider_with_block
33
- get :login_at_test
34
- get :login_at_test5
35
49
  get :login_at_test_with_state
36
50
  end
37
51
  end
@@ -3,8 +3,8 @@ class CreateUsers < ActiveRecord::Migration
3
3
  create_table :users do |t|
4
4
  t.string :username, :null => false
5
5
  t.string :email, :default => nil
6
- t.string :crypted_password, :default => nil
7
- t.string :salt, :default => nil
6
+ t.string :crypted_password
7
+ t.string :salt
8
8
 
9
9
  t.timestamps
10
10
  end