4
4
5
5
from django .conf import settings
6
6
from django .contrib import messages
7
- from django .contrib .auth import get_user_model , update_session_auth_hash
7
+ from django .contrib .auth import get_user_model
8
8
from django .core .exceptions import FieldDoesNotExist
9
9
from django .db import models
10
10
from django .db .models import Q
13
13
14
14
from allauth .account import app_settings , signals
15
15
from allauth .account .adapter import get_adapter
16
+ from allauth .account .internal import flows
16
17
from allauth .account .models import Login
17
- from allauth .core .exceptions import ImmediateHttpResponse
18
18
from allauth .utils import (
19
19
get_request_param ,
20
20
import_callable ,
@@ -63,14 +63,6 @@ def get_login_redirect_url(request, url=None, redirect_field_name="next", signup
63
63
_user_display_callable = None
64
64
65
65
66
- def logout_on_password_change (request , user ):
67
- # Since it is the default behavior of Django to invalidate all sessions on
68
- # password change, this function actually has to preserve the session when
69
- # logout isn't desired.
70
- if not app_settings .LOGOUT_ON_PASSWORD_CHANGE :
71
- update_session_auth_hash (request , user )
72
-
73
-
74
66
def default_user_display (user ):
75
67
if app_settings .USER_MODEL_USERNAME_FIELD :
76
68
return getattr (user , app_settings .USER_MODEL_USERNAME_FIELD )
@@ -148,15 +140,6 @@ def perform_login(
148
140
signup = False ,
149
141
email = None ,
150
142
):
151
- """
152
- Keyword arguments:
153
-
154
- signup -- Indicates whether or not sending the
155
- email is essential (during signup), or if it can be skipped (e.g. in
156
- case email verification is optional and we are only logging in).
157
- """
158
- if not email_verification :
159
- email_verification = app_settings .EMAIL_VERIFICATION
160
143
login = Login (
161
144
user = user ,
162
145
email_verification = email_verification ,
@@ -165,53 +148,11 @@ def perform_login(
165
148
signup = signup ,
166
149
email = email ,
167
150
)
168
- return _perform_login (request , login )
169
-
170
-
171
- def _perform_login (request , login ):
172
- # Local users are stopped due to form validation checking
173
- # is_active, yet, adapter methods could toy with is_active in a
174
- # `user_signed_up` signal. Furthermore, social users should be
175
- # stopped anyway.
176
- adapter = get_adapter ()
177
- hook_kwargs = _get_login_hook_kwargs (login )
178
- response = adapter .pre_login (request , login .user , ** hook_kwargs )
179
- if response :
180
- return response
181
- return resume_login (request , login )
182
-
183
-
184
- def _get_login_hook_kwargs (login ):
185
- """
186
- TODO: Just break backwards compatibility and pass only `login` to
187
- `pre/post_login()`.
188
- """
189
- return dict (
190
- email_verification = login .email_verification ,
191
- redirect_url = login .redirect_url ,
192
- signal_kwargs = login .signal_kwargs ,
193
- signup = login .signup ,
194
- email = login .email ,
195
- )
151
+ return flows .login .perform_login (request , login )
196
152
197
153
198
154
def resume_login (request , login ):
199
- from allauth .account .stages import LoginStageController
200
-
201
- adapter = get_adapter ()
202
- ctrl = LoginStageController (request , login )
203
- try :
204
- response = ctrl .handle ()
205
- if response :
206
- return response
207
- adapter .login (request , login .user )
208
- hook_kwargs = _get_login_hook_kwargs (login )
209
- response = adapter .post_login (request , login .user , ** hook_kwargs )
210
- if response :
211
- return response
212
- except ImmediateHttpResponse as e :
213
- response = e .response
214
- return response
155
+ return flows .login .resume_login (request , login )
215
156
216
157
217
158
def unstash_login (request , peek = False ):
0 commit comments