Пример #1
0
 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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
 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)