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.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/.travis.yml +122 -5
- data/CHANGELOG.md +37 -1
- data/Gemfile +10 -18
- data/README.md +159 -88
- data/gemfiles/active_record-rails40.gemfile +7 -0
- data/gemfiles/active_record-rails41.gemfile +7 -0
- data/gemfiles/mongo_mapper-rails40.gemfile +9 -0
- data/gemfiles/mongo_mapper-rails41.gemfile +9 -0
- data/gemfiles/mongoid-rails40.gemfile +9 -0
- data/gemfiles/mongoid-rails41.gemfile +9 -0
- data/gemfiles/mongoid3-rails32.gemfile +9 -0
- data/lib/generators/sorcery/USAGE +1 -1
- data/lib/generators/sorcery/install_generator.rb +19 -5
- data/lib/generators/sorcery/templates/initializer.rb +34 -9
- data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +3 -1
- data/lib/generators/sorcery/templates/migration/core.rb +2 -2
- data/lib/generators/sorcery/templates/migration/external.rb +3 -1
- data/lib/sorcery/adapters/active_record_adapter.rb +120 -0
- data/lib/sorcery/adapters/base_adapter.rb +30 -0
- data/lib/sorcery/adapters/data_mapper_adapter.rb +176 -0
- data/lib/sorcery/adapters/mongo_mapper_adapter.rb +110 -0
- data/lib/sorcery/adapters/mongoid_adapter.rb +97 -0
- data/lib/sorcery/controller/config.rb +65 -0
- data/lib/sorcery/controller/submodules/activity_logging.rb +16 -21
- data/lib/sorcery/controller/submodules/brute_force_protection.rb +6 -6
- data/lib/sorcery/controller/submodules/external.rb +35 -40
- data/lib/sorcery/controller/submodules/remember_me.rb +4 -4
- data/lib/sorcery/controller/submodules/session_timeout.rb +10 -6
- data/lib/sorcery/controller.rb +10 -74
- data/lib/sorcery/model/config.rb +96 -0
- data/lib/sorcery/model/submodules/activity_logging.rb +30 -13
- data/lib/sorcery/model/submodules/brute_force_protection.rb +21 -21
- data/lib/sorcery/model/submodules/external.rb +53 -9
- data/lib/sorcery/model/submodules/remember_me.rb +15 -19
- data/lib/sorcery/model/submodules/reset_password.rb +33 -34
- data/lib/sorcery/model/submodules/user_activation.rb +36 -47
- data/lib/sorcery/model/temporary_token.rb +4 -4
- data/lib/sorcery/model.rb +73 -173
- data/lib/sorcery/protocols/oauth.rb +42 -0
- data/lib/sorcery/protocols/oauth2.rb +47 -0
- data/lib/sorcery/providers/base.rb +38 -0
- data/lib/sorcery/providers/facebook.rb +63 -0
- data/lib/sorcery/providers/github.rb +51 -0
- data/lib/sorcery/providers/google.rb +51 -0
- data/lib/sorcery/providers/heroku.rb +57 -0
- data/lib/sorcery/providers/jira.rb +77 -0
- data/lib/sorcery/providers/linkedin.rb +66 -0
- data/lib/sorcery/providers/liveid.rb +53 -0
- data/lib/sorcery/providers/salesforce.rb +50 -0
- data/lib/sorcery/providers/twitter.rb +59 -0
- data/lib/sorcery/providers/vk.rb +63 -0
- data/lib/sorcery/providers/xing.rb +64 -0
- data/lib/sorcery/test_helpers/internal/rails.rb +14 -3
- data/lib/sorcery/test_helpers/internal.rb +7 -3
- data/lib/sorcery/test_helpers/rails/controller.rb +21 -0
- data/lib/sorcery/test_helpers/rails/integration.rb +26 -0
- data/lib/sorcery/version.rb +3 -0
- data/lib/sorcery.rb +82 -58
- data/sorcery.gemspec +19 -19
- data/spec/active_record/user_activation_spec.rb +1 -1
- data/spec/active_record/user_activity_logging_spec.rb +10 -1
- data/spec/active_record/user_brute_force_protection_spec.rb +1 -1
- data/spec/active_record/user_oauth_spec.rb +1 -1
- data/spec/active_record/user_remember_me_spec.rb +1 -1
- data/spec/active_record/user_reset_password_spec.rb +1 -1
- data/spec/active_record/user_spec.rb +7 -8
- data/spec/controllers/controller_activity_logging_spec.rb +124 -0
- data/spec/controllers/controller_brute_force_protection_spec.rb +43 -0
- data/spec/controllers/controller_http_basic_auth_spec.rb +68 -0
- data/spec/controllers/controller_oauth2_spec.rb +414 -0
- data/spec/controllers/controller_oauth_spec.rb +240 -0
- data/spec/controllers/controller_remember_me_spec.rb +117 -0
- data/spec/controllers/controller_session_timeout_spec.rb +80 -0
- data/spec/controllers/controller_spec.rb +218 -0
- data/spec/data_mapper/user_activation_spec.rb +10 -0
- data/spec/data_mapper/user_activity_logging_spec.rb +14 -0
- data/spec/data_mapper/user_brute_force_protection_spec.rb +9 -0
- data/spec/data_mapper/user_oauth_spec.rb +9 -0
- data/spec/data_mapper/user_remember_me_spec.rb +8 -0
- data/spec/data_mapper/user_reset_password_spec.rb +8 -0
- data/spec/data_mapper/user_spec.rb +27 -0
- data/spec/mongo_mapper/user_activation_spec.rb +1 -2
- data/spec/mongo_mapper/user_activity_logging_spec.rb +1 -1
- data/spec/mongo_mapper/user_brute_force_protection_spec.rb +1 -1
- data/spec/mongo_mapper/user_oauth_spec.rb +1 -1
- data/spec/mongo_mapper/user_remember_me_spec.rb +1 -1
- data/spec/mongo_mapper/user_reset_password_spec.rb +1 -1
- data/spec/mongo_mapper/user_spec.rb +7 -8
- data/spec/mongoid/user_activation_spec.rb +1 -2
- data/spec/mongoid/user_activity_logging_spec.rb +1 -2
- data/spec/mongoid/user_brute_force_protection_spec.rb +1 -2
- data/spec/mongoid/user_oauth_spec.rb +1 -2
- data/spec/mongoid/user_remember_me_spec.rb +1 -2
- data/spec/mongoid/user_reset_password_spec.rb +1 -2
- data/spec/mongoid/user_spec.rb +21 -9
- data/spec/orm/active_record.rb +14 -0
- data/spec/orm/data_mapper.rb +48 -0
- data/spec/orm/mongo_mapper.rb +1 -1
- data/spec/orm/mongoid.rb +5 -0
- data/spec/rails_app/app/controllers/sorcery_controller.rb +125 -59
- data/spec/rails_app/app/data_mapper/authentication.rb +8 -0
- data/spec/rails_app/app/data_mapper/user.rb +7 -0
- data/spec/rails_app/app/mongo_mapper/user.rb +2 -0
- data/spec/rails_app/config/routes.rb +27 -13
- data/spec/rails_app/db/migrate/core/20101224223620_create_users.rb +2 -2
- data/spec/shared_examples/user_activation_shared_examples.rb +108 -91
- data/spec/shared_examples/user_activity_logging_shared_examples.rb +83 -15
- data/spec/shared_examples/user_brute_force_protection_shared_examples.rb +140 -21
- data/spec/shared_examples/user_oauth_shared_examples.rb +21 -16
- data/spec/shared_examples/user_remember_me_shared_examples.rb +36 -24
- data/spec/shared_examples/user_reset_password_shared_examples.rb +138 -117
- data/spec/shared_examples/user_shared_examples.rb +297 -150
- data/spec/sorcery_crypto_providers_spec.rb +28 -28
- data/spec/spec_helper.rb +12 -18
- metadata +99 -165
- data/Gemfile.rails4 +0 -24
- data/VERSION +0 -1
- data/lib/sorcery/controller/submodules/external/protocols/oauth1.rb +0 -46
- data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +0 -50
- data/lib/sorcery/controller/submodules/external/providers/base.rb +0 -21
- data/lib/sorcery/controller/submodules/external/providers/facebook.rb +0 -99
- data/lib/sorcery/controller/submodules/external/providers/github.rb +0 -93
- data/lib/sorcery/controller/submodules/external/providers/google.rb +0 -92
- data/lib/sorcery/controller/submodules/external/providers/linkedin.rb +0 -103
- data/lib/sorcery/controller/submodules/external/providers/liveid.rb +0 -93
- data/lib/sorcery/controller/submodules/external/providers/twitter.rb +0 -94
- data/lib/sorcery/controller/submodules/external/providers/vk.rb +0 -101
- data/lib/sorcery/controller/submodules/external/providers/xing.rb +0 -98
- data/lib/sorcery/model/adapters/active_record.rb +0 -49
- data/lib/sorcery/model/adapters/mongo_mapper.rb +0 -56
- data/lib/sorcery/model/adapters/mongoid.rb +0 -88
- data/lib/sorcery/test_helpers/rails.rb +0 -16
- data/lib/sorcery/test_helpers.rb +0 -5
- data/spec/active_record/controller_activity_logging_spec.rb +0 -140
- data/spec/active_record/controller_brute_force_protection_spec.rb +0 -136
- data/spec/active_record/controller_http_basic_auth_spec.rb +0 -59
- data/spec/active_record/controller_oauth2_spec.rb +0 -417
- data/spec/active_record/controller_oauth_spec.rb +0 -212
- data/spec/active_record/controller_remember_me_spec.rb +0 -96
- data/spec/active_record/controller_session_timeout_spec.rb +0 -55
- data/spec/active_record/controller_spec.rb +0 -182
- data/spec/active_record/integration_spec.rb +0 -23
- data/spec/mongo_mapper/controller_spec.rb +0 -175
- data/spec/mongoid/controller_activity_logging_spec.rb +0 -111
- data/spec/mongoid/controller_spec.rb +0 -186
- data/spec/rails_app/public/404.html +0 -26
- data/spec/rails_app/public/422.html +0 -26
- data/spec/rails_app/public/500.html +0 -26
- data/spec/rails_app/public/favicon.ico +0 -0
- data/spec/rails_app/public/images/rails.png +0 -0
- data/spec/rails_app/public/javascripts/application.js +0 -2
- data/spec/rails_app/public/javascripts/controls.js +0 -965
- data/spec/rails_app/public/javascripts/dragdrop.js +0 -974
- data/spec/rails_app/public/javascripts/effects.js +0 -1123
- data/spec/rails_app/public/javascripts/prototype.js +0 -6001
- data/spec/rails_app/public/javascripts/rails.js +0 -175
- data/spec/rails_app/public/robots.txt +0 -5
- data/spec/rails_app/public/stylesheets/.gitkeep +0 -0
- data/spec/shared_examples/controller_oauth2_shared_examples.rb +0 -56
- data/spec/shared_examples/controller_oauth_shared_examples.rb +0 -69
- /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
|
-
|
|
7
|
-
before_filter :
|
|
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 :
|
|
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 =
|
|
19
|
-
render :
|
|
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 :
|
|
23
|
+
render nothing: true
|
|
25
24
|
end
|
|
26
25
|
|
|
27
26
|
def test_auto_login
|
|
28
|
-
@user = User.
|
|
27
|
+
@user = User.first
|
|
29
28
|
auto_login(@user)
|
|
30
29
|
@result = current_user
|
|
31
|
-
render :
|
|
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, :
|
|
35
|
+
redirect_back_or_to(:index, notice: 'haha!')
|
|
37
36
|
end
|
|
38
37
|
|
|
39
38
|
def test_logout
|
|
40
39
|
logout
|
|
41
|
-
render :
|
|
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 :
|
|
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 :
|
|
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 :
|
|
59
|
+
render nothing: true
|
|
61
60
|
end
|
|
62
61
|
|
|
63
62
|
def test_login_from_cookie
|
|
64
63
|
@user = current_user
|
|
65
|
-
render :
|
|
64
|
+
render nothing: true
|
|
66
65
|
end
|
|
67
66
|
|
|
68
67
|
def test_not_authenticated_action
|
|
69
|
-
render :
|
|
68
|
+
render text: 'test_not_authenticated_action'
|
|
70
69
|
end
|
|
71
70
|
|
|
72
71
|
def test_should_be_logged_in
|
|
73
|
-
render :
|
|
72
|
+
render nothing: true
|
|
74
73
|
end
|
|
75
74
|
|
|
76
75
|
def test_http_basic_auth
|
|
77
|
-
render :
|
|
76
|
+
render text: 'HTTP Basic Auth'
|
|
78
77
|
end
|
|
79
78
|
|
|
80
|
-
def
|
|
79
|
+
def login_at_test_twitter
|
|
81
80
|
login_at(:twitter)
|
|
82
81
|
end
|
|
83
82
|
|
|
84
|
-
|
|
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
|
|
89
|
+
def login_at_test_github
|
|
89
90
|
login_at(:github)
|
|
90
91
|
end
|
|
91
92
|
|
|
92
|
-
def
|
|
93
|
+
def login_at_test_google
|
|
93
94
|
login_at(:google)
|
|
94
95
|
end
|
|
95
96
|
|
|
96
|
-
def
|
|
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, {:
|
|
114
|
+
login_at(:facebook, {state: 'bla'})
|
|
102
115
|
end
|
|
103
116
|
|
|
104
|
-
def
|
|
117
|
+
def test_login_from_twitter
|
|
105
118
|
if @user = login_from(:twitter)
|
|
106
|
-
redirect_to
|
|
119
|
+
redirect_to 'bla', notice: 'Success!'
|
|
107
120
|
else
|
|
108
|
-
redirect_to
|
|
121
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
109
122
|
end
|
|
110
123
|
end
|
|
111
124
|
|
|
112
|
-
|
|
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
|
|
129
|
+
redirect_to 'bla', notice: 'Success!'
|
|
115
130
|
else
|
|
116
|
-
redirect_to
|
|
131
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
117
132
|
end
|
|
118
133
|
end
|
|
119
134
|
|
|
120
|
-
def
|
|
135
|
+
def test_login_from_github
|
|
121
136
|
if @user = login_from(:github)
|
|
122
|
-
redirect_to
|
|
137
|
+
redirect_to 'bla', notice: 'Success!'
|
|
123
138
|
else
|
|
124
|
-
redirect_to
|
|
139
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
125
140
|
end
|
|
126
141
|
end
|
|
127
142
|
|
|
128
|
-
def
|
|
143
|
+
def test_login_from_google
|
|
129
144
|
if @user = login_from(:google)
|
|
130
|
-
redirect_to
|
|
145
|
+
redirect_to 'bla', notice: 'Success!'
|
|
131
146
|
else
|
|
132
|
-
redirect_to
|
|
147
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
133
148
|
end
|
|
134
149
|
end
|
|
135
150
|
|
|
136
|
-
def
|
|
151
|
+
def test_login_from_liveid
|
|
137
152
|
if @user = login_from(:liveid)
|
|
138
|
-
redirect_to
|
|
153
|
+
redirect_to 'bla', notice: 'Success!'
|
|
139
154
|
else
|
|
140
|
-
redirect_to
|
|
155
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
141
156
|
end
|
|
142
157
|
end
|
|
143
158
|
|
|
144
|
-
def
|
|
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
|
|
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
|
|
195
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
149
196
|
end
|
|
150
197
|
end
|
|
151
198
|
|
|
152
|
-
|
|
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
|
|
203
|
+
redirect_back_or_to 'bla', notice: 'Success!'
|
|
155
204
|
else
|
|
156
|
-
redirect_to
|
|
205
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
157
206
|
end
|
|
158
207
|
end
|
|
159
208
|
|
|
160
|
-
def
|
|
209
|
+
def test_return_to_with_external_github
|
|
161
210
|
if @user = login_from(:github)
|
|
162
|
-
redirect_back_or_to
|
|
211
|
+
redirect_back_or_to 'bla', notice: 'Success!'
|
|
163
212
|
else
|
|
164
|
-
redirect_to
|
|
213
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
165
214
|
end
|
|
166
215
|
end
|
|
167
216
|
|
|
168
|
-
def
|
|
217
|
+
def test_return_to_with_external_google
|
|
169
218
|
if @user = login_from(:google)
|
|
170
|
-
redirect_back_or_to
|
|
219
|
+
redirect_back_or_to 'bla', notice: 'Success!'
|
|
171
220
|
else
|
|
172
|
-
redirect_to
|
|
221
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
173
222
|
end
|
|
174
223
|
end
|
|
175
224
|
|
|
176
|
-
def
|
|
225
|
+
def test_return_to_with_external_liveid
|
|
177
226
|
if @user = login_from(:liveid)
|
|
178
|
-
redirect_back_or_to
|
|
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
|
|
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
|
|
253
|
+
redirect_to 'bla', notice: 'Success!'
|
|
189
254
|
else
|
|
190
|
-
redirect_to
|
|
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(:
|
|
275
|
+
# User.where(email: user.email).empty?
|
|
276
|
+
false
|
|
211
277
|
end
|
|
212
278
|
if @user
|
|
213
|
-
redirect_to
|
|
279
|
+
redirect_to 'bla', notice: 'Success!'
|
|
214
280
|
else
|
|
215
|
-
redirect_to
|
|
281
|
+
redirect_to 'blu', alert: 'Failed!'
|
|
216
282
|
end
|
|
217
283
|
end
|
|
218
284
|
|
|
@@ -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 :
|
|
19
|
-
get :
|
|
20
|
-
get :
|
|
21
|
-
get :
|
|
22
|
-
get :
|
|
23
|
-
get :
|
|
24
|
-
get :
|
|
25
|
-
get :
|
|
26
|
-
get :
|
|
27
|
-
get :
|
|
28
|
-
get :
|
|
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
|
|
7
|
-
t.string :salt
|
|
6
|
+
t.string :crypted_password
|
|
7
|
+
t.string :salt
|
|
8
8
|
|
|
9
9
|
t.timestamps
|
|
10
10
|
end
|