diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index 2564064cf..5ee0cb56b 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -114,7 +114,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, } } @@ -263,7 +263,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 6989dc374..a006b3a6c 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -18,6 +18,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 logger = logging.getLogger('jumpserver.users.views') @@ -50,7 +51,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 +76,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 +102,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 +129,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 +147,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 +171,7 @@ class UserGroupListView(ListView): return context -class UserGroupAddView(CreateView): +class UserGroupAddView(AdminUserRequiredMixin, CreateView): model = UserGroup form_class = UserGroupForm template_name = 'users/usergroup_add.html'