Update login error message

This commit is contained in:
ibuler
2016-09-03 00:39:06 +08:00
parent b8bebc9b64
commit 10d51ada37
9 changed files with 120 additions and 15 deletions

View File

@@ -0,0 +1,64 @@
{% load static %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
{% include '_head_css_js.html' %}
<link href="{% static "css/jumpserver.css" %}" rel="stylesheet">
<script src="{% static "js/jumpserver.js" %}"></script>
</head>
<body class="gray-bg">
<div class="passwordBox2 animated fadeInDown">
<div class="row">
<div class="col-md-12">
<div class="ibox-content">
<div>
<img src="{% static 'img/logo.png' %}" style="margin: auto" width="82" height="82">
<h2 style="display: inline">Jumpserver</h2>
</div>
<p>
<div class="alert alert-success" id="messages">
退出登录成功
</div>
</p>
<div class="row">
<div class="col-lg-3">
<a href="{% url "users:login" %}" class="btn btn-primary block full-width m-b">返回</a>
</div>
</div>
</div>
</div>
</div>
<hr/>
<div class="row">
<div class="col-md-6">
Copyright Jumpserver.org
</div>
<div class="col-md-6 text-right">
<small>2014-2016</small>
</div>
</div>
</div>
</body>
<script>
var time=2;
function redirect_page() {
if (time >= 0) {
var messages = '退出登录成功,<b>' + time +'</b> 秒后 返回到登录页面 ';
$('#messages').html(messages);
time--;
setTimeout(redirect_page, 1000);
}
else {
window.location.href = "{% url 'users:login' %}";
}
}
window.onload = redirect_page
</script>
</html>

View File

@@ -110,8 +110,8 @@
<td><b>{{ user.last_login|date:"Y-m-j H:i:s" }}</b></td>
</tr>
<tr>
<td class="no-borders">描述:</td>
<td class="no-borders"><b>{{ user.comment }}</b></td>
<td>描述:</td>
<td><b>{{ user.comment }}</b></td>
</tr>
</tbody>
</table>

View File

@@ -1,5 +1,6 @@
from django.conf.urls import url, include
from django.contrib.auth import views as auth_views
from django.urls import reverse_lazy
import views
import api
@@ -8,7 +9,7 @@ app_name = 'users'
urlpatterns = [
url(r'^login$', views.UserLoginView.as_view(), name='login'),
url(r'^logout$', auth_views.logout, {'template_name': 'users/login.html'}, name='logout'),
url(r'^logout$', views.UserLogoutView.as_view(), name='logout'),
url(r'^captcha/', include('captcha.urls')),
url(r'^password/forget$', views.UserForgetPasswordView.as_view(), name='forget-password'),
url(r'^password/forget/sendmail-success$',

View File

@@ -15,7 +15,7 @@ from django.views.generic.detail import DetailView
from django.contrib.messages.views import SuccessMessageMixin
from django.conf import settings
from django.http import HttpResponseRedirect
from django.contrib.auth import views as auth_view, authenticate, login
from django.contrib.auth import views as auth_view, authenticate, login, logout
from common.utils import get_object_or_none
@@ -34,8 +34,11 @@ class UserLoginView(FormView):
def get(self, request, *args, **kwargs):
if self.request.user.is_staff:
return redirect(request.GET.get(self.redirect_field_name, reverse('index')))
return super(UserLoginView, self).get(request, *args, **kwargs)
return redirect(request.POST.get(self.redirect_field_name, reverse('index')))
# Todo: Django have bug, lose context issue: https://github.com/django/django/pull/7202
# so we jump it and use origin method render_to_response
# return super(UserLoginView, self).get(request, *args, **kwargs)
return self.render_to_response(self.get_context_data(**kwargs))
def post(self, request, *args, **kwargs):
form = self.get_form()
@@ -51,6 +54,25 @@ class UserLoginView(FormView):
return redirect(request.GET.get(self.redirect_field_name, reverse('index')))
class UserLogoutView(TemplateView):
template_name = 'common/flash_message_standalone.html'
def get(self, request, *args, **kwargs):
logout(request)
return super(UserLogoutView, self).get(request)
def get_context_data(self, **kwargs):
context = {
'title': '退出登录成功',
'messages': '退出登录成功, 返回登录页面',
'redirect_url': reverse('users:login'),
'auto_redirect': True,
}
kwargs.update(context)
return super(UserLogoutView, self).get_context_data(**kwargs)
class UserListView(AdminUserRequiredMixin, ListView):
model = User
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
@@ -239,8 +261,9 @@ class UserResetPasswordSuccessView(TemplateView):
def get_context_data(self, **kwargs):
context = {
'title': '重设密码成功',
'messages': '密码重置成功, 返回登录页面登录系统',
'messages': '密码重置成功, 返回登录页面 ',
'redirect_url': reverse('users:login'),
'auto_redirect': True,
}
kwargs.update(context)
return super(UserResetPasswordSuccessView, self).get_context_data(**kwargs)
@@ -263,7 +286,7 @@ class UserResetPasswordView(TemplateView):
token = request.GET.get('token')
if password != password_confirm:
return self.get(request, errors='两次密码不匹配')
return self.get(request, errors='两次密码不一致')
user = User.validate_reset_token(token)
if not user: