Commit 07dd6d11 authored by ibuler's avatar ibuler

Reslove conflict

parents 25d9dbe9 8cc09f0e
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<strong class="font-bold"> {{ user.name }}<span style="color: #8095a8"></span></strong> <strong class="font-bold"> {{ user.name }}<span style="color: #8095a8"></span></strong>
</span> </span>
<span class="text-muted text-xs block"> <span class="text-muted text-xs block">
{{ request.user.get_role_display | default:_('User') }}<b class="caret"></b> {{ user.get_role_display | default:_('User') }}<b class="caret"></b>
</span> </span>
</span> </span>
</a> </a>
......
from django.conf.urls import url from django.conf.urls import url
from django.contrib.auth import views as auth_views
from django.utils.translation import ugettext as _
import views import views
import api import api
from .forms import UserLoginForm
app_name = 'users' app_name = 'users'
urlpatterns = [ urlpatterns = [
url(r'^login$', url(r'^login$', views.UserLoginView.as_view(), name='login'),
auth_views.login, url(r'^logout$', views.UserLogoutView.as_view(), name='logout'),
{'template_name': "users/login.html", url(r'^password/forget$', views.UserForgotPasswordView.as_view(), name='forget-password'),
'authentication_form': UserLoginForm, url(r'^password/forget/sendmail-success$',
'redirect_authenticated_user': True}, views.UserForgotPasswordSendmailSuccessView.as_view(), name='forget-password-sendmail-success'),
name='login'),
url(r'^logout$',
auth_views.logout,
{
"template_name": "common/flash_message_standalone.html",
"extra_context": {
'title': _('Logout success'),
'messages': _('Logout success, return login page'),
'redirect_url': '/users/login',
'auto_redirect': True,
}
},
name='logout'),
url(r'^password/forgot$', views.UserForgotPasswordView.as_view(), name='forgot-password'),
url(r'^password/forgot/sendmail-success$',
views.UserForgotPasswordSendmailSuccessView.as_view(), name='forgot-password-sendmail-success'),
url(r'^password/reset$', views.UserResetPasswordView.as_view(), name='reset-password'), url(r'^password/reset$', views.UserResetPasswordView.as_view(), name='reset-password'),
url(r'^password/reset/success$', views.UserResetPasswordSuccessView.as_view(), url(r'^password/reset/success$', views.UserResetPasswordSuccessView.as_view(),
name='reset-password-success'), name='reset-password-success'),
......
...@@ -5,15 +5,20 @@ from __future__ import unicode_literals ...@@ -5,15 +5,20 @@ from __future__ import unicode_literals
import logging import logging
from django.conf import settings from django.conf import settings
from django.contrib.auth import login as auth_login, logout as auth_logout
from django.contrib.messages.views import SuccessMessageMixin from django.contrib.messages.views import SuccessMessageMixin
from django.db.models import Q from django.db.models import Q
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404, reverse from django.shortcuts import get_object_or_404, reverse, redirect
from django.urls import reverse_lazy from django.utils.decorators import method_decorator
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.urls import reverse_lazy
from django.views.decorators.cache import never_cache
from django.views.decorators.csrf import csrf_protect
from django.views.decorators.debug import sensitive_post_parameters
from django.views.generic.base import TemplateView from django.views.generic.base import TemplateView
from django.views.generic.list import ListView from django.views.generic.list import ListView
from django.views.generic.edit import CreateView, DeleteView, UpdateView from django.views.generic.edit import CreateView, DeleteView, UpdateView, FormView
from django.views.generic.detail import DetailView from django.views.generic.detail import DetailView
from common.utils import get_object_or_none from common.utils import get_object_or_none
...@@ -26,6 +31,43 @@ from .utils import AdminUserRequiredMixin, user_add_success_next, send_reset_pas ...@@ -26,6 +31,43 @@ from .utils import AdminUserRequiredMixin, user_add_success_next, send_reset_pas
logger = logging.getLogger('jumpserver.users.views') logger = logging.getLogger('jumpserver.users.views')
@method_decorator(sensitive_post_parameters(), name='dispatch')
@method_decorator(csrf_protect, name='dispatch')
@method_decorator(never_cache, name='dispatch')
class UserLoginView(FormView):
template_name = 'users/login.html'
form_class = UserLoginForm
redirect_field_name = 'next'
def get(self, request, *args, **kwargs):
if request.user.is_staff:
return redirect(request.POST.get(self.redirect_field_name, reverse('index')))
return self.render_to_response(self.get_context_data(**kwargs))
def form_valid(self, form):
auth_login(self.request, form.get_user())
return redirect(self.request.POST.get(self.redirect_field_name, reverse('index')))
@method_decorator(never_cache, name='dispatch')
class UserLogoutView(TemplateView):
template_name = 'common/flash_message_standalone.html'
def get(self, request, *args, **kwargs):
auth_logout(request)
return super(UserLogoutView, self).get(request)
def get_context_data(self, **kwargs):
context = {
'title': _('Logout success'),
'messages': _('Logout success, return login page'),
'redirect_url': reverse('users:login'),
'auto_redirect': True,
}
kwargs.update(context)
return super(UserLogoutView, self).get_context_data(**kwargs)
class UserListView(AdminUserRequiredMixin, ListView): class UserListView(AdminUserRequiredMixin, ListView):
model = User model = User
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
......
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