def retrieve(self, request, *args, **kwargs): """ 树型化权限和菜单 """ instance = self.get_object() serializer = self.get_serializer(instance) permissions = tree_filter(serializer.data['permissions']) menus = tree_filter(serializer.data['menus']) serializer.data['permissions'] = permissions serializer.data['menus'] = menus return Response(serializer.data)
def list(self, request, *args, **kwargs): """ 树型化权限和菜单 """ queryset = self.filter_queryset(self.get_queryset()) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) for item in serializer.data: permissions = tree_filter(item['permissions']) menus = tree_filter(item['menus']) item['permissions'] = permissions item['menus'] = menus return self.get_paginated_response(serializer.data) serializer = self.get_serializer(queryset, many=True) for item in serializer.data: permissions = tree_filter(item['permissions']) menus = tree_filter(item['menus']) item['permissions'] = permissions item['menus'] = menus return Response(serializer.data)
def get(self, request, *args, **kwargs): try: username = request.user.username except Exception: import traceback logger.error('获取用户信息出错了:%s' % str(traceback.format_exc())) username = request.user['data'] try: user_obj = UserInfo.objects.filter(username=username).first() menus_list = user_obj.roles.all().values('menus') except Exception as e: logger.error('无法解析菜单: %s' % e) return Response(status=status.HTTP_403_FORBIDDEN) menus = [i.get('menus') for i in menus_list] queryset = Menu.objects.all() # 序列化菜单 serializer = menu_serializers.MenuSerializer(queryset, many=True) # 树形菜单 results = tree_filter(serializer.data, menus) return Response(results)
def get(self, request, *args, **kwargs): queryset = Permission.objects.all() serializer = permission_serializers.PermissionSerializer(queryset, many=True) results = tree_filter(serializer.data) return Response(results)