124 |
124 |
|
125 |
125 |
|
126 |
126 |
class LoginView(ProfileMixin, LogMixin, View):
|
|
127 |
def dispatch(self, request, *args, **kwargs):
|
|
128 |
self.mellon_template_prefix = kwargs.pop('mellon_template_prefix', 'mellon')
|
|
129 |
return super(LoginView, self).dispatch(request, *args, **kwargs)
|
|
130 |
|
127 |
131 |
def get_idp(self, request):
|
128 |
132 |
entity_id = request.POST.get('entityID') or request.GET.get('entityID')
|
129 |
133 |
if not entity_id:
|
... | ... | |
180 |
184 |
if error_url:
|
181 |
185 |
error_url = resolve_url(error_url)
|
182 |
186 |
next_url = error_url or self.get_next_url(default=resolve_url(settings.LOGIN_REDIRECT_URL))
|
183 |
|
return render(request, 'mellon/authentication_failed.html',
|
|
187 |
return render(request, '%s/authentication_failed.html' % self.mellon_template_prefix,
|
184 |
188 |
{
|
185 |
189 |
'debug': settings.DEBUG,
|
186 |
190 |
'reason': reason,
|
... | ... | |
248 |
252 |
else:
|
249 |
253 |
self.log.warning('user %s (NameID is %r) is inactive, login refused', user,
|
250 |
254 |
attributes['name_id_content'])
|
251 |
|
return render(request, 'mellon/inactive_user.html', {
|
|
255 |
return render(request, '%s/inactive_user.html' % self.mellon_template_prefix, {
|
252 |
256 |
'user': user,
|
253 |
257 |
'saml_attributes': attributes})
|
254 |
258 |
else:
|
255 |
259 |
self.log.warning('no user found for NameID %r', attributes['name_id_content'])
|
256 |
|
return render(request, 'mellon/user_not_found.html',
|
|
260 |
return render(request, '%s/user_not_found.html' % self.mellon_template_prefix,
|
257 |
261 |
{'saml_attributes': attributes})
|
258 |
262 |
request.session['lasso_session_dump'] = login.session.dump()
|
259 |
263 |
|
260 |
|
-
|