diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index cab2806e7..7664f93cd 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -109,7 +109,7 @@ else: 'NAME': CONFIG.DB_NAME, 'HOST': CONFIG.DB_HOST, 'PORT': CONFIG.DB_PORT, - 'USER': CONFIG.DB_USERNAME, + 'USER': CONFIG.DB_USER, 'PASSWORD': CONFIG.DB_PASSWORD, } } @@ -194,7 +194,7 @@ WS4REDIS_CONNECTION = { 'db': 2, } -# Set the number of seconds each message shall persited +# Set the number of seconds each message shall persisted WS4REDIS_EXPIRE = 3600 WS4REDIS_HEARTBEAT = 'love you' diff --git a/apps/templates/_user_profile.html b/apps/templates/_user_profile.html index 4c2d07a48..041e41e88 100644 --- a/apps/templates/_user_profile.html +++ b/apps/templates/_user_profile.html @@ -10,7 +10,7 @@ {{ request.user.name }} - {{ role | default:'普通用户' }} + {{ request.user.get_role_display | default:'普通用户' }} diff --git a/apps/users/utils.py b/apps/users/utils.py index c84951fd7..8ed37c599 100644 --- a/apps/users/utils.py +++ b/apps/users/utils.py @@ -1,2 +1,12 @@ # ~*~ coding: utf-8 ~*~ # + +from django.contrib.auth.mixins import UserPassesTestMixin +from django.urls import reverse_lazy + + +class AdminUserRequiredMixin(UserPassesTestMixin): + login_url = reverse_lazy('users:login') + + def test_func(self): + return self.request.user.is_staff diff --git a/apps/users/views.py b/apps/users/views.py index ee781c068..136a52575 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -16,6 +16,7 @@ from django.contrib.auth import authenticate, login, logout from .models import User, UserGroup from .forms import UserAddForm, UserUpdateForm, UserGroupForm, UserLoginForm +from .utils import AdminUserRequiredMixin class UserLoginView(FormView): @@ -28,12 +29,6 @@ class UserLoginView(FormView): return HttpResponseRedirect(reverse('users:user-list')) return super(UserLoginView, self).get(request, *args, **kwargs) - def post(self, request, *args, **kwargs): - print(self.request.user) - print(request.POST) - print(request.session.session_key) - return HttpResponseRedirect('/') - def form_valid(self, form): username = form.cleaned_data.get('username', '') password = form.cleaned_data.get('password', '') @@ -50,7 +45,7 @@ class UserLoginView(FormView): return super(UserLoginView, self).form_invalid(form) -class UserListView(ListView): +class UserListView(AdminUserRequiredMixin, ListView): model = User paginate_by = settings.CONFIG.DISPLAY_PER_PAGE context_object_name = 'user_list' @@ -75,7 +70,7 @@ class UserListView(ListView): return context -class UserAddView(SuccessMessageMixin, CreateView): +class UserAddView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): model = User form_class = UserAddForm template_name = 'users/user_add.html' @@ -101,7 +96,7 @@ class UserAddView(SuccessMessageMixin, CreateView): ) -class UserUpdateView(UpdateView): +class UserUpdateView(AdminUserRequiredMixin, UpdateView): model = User form_class = UserUpdateForm template_name = 'users/user_edit.html' @@ -128,13 +123,13 @@ class UserUpdateView(UpdateView): return context -class UserDeleteView(DeleteView): +class UserDeleteView(AdminUserRequiredMixin, DeleteView): model = User success_url = reverse_lazy('users:user-list') template_name = 'users/user_delete_confirm.html' -class UserDetailView(DetailView): +class UserDetailView(AdminUserRequiredMixin, DetailView): model = User template_name = 'users/user_detail.html' context_object_name = "user" @@ -146,7 +141,7 @@ class UserDetailView(DetailView): return context -class UserGroupListView(ListView): +class UserGroupListView(AdminUserRequiredMixin, ListView): model = UserGroup paginate_by = settings.CONFIG.DISPLAY_PER_PAGE context_object_name = 'usergroup_list' @@ -170,7 +165,7 @@ class UserGroupListView(ListView): return context -class UserGroupAddView(CreateView): +class UserGroupAddView(AdminUserRequiredMixin, CreateView): model = UserGroup form_class = UserGroupForm template_name = 'users/usergroup_add.html'