#-*-coding:utf-8 -*- import re import collections import common.models as cm def get_permission_list(role_id=None,platform=None): """ """ if role_id: qset = cm.Role.objects.filter(id=role_id).first().permission.all() else: qset = cm.Permission.objects.all() if platform: qset = qset.filter(platform__icontains=platform) permissions = format_permission_tree(qset) return permissions def get_permission_tree(pobj,data=None): data = data if data else [] childrenset = cm.Permission.objects.filter(pid=pobj.id) for cdobj in childrenset: data.append({"id":cdobj.id,"name":cdobj.name,"codename":cdobj.codename,"children":get_permission_tree(cdobj)}) return data def format_permission_tree(qset): """暂时写死待完善.... """ ptrees = [] toppers = qset.filter(pid__isnull=True) for topobj in toppers: ptree = {"id":topobj.id,"name":topobj.name,"codename":topobj.codename} ptree["children"] = get_permission_tree(topobj) ptrees.append(ptree) return ptrees