mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-01-29 21:51:31 +00:00
perf: 优化登录,cas, openid 自动登录
This commit is contained in:
@@ -1,18 +1,15 @@
|
||||
# ~*~ coding: utf-8 ~*~
|
||||
|
||||
from __future__ import unicode_literals
|
||||
from django.shortcuts import render
|
||||
from django.views.generic import RedirectView
|
||||
from django.core.files.storage import default_storage
|
||||
from django.shortcuts import reverse, redirect
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.views.generic.base import TemplateView
|
||||
from django.conf import settings
|
||||
from django.urls import reverse_lazy
|
||||
from formtools.wizard.views import SessionWizardView
|
||||
from django.views.generic import FormView
|
||||
|
||||
from common.utils import get_object_or_none
|
||||
from common.utils import get_object_or_none, FlashMessageUtil
|
||||
from common.permissions import IsValidUser
|
||||
from common.mixins.views import PermissionsMixin
|
||||
from ...models import User
|
||||
@@ -24,9 +21,7 @@ from ... import forms
|
||||
|
||||
|
||||
__all__ = [
|
||||
'UserLoginView', 'UserForgotPasswordSendmailSuccessView',
|
||||
'UserResetPasswordSuccessView', 'UserResetPasswordSuccessView',
|
||||
'UserResetPasswordView', 'UserForgotPasswordView', 'UserFirstLoginView',
|
||||
'UserLoginView', 'UserResetPasswordView', 'UserForgotPasswordView', 'UserFirstLoginView',
|
||||
]
|
||||
|
||||
|
||||
@@ -39,6 +34,17 @@ class UserForgotPasswordView(FormView):
|
||||
template_name = 'users/forgot_password.html'
|
||||
form_class = forms.UserForgotPasswordForm
|
||||
|
||||
@staticmethod
|
||||
def get_redirect_message_url():
|
||||
message_data = {
|
||||
'title': _('Send reset password message'),
|
||||
'message': _('Send reset password mail success, '
|
||||
'login your mail box and follow it '),
|
||||
'redirect_url': reverse('authentication:login'),
|
||||
}
|
||||
url = FlashMessageUtil.gen_message_url(message_data)
|
||||
return url
|
||||
|
||||
def form_valid(self, form):
|
||||
email = form.cleaned_data['email']
|
||||
user = get_object_or_none(User, email=email)
|
||||
@@ -53,37 +59,9 @@ class UserForgotPasswordView(FormView):
|
||||
).format(user.get_source_display())
|
||||
form.add_error('email', error)
|
||||
return self.form_invalid(form)
|
||||
|
||||
send_reset_password_mail(user)
|
||||
return redirect('authentication:forgot-password-sendmail-success')
|
||||
|
||||
|
||||
class UserForgotPasswordSendmailSuccessView(TemplateView):
|
||||
template_name = 'flash_message_standalone.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'title': _('Send reset password message'),
|
||||
'messages': _('Send reset password mail success, '
|
||||
'login your mail box and follow it '),
|
||||
'redirect_url': reverse('authentication:login'),
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
||||
|
||||
class UserResetPasswordSuccessView(TemplateView):
|
||||
template_name = 'flash_message_standalone.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = {
|
||||
'title': _('Reset password success'),
|
||||
'messages': _('Reset password success, return to login page'),
|
||||
'redirect_url': reverse('authentication:login'),
|
||||
'auto_redirect': True,
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
url = self.get_redirect_message_url()
|
||||
return redirect(url)
|
||||
|
||||
|
||||
class UserResetPasswordView(FormView):
|
||||
@@ -139,7 +117,18 @@ class UserResetPasswordView(FormView):
|
||||
user.reset_password(password)
|
||||
User.expired_reset_password_token(token)
|
||||
send_reset_password_success_mail(self.request, user)
|
||||
return redirect('authentication:reset-password-success')
|
||||
url = self.get_redirect_url()
|
||||
return redirect(url)
|
||||
|
||||
@staticmethod
|
||||
def get_redirect_url():
|
||||
message_data = {
|
||||
'title': _('Reset password success'),
|
||||
'message': _('Reset password success, return to login page'),
|
||||
'redirect_url': reverse('authentication:login'),
|
||||
'auto_redirect': True,
|
||||
}
|
||||
return FlashMessageUtil.gen_message_url(message_data)
|
||||
|
||||
|
||||
class UserFirstLoginView(PermissionsMixin, TemplateView):
|
||||
|
||||
Reference in New Issue
Block a user