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'