mirror of https://github.com/jumpserver/jumpserver
Finish user login
parent
c9369db578
commit
5359da3ce2
|
@ -13,6 +13,8 @@ https://docs.djangoproject.com/en/1.10/ref/settings/
|
|||
import os
|
||||
import sys
|
||||
|
||||
from django.urls import reverse_lazy
|
||||
|
||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
PROJECT_DIR = os.path.dirname(BASE_DIR)
|
||||
|
@ -98,6 +100,8 @@ TEMPLATES = [
|
|||
|
||||
# WSGI_APPLICATION = 'jumpserver.wsgi.application'
|
||||
|
||||
LOGIN_REDIRECT_URL = reverse_lazy('index')
|
||||
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ from django.http import HttpResponseRedirect
|
|||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', TemplateView.as_view(template_name='base.html')),
|
||||
url(r'^$', TemplateView.as_view(template_name='base.html'), name='index'),
|
||||
url(r'^(api/)?users/', include('users.urls')),
|
||||
url(r'^assets/', include('assets.urls')),
|
||||
url(r'^terminal/', include('webterminal.urls')),
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 16 KiB |
|
@ -1,5 +1,4 @@
|
|||
{% load static %}
|
||||
{#{% load bootstrap %}#}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
|
@ -14,7 +13,7 @@
|
|||
<link href="{% static "css/style.css" %}" rel="stylesheet">
|
||||
<link href="{% static "css/animate.css" %}" rel="stylesheet">
|
||||
<link href="{% static "css/font-awesome.css" %}" rel="stylesheet">
|
||||
{# <script src="{% static "js/base.js" %}"></script>#}
|
||||
<link href="{% static "css/jumpserver.css" %}" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body class="gray-bg">
|
||||
|
@ -23,33 +22,39 @@
|
|||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
<h2 class="font-bold">Welcome to IN+</h2>
|
||||
|
||||
<h2 class="font-bold">欢迎使用Jumpserver开源跳板机</h2>
|
||||
|
||||
<p>
|
||||
Perfectly designed and precisely prepared admin theme with over 50 pages with extra new web app views.
|
||||
Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业高效 用户、资产、权限、审计 管理
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.
|
||||
我们自五湖四海,我们对开源精神无比敬仰和崇拜,我们对完美、整洁、优雅 无止境的追求
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When an unknown printer took a galley of type and scrambled it to make a type specimen book.
|
||||
专注自动化运维,努力打造 易用、稳定、安全、自动化 的跳板机, 这是我们的不懈的追求和动力
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<small>It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</small>
|
||||
<small>永远年轻,永远热泪盈眶 stay foolish stay hungry</small>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="ibox-content">
|
||||
<form class="m-t" role="form" action="index.html">
|
||||
<div><img src="{% static 'img/logo.png' %}" width="82" height="82"> <span class="font-bold text-center" style="font-size: 32px; font-family: inherit">登录</span></div>
|
||||
<form class="m-t" role="form" method="post" action="{% url 'users:login' %}">
|
||||
{% csrf_token %}
|
||||
{% if form.errors %}
|
||||
<p class="red-fonts">用户名/密码 不正确, 请重试</p>
|
||||
{% endif %}
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control" placeholder="Username" required="">
|
||||
<input type="text" class="form-control" name="username" placeholder="Username" required="">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="password" class="form-control" placeholder="Password" required="">
|
||||
<input type="password" class="form-control" name="password" placeholder="Password" required="">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary block full-width m-b">Login</button>
|
||||
|
||||
|
@ -58,12 +63,12 @@
|
|||
</a>
|
||||
|
||||
<p class="text-muted text-center">
|
||||
<small>Do not have an account?</small>
|
||||
{# <small>Do not have an account?</small>#}
|
||||
</p>
|
||||
<a class="btn btn-sm btn-white btn-block" href="register.html">Create an account</a>
|
||||
{# <a class="btn btn-sm btn-white btn-block" href="register.html">Create an account</a>#}
|
||||
</form>
|
||||
<p class="m-t">
|
||||
<small>Inspinia we app framework base on Bootstrap 3 © 2014</small>
|
||||
{# <small>Inspinia we app framework base on Bootstrap 3 © 2014</small>#}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -71,10 +76,10 @@
|
|||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
Copyright Example Company
|
||||
Copyright Jumpserver.org
|
||||
</div>
|
||||
<div class="col-md-6 text-right">
|
||||
<small>© 2014-2015</small>
|
||||
<small>© 2014-2016</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -24,31 +24,31 @@ from .utils import AdminUserRequiredMixin, ssh_key_gen
|
|||
logger = logging.getLogger('jumpserver.users.views')
|
||||
|
||||
|
||||
class UserLoginView(FormView):
|
||||
template_name = 'users/login.html'
|
||||
form_class = UserLoginForm
|
||||
success_url = reverse_lazy('users:user-list')
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
if self.request.user.is_staff:
|
||||
return HttpResponseRedirect(reverse('users:user-list'))
|
||||
return super(UserLoginView, self).get(request, *args, **kwargs)
|
||||
|
||||
def form_valid(self, form):
|
||||
username = form.cleaned_data.get('username', '')
|
||||
password = form.cleaned_data.get('password', '')
|
||||
|
||||
user = authenticate(username=username, password=password)
|
||||
if user is not None and user.is_staff:
|
||||
login(self.request, user)
|
||||
return HttpResponseRedirect(self.success_url)
|
||||
|
||||
logger.warning('Login user [%(username)s] password error' % {'username': username})
|
||||
return render(self.request, self.template_name, context={'form': form, 'error': '密码错误'})
|
||||
|
||||
def form_invalid(self, form):
|
||||
logger.warning('Login form commit invalid.')
|
||||
return super(UserLoginView, self).form_invalid(form)
|
||||
# class UserLoginView(FormView):
|
||||
# template_name = 'users/login.html'
|
||||
# form_class = UserLoginForm
|
||||
# success_url = reverse_lazy('users:user-list')
|
||||
#
|
||||
# def get(self, request, *args, **kwargs):
|
||||
# if self.request.user.is_staff:
|
||||
# return HttpResponseRedirect(reverse('users:user-list'))
|
||||
# return super(UserLoginView, self).get(request, *args, **kwargs)
|
||||
#
|
||||
# def form_valid(self, form):
|
||||
# username = form.cleaned_data.get('username', '')
|
||||
# password = form.cleaned_data.get('password', '')
|
||||
#
|
||||
# user = authenticate(username=username, password=password)
|
||||
# if user is not None and user.is_staff:
|
||||
# login(self.request, user)
|
||||
# return HttpResponseRedirect(self.success_url)
|
||||
#
|
||||
# logger.warning('Login user [%(username)s] password error' % {'username': username})
|
||||
# return render(self.request, self.template_name, context={'form': form, 'error': '密码错误'})
|
||||
#
|
||||
# def form_invalid(self, form):
|
||||
# logger.warning('Login form commit invalid.')
|
||||
# return super(UserLoginView, self).form_invalid(form)
|
||||
|
||||
|
||||
class UserListView(AdminUserRequiredMixin, ListView):
|
||||
|
|
Loading…
Reference in New Issue