From f54d20d1e630318d514ed04baed2dd8ac9189552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Wed, 31 Mar 2021 10:35:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBUG(=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86):=20=E4=B8=AA=E4=BA=BA=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=AF=86=E7=A0=81bug=EF=BC=8CUserProfile=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE=E5=88=9B=E5=BB=BA=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-backend/apps/vadmin/op_drf/middleware.py | 4 ++-- dvadmin-backend/apps/vadmin/permission/models/users.py | 8 +++----- dvadmin-backend/apps/vadmin/permission/views.py | 2 +- .../vadmin/scripts/permission/permission_userprofile.sql | 4 ++-- dvadmin-backend/apps/vadmin/utils/authentication.py | 4 +++- dvadmin-ui/src/views/vadmin/permission/user/index.vue | 3 ++- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/dvadmin-backend/apps/vadmin/op_drf/middleware.py b/dvadmin-backend/apps/vadmin/op_drf/middleware.py index 8e8169c..c03c039 100644 --- a/dvadmin-backend/apps/vadmin/op_drf/middleware.py +++ b/dvadmin-backend/apps/vadmin/op_drf/middleware.py @@ -52,7 +52,7 @@ class ApiLoggingMiddleware(MiddlewareMixin): user = get_request_user(request) info = { 'request_ip': getattr(request, 'request_ip', 'unknown'), - 'creator': user if not isinstance(user, AnonymousUser) else '', + 'creator': user if not isinstance(user, AnonymousUser) else None, 'dept_belong_id': getattr(request.user, 'dept_id', None), 'request_method': request.method, 'request_path': request.request_path, @@ -70,7 +70,7 @@ class ApiLoggingMiddleware(MiddlewareMixin): log.save() def process_view(self, request, view_func, view_args, view_kwargs): - if view_func.cls and hasattr(view_func.cls, 'queryset'): + if hasattr(view_func,'cls') and hasattr(view_func.cls, 'queryset'): request.session['model_name'] = get_verbose_name(view_func.cls.queryset) return diff --git a/dvadmin-backend/apps/vadmin/permission/models/users.py b/dvadmin-backend/apps/vadmin/permission/models/users.py index 2fead2f..e609a2a 100644 --- a/dvadmin-backend/apps/vadmin/permission/models/users.py +++ b/dvadmin-backend/apps/vadmin/permission/models/users.py @@ -4,10 +4,10 @@ from django.contrib.auth.models import UserManager, AbstractUser from django.core.cache import cache from django.db.models import IntegerField, ForeignKey, CharField, TextField, ManyToManyField, CASCADE -from ...op_drf.fields import CreateDateTimeField, UpdateDateTimeField +from ...op_drf.models import CoreModel -class UserProfile(AbstractUser): +class UserProfile(AbstractUser, CoreModel): USER_TYPE_CHOICES = ( (0, "后台用户"), (1, "前台用户"), @@ -25,9 +25,6 @@ class UserProfile(AbstractUser): post = ManyToManyField(to='Post', verbose_name='关联岗位', db_constraint=False) role = ManyToManyField(to='Role', verbose_name='关联角色', db_constraint=False) dept = ForeignKey(to='Dept', verbose_name='归属部门', on_delete=CASCADE, db_constraint=False, null=True, blank=True) - dept_belong_id = CharField(max_length=64, verbose_name="数据归属部门", null=True, blank=True) - create_datetime = CreateDateTimeField() - update_datetime = UpdateDateTimeField() @property def get_user_interface_dict(self): @@ -52,6 +49,7 @@ class UserProfile(AbstractUser): :return: """ return cache.delete(f'permission_interface_dict_{self.username}') + class Meta: verbose_name = '用户管理' verbose_name_plural = verbose_name diff --git a/dvadmin-backend/apps/vadmin/permission/views.py b/dvadmin-backend/apps/vadmin/permission/views.py index 72855b4..86110de 100644 --- a/dvadmin-backend/apps/vadmin/permission/views.py +++ b/dvadmin-backend/apps/vadmin/permission/views.py @@ -359,7 +359,7 @@ class UserProfileModelViewSet(CustomModelViewSet): :return: """ instance = self.queryset.get(id=request.user.id) - instance.mobile = request.data.get('newPassword', None) + instance.password = request.data.get('newPassword', None) if not authenticate(username=request.user.username, password=request.data.get('oldPassword', None)): return ErrorResponse(msg='旧密码不正确!') instance.set_password(request.data.get('newPassword')) diff --git a/dvadmin-backend/apps/vadmin/scripts/permission/permission_userprofile.sql b/dvadmin-backend/apps/vadmin/scripts/permission/permission_userprofile.sql index e59fc9e..56e3630 100644 --- a/dvadmin-backend/apps/vadmin/scripts/permission/permission_userprofile.sql +++ b/dvadmin-backend/apps/vadmin/scripts/permission/permission_userprofile.sql @@ -33,8 +33,8 @@ -- ---------------------------- -- Records of permission_userprofile -- ---------------------------- -INSERT INTO `permission_userprofile` (id, password, last_login, is_superuser, first_name, last_name, is_staff, is_active, date_joined, username, secret, email, mobile, avatar, name, gender, remark, user_type, create_datetime, update_datetime, dept_id, dept_belong_id) VALUES (1, 'pbkdf2_sha256$150000$OjTMSXJgkzrE$jEQCjWbIbXwpN4k2z0o8Yvou1UQGuoJALyL/kGDZFd4=', '2021-02-27 06:20:28.214775', 1, '', '', 1, 1, '2021-02-27 06:20:09.188689', 'admin', '3704adf3-380f-4c27-a8da-60420e8cb4ab', 'admin@qq.com', NULL, NULL, '管理员', '2', '1', 2, '2021-02-27 06:20:09.263192', '2021-02-27 09:14:30.009998', 8, 1); -INSERT INTO `permission_userprofile` (id, password, last_login, is_superuser, first_name, last_name, is_staff, is_active, date_joined, username, secret, email, mobile, avatar, name, gender, remark, user_type, create_datetime, update_datetime, dept_id, dept_belong_id) VALUES (2, 'pbkdf2_sha256$150000$5Z9LSi7LpNms$xVguE/dOEpI4D95LjSaKm0xzG7vNSopUolANr8f/6/E=', NULL, 0, '', '', 0, 1, '2021-03-03 15:38:27.009893', 'dvadmin', 'b4c5d79a-f01c-4244-92f8-b5288eca1d50', NULL, NULL, NULL, '普通用户', '2', NULL, 0, '2021-03-03 15:38:27.010771', '2021-03-03 15:38:27.086069', 8, 1); +INSERT INTO `permission_userprofile` (id, password, last_login, is_superuser, first_name, last_name, is_staff, is_active, date_joined, username, secret, email, mobile, avatar, name, gender, remark, user_type, create_datetime, update_datetime, dept_id, dept_belong_id, creator_id) VALUES (1, 'pbkdf2_sha256$150000$OjTMSXJgkzrE$jEQCjWbIbXwpN4k2z0o8Yvou1UQGuoJALyL/kGDZFd4=', '2021-02-27 06:20:28.214775', 1, '', '', 1, 1, '2021-02-27 06:20:09.188689', 'admin', '3704adf3-380f-4c27-a8da-60420e8cb4ab', 'admin@qq.com', NULL, NULL, '管理员', '2', '1', 2, '2021-02-27 06:20:09.263192', '2021-02-27 09:14:30.009998', 1, 1, 1); +INSERT INTO `permission_userprofile` (id, password, last_login, is_superuser, first_name, last_name, is_staff, is_active, date_joined, username, secret, email, mobile, avatar, name, gender, remark, user_type, create_datetime, update_datetime, dept_id, dept_belong_id, creator_id) VALUES (2, 'pbkdf2_sha256$150000$5Z9LSi7LpNms$xVguE/dOEpI4D95LjSaKm0xzG7vNSopUolANr8f/6/E=', NULL, 0, '', '', 0, 1, '2021-03-03 15:38:27.009893', 'dvadmin', 'b4c5d79a-f01c-4244-92f8-b5288eca1d50', NULL, NULL, NULL, '普通用户', '2', NULL, 0, '2021-03-03 15:38:27.010771', '2021-03-03 15:38:27.086069', 1, 1, 1); -- ---------------------------- -- Table structure for permission_userprofile_post -- ---------------------------- diff --git a/dvadmin-backend/apps/vadmin/utils/authentication.py b/dvadmin-backend/apps/vadmin/utils/authentication.py index cc3b781..4a51ca5 100644 --- a/dvadmin-backend/apps/vadmin/utils/authentication.py +++ b/dvadmin-backend/apps/vadmin/utils/authentication.py @@ -12,8 +12,8 @@ from django.utils.translation import ugettext as _ from rest_framework import exceptions from rest_framework_jwt.utils import jwt_decode_handler -from .decorators import exceptionHandler from .jwt_util import jwt_get_session_id +from ..permission.models.users import UserProfile logger = logging.getLogger(__name__) User = get_user_model() @@ -38,6 +38,8 @@ class OpAuthJwtAuthentication(object): raise exceptions.AuthenticationFailed(msg) except jwt.InvalidTokenError: raise exceptions.AuthenticationFailed() + except UserProfile.DoesNotExist: + raise exceptions.AuthenticationFailed() username = payload.get('username', None) if not username: diff --git a/dvadmin-ui/src/views/vadmin/permission/user/index.vue b/dvadmin-ui/src/views/vadmin/permission/user/index.vue index f11d209..35caf58 100755 --- a/dvadmin-ui/src/views/vadmin/permission/user/index.vue +++ b/dvadmin-ui/src/views/vadmin/permission/user/index.vue @@ -161,7 +161,7 @@ - {{role.roleName}} + {{role.roleName}} @@ -648,6 +648,7 @@ this.$refs['form'].validate(valid => { if (valid) { if (this.form.id != undefined) { + this.form.creator = undefined updateUser(this.form).then(response => { this.msgSuccess('修改成功') this.open = false From f26a9502fe08fec750db1e57002bafcbe38e6323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Wed, 31 Mar 2021 11:08:09 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=98=E5=8C=96(?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=B7=AF=E7=94=B1=E6=8E=A5=E5=8F=A3):=20admi?= =?UTF-8?q?n=E7=94=A8=E6=88=B7=E8=8F=9C=E5=8D=95=E5=8F=AF=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E5=85=A8=E9=83=A8=EF=BC=8C=E4=BE=BF=E4=BA=8E=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-backend/apps/vadmin/permission/views.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dvadmin-backend/apps/vadmin/permission/views.py b/dvadmin-backend/apps/vadmin/permission/views.py index 86110de..8ece4fa 100644 --- a/dvadmin-backend/apps/vadmin/permission/views.py +++ b/dvadmin-backend/apps/vadmin/permission/views.py @@ -48,7 +48,10 @@ class GetRouters(APIView): return dict def get(self, request, format=None): - menus = Menu.objects.filter(role__userprofile=request.user) \ + kwargs = {} + if not request.user.is_superuser: + kwargs['role__userprofile'] = request.user + menus = Menu.objects.filter(**kwargs) \ .exclude(menuType='2').values('id', 'name', 'web_path', 'visible', 'status', 'isFrame', 'component_path', 'icon', 'parentId', 'orderNum', 'isCache').distinct() data = [] From a5709f8cf2eede8194859abc0886916db8a49463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Wed, 31 Mar 2021 12:23:30 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBUG(=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF):=20=E4=B8=AA=E4=BA=BA=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=B8=AD=E6=9C=AA=E8=AF=BB=E6=B6=88=E6=81=AF=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-backend/apps/vadmin/system/views.py | 2 +- dvadmin-ui/src/layout/components/Navbar.vue | 6 +++--- dvadmin-ui/src/store/modules/user.js | 3 ++- dvadmin-ui/src/views/vadmin/system/message/Mymessage.vue | 8 +++++--- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/dvadmin-backend/apps/vadmin/system/views.py b/dvadmin-backend/apps/vadmin/system/views.py index a35338f..e2beb55 100644 --- a/dvadmin-backend/apps/vadmin/system/views.py +++ b/dvadmin-backend/apps/vadmin/system/views.py @@ -200,7 +200,7 @@ class MessagePushModelViewSet(CustomModelViewSet): serializer_class = MessagePushSerializer create_serializer_class = MessagePushCreateUpdateSerializer update_serializer_class = MessagePushCreateUpdateSerializer - extra_filter_backends = [DataLevelPermissionsFilter] + # extra_filter_backends = [DataLevelPermissionsFilter] update_extra_permission_classes = (CommonPermission,) destroy_extra_permission_classes = (CommonPermission,) create_extra_permission_classes = (CommonPermission,) diff --git a/dvadmin-ui/src/layout/components/Navbar.vue b/dvadmin-ui/src/layout/components/Navbar.vue index c300c63..76e7800 100755 --- a/dvadmin-ui/src/layout/components/Navbar.vue +++ b/dvadmin-ui/src/layout/components/Navbar.vue @@ -14,7 +14,7 @@
- +
@@ -81,11 +81,11 @@ export default { }, data() { return { - count: store.getters.unread_msg_count, + count: store.unread_msg_count, }; }, computed: { - ...mapGetters(["sidebar", "avatar", "device"]), + ...mapGetters(["sidebar", "avatar", "device", "unread_msg_count"]), setting: { get() { return this.$store.state.settings.showSettings; diff --git a/dvadmin-ui/src/store/modules/user.js b/dvadmin-ui/src/store/modules/user.js index 895a689..9e4b5a5 100755 --- a/dvadmin-ui/src/store/modules/user.js +++ b/dvadmin-ui/src/store/modules/user.js @@ -7,7 +7,8 @@ const user = { name: '', avatar: '', roles: [], - permissions: [] + permissions: [], + unread_msg_count: 0 }, mutations: { diff --git a/dvadmin-ui/src/views/vadmin/system/message/Mymessage.vue b/dvadmin-ui/src/views/vadmin/system/message/Mymessage.vue index 1bbcd87..43a2581 100644 --- a/dvadmin-ui/src/views/vadmin/system/message/Mymessage.vue +++ b/dvadmin-ui/src/views/vadmin/system/message/Mymessage.vue @@ -103,9 +103,11 @@ // 修改通知查询状态 if (this.badgeType === "danger") { updateIsRead(this.showingMsgItem).then(response => { - store.getters.unread_msg_count - this.open = false; - this.getList(); + if(response.code === 200){ + store.commit('SET_UNREAD_MSG_COUNT', store.getters.unread_msg_count - 1); + this.open = false; + this.getList(); + } }); } }