Commit 5359da3c authored by ibuler's avatar ibuler

Finish user login

parent c9369db5
......@@ -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')),
......
apps/static/img/logo.png

5.97 KB | W: | H:

apps/static/img/logo.png

15.9 KB | W: | H:

apps/static/img/logo.png
apps/static/img/logo.png
apps/static/img/logo.png
apps/static/img/logo.png
  • 2-up
  • Swipe
  • Onion skin
{% 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 &copy; 2014</small>
{# <small>Inspinia we app framework base on Bootstrap 3 &copy; 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):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment