feat: 调整permission以支持后端路由
This commit is contained in:
parent
6c73245c03
commit
05c20c10bc
|
@ -0,0 +1,43 @@
|
||||||
|
# Generated by Django 3.2.12 on 2024-12-13 04:49
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('system', '0005_alter_permission_type'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='permission',
|
||||||
|
name='component',
|
||||||
|
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='组件'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='permission',
|
||||||
|
name='icon',
|
||||||
|
field=models.CharField(blank=True, max_length=30, null=True, verbose_name='图标'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='permission',
|
||||||
|
name='is_fullpage',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='是否全屏'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='permission',
|
||||||
|
name='is_hidden',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='是否隐藏'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='permission',
|
||||||
|
name='path',
|
||||||
|
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='路由'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='permission',
|
||||||
|
name='route_name',
|
||||||
|
field=models.CharField(blank=True, max_length=30, null=True, verbose_name='路由名称'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -31,6 +31,13 @@ class Permission(ParentModel, BaseModel):
|
||||||
sort = models.PositiveSmallIntegerField('排序标记', default=1)
|
sort = models.PositiveSmallIntegerField('排序标记', default=1)
|
||||||
codes = models.JSONField('权限标识', default=list, null=True, blank=True)
|
codes = models.JSONField('权限标识', default=list, null=True, blank=True)
|
||||||
|
|
||||||
|
route_name = models.CharField('路由名称', max_length=30, null=True, blank=True)
|
||||||
|
icon = models.CharField('图标', max_length=30, null=True, blank=True)
|
||||||
|
path = models.CharField('路由', max_length=100, null=True, blank=True)
|
||||||
|
component = models.CharField('组件', max_length=100, null=True, blank=True)
|
||||||
|
is_hidden = models.BooleanField('是否隐藏', default=False)
|
||||||
|
is_fullpage = models.BooleanField('是否全屏', default=False)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ from apps.system.filters import DeptFilterSet, UserFilterSet
|
||||||
# from django_q.models import Task as QTask, Schedule as QSchedule
|
# from django_q.models import Task as QTask, Schedule as QSchedule
|
||||||
from apps.utils.mixins import (CustomCreateModelMixin, MyLoggingMixin)
|
from apps.utils.mixins import (CustomCreateModelMixin, MyLoggingMixin)
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from apps.utils.permission import ALL_PERMS, get_user_perms_map
|
from apps.utils.permission import ALL_PERMS
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
from server.celery import app as celery_app
|
from server.celery import app as celery_app
|
||||||
from .models import (Dept, Dictionary, DictType, File, Permission, Post, PostRole, Role, User,
|
from .models import (Dept, Dictionary, DictType, File, Permission, Post, PostRole, Role, User,
|
||||||
|
@ -34,7 +34,8 @@ from .serializers import (ApkSerializer, DeptCreateUpdateSerializer, DeptSeriali
|
||||||
PTaskSerializer, PTaskCreateUpdateSerializer, PTaskResultSerializer,
|
PTaskSerializer, PTaskCreateUpdateSerializer, PTaskResultSerializer,
|
||||||
RoleCreateUpdateSerializer, RoleSerializer, TaskRunSerializer,
|
RoleCreateUpdateSerializer, RoleSerializer, TaskRunSerializer,
|
||||||
UserCreateSerializer, UserListSerializer, UserPostCreateSerializer,
|
UserCreateSerializer, UserListSerializer, UserPostCreateSerializer,
|
||||||
UserPostSerializer, UserUpdateSerializer, MyScheduleCreateSerializer, MyScheduleSerializer)
|
UserPostSerializer, UserUpdateSerializer, UserFullInfoSerializer,
|
||||||
|
MyScheduleCreateSerializer, MyScheduleSerializer)
|
||||||
from rest_framework.viewsets import GenericViewSet
|
from rest_framework.viewsets import GenericViewSet
|
||||||
from cron_descriptor import get_description
|
from cron_descriptor import get_description
|
||||||
import locale
|
import locale
|
||||||
|
@ -491,24 +492,7 @@ class UserViewSet(CustomModelViewSet):
|
||||||
获取登录用户信息
|
获取登录用户信息
|
||||||
"""
|
"""
|
||||||
user = request.user
|
user = request.user
|
||||||
perms = get_user_perms_map(user, update_cache=True)
|
return Response(UserFullInfoSerializer(user).data)
|
||||||
data = {
|
|
||||||
'id': user.id,
|
|
||||||
'username': user.username,
|
|
||||||
'type': user.type,
|
|
||||||
'name': user.name,
|
|
||||||
'roles': user.roles.values_list('name', flat=True),
|
|
||||||
'avatar': user.avatar,
|
|
||||||
'perms': perms,
|
|
||||||
'belong_dept': user.belong_dept.id if user.belong_dept else None,
|
|
||||||
'post': user.post.id if user.post else None,
|
|
||||||
'belong_dept_name': user.belong_dept.name if user.belong_dept else '',
|
|
||||||
'post_name': user.post.name if user.post else '',
|
|
||||||
'is_superuser': user.is_superuser,
|
|
||||||
'wxmp_openid': user.wxmp_openid,
|
|
||||||
'wx_openid': user.wx_openid
|
|
||||||
}
|
|
||||||
return Response(data)
|
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, permission_classes=[IsAuthenticated])
|
@action(methods=['post'], detail=False, permission_classes=[IsAuthenticated])
|
||||||
def bind_wxmp(self, request, pk=None):
|
def bind_wxmp(self, request, pk=None):
|
||||||
|
|
Loading…
Reference in New Issue