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 os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
from django.urls import reverse_lazy
|
||||||
|
|
||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||||
PROJECT_DIR = os.path.dirname(BASE_DIR)
|
PROJECT_DIR = os.path.dirname(BASE_DIR)
|
||||||
|
@ -98,6 +100,8 @@ TEMPLATES = [
|
||||||
|
|
||||||
# WSGI_APPLICATION = 'jumpserver.wsgi.application'
|
# WSGI_APPLICATION = 'jumpserver.wsgi.application'
|
||||||
|
|
||||||
|
LOGIN_REDIRECT_URL = reverse_lazy('index')
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
|
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ from django.http import HttpResponseRedirect
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
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'^(api/)?users/', include('users.urls')),
|
||||||
url(r'^assets/', include('assets.urls')),
|
url(r'^assets/', include('assets.urls')),
|
||||||
url(r'^terminal/', include('webterminal.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 static %}
|
||||||
{#{% load bootstrap %}#}
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
|
|
||||||
|
@ -14,7 +13,7 @@
|
||||||
<link href="{% static "css/style.css" %}" rel="stylesheet">
|
<link href="{% static "css/style.css" %}" rel="stylesheet">
|
||||||
<link href="{% static "css/animate.css" %}" rel="stylesheet">
|
<link href="{% static "css/animate.css" %}" rel="stylesheet">
|
||||||
<link href="{% static "css/font-awesome.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>
|
</head>
|
||||||
|
|
||||||
<body class="gray-bg">
|
<body class="gray-bg">
|
||||||
|
@ -23,33 +22,39 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<h2 class="font-bold">Welcome to IN+</h2>
|
|
||||||
|
<h2 class="font-bold">欢迎使用Jumpserver开源跳板机</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Perfectly designed and precisely prepared admin theme with over 50 pages with extra new web app views.
|
Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业高效 用户、资产、权限、审计 管理
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<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>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
When an unknown printer took a galley of type and scrambled it to make a type specimen book.
|
专注自动化运维,努力打造 易用、稳定、安全、自动化 的跳板机, 这是我们的不懈的追求和动力
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<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>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="ibox-content">
|
<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">
|
<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>
|
||||||
<div class="form-group">
|
<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>
|
</div>
|
||||||
<button type="submit" class="btn btn-primary block full-width m-b">Login</button>
|
<button type="submit" class="btn btn-primary block full-width m-b">Login</button>
|
||||||
|
|
||||||
|
@ -58,12 +63,12 @@
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<p class="text-muted text-center">
|
<p class="text-muted text-center">
|
||||||
<small>Do not have an account?</small>
|
{# <small>Do not have an account?</small>#}
|
||||||
</p>
|
</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>
|
</form>
|
||||||
<p class="m-t">
|
<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>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -71,10 +76,10 @@
|
||||||
<hr/>
|
<hr/>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
Copyright Example Company
|
Copyright Jumpserver.org
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 text-right">
|
<div class="col-md-6 text-right">
|
||||||
<small>© 2014-2015</small>
|
<small>© 2014-2016</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -24,31 +24,31 @@ from .utils import AdminUserRequiredMixin, ssh_key_gen
|
||||||
logger = logging.getLogger('jumpserver.users.views')
|
logger = logging.getLogger('jumpserver.users.views')
|
||||||
|
|
||||||
|
|
||||||
class UserLoginView(FormView):
|
# class UserLoginView(FormView):
|
||||||
template_name = 'users/login.html'
|
# template_name = 'users/login.html'
|
||||||
form_class = UserLoginForm
|
# form_class = UserLoginForm
|
||||||
success_url = reverse_lazy('users:user-list')
|
# success_url = reverse_lazy('users:user-list')
|
||||||
|
#
|
||||||
def get(self, request, *args, **kwargs):
|
# def get(self, request, *args, **kwargs):
|
||||||
if self.request.user.is_staff:
|
# if self.request.user.is_staff:
|
||||||
return HttpResponseRedirect(reverse('users:user-list'))
|
# return HttpResponseRedirect(reverse('users:user-list'))
|
||||||
return super(UserLoginView, self).get(request, *args, **kwargs)
|
# return super(UserLoginView, self).get(request, *args, **kwargs)
|
||||||
|
#
|
||||||
def form_valid(self, form):
|
# def form_valid(self, form):
|
||||||
username = form.cleaned_data.get('username', '')
|
# username = form.cleaned_data.get('username', '')
|
||||||
password = form.cleaned_data.get('password', '')
|
# password = form.cleaned_data.get('password', '')
|
||||||
|
#
|
||||||
user = authenticate(username=username, password=password)
|
# user = authenticate(username=username, password=password)
|
||||||
if user is not None and user.is_staff:
|
# if user is not None and user.is_staff:
|
||||||
login(self.request, user)
|
# login(self.request, user)
|
||||||
return HttpResponseRedirect(self.success_url)
|
# return HttpResponseRedirect(self.success_url)
|
||||||
|
#
|
||||||
logger.warning('Login user [%(username)s] password error' % {'username': username})
|
# logger.warning('Login user [%(username)s] password error' % {'username': username})
|
||||||
return render(self.request, self.template_name, context={'form': form, 'error': '密码错误'})
|
# return render(self.request, self.template_name, context={'form': form, 'error': '密码错误'})
|
||||||
|
#
|
||||||
def form_invalid(self, form):
|
# def form_invalid(self, form):
|
||||||
logger.warning('Login form commit invalid.')
|
# logger.warning('Login form commit invalid.')
|
||||||
return super(UserLoginView, self).form_invalid(form)
|
# return super(UserLoginView, self).form_invalid(form)
|
||||||
|
|
||||||
|
|
||||||
class UserListView(AdminUserRequiredMixin, ListView):
|
class UserListView(AdminUserRequiredMixin, ListView):
|
||||||
|
|
Loading…
Reference in New Issue