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'