control_permission.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #-*-coding:utf-8 -*-
  2. import re
  3. import collections
  4. import common.models as cm
  5. def get_permission_list(role_id=None,platform=None):
  6. """
  7. """
  8. if role_id:
  9. qset = cm.Role.objects.filter(id=role_id).first().permission.all()
  10. else:
  11. qset = cm.Permission.objects.all()
  12. if platform:
  13. qset = qset.filter(platform__icontains=platform)
  14. permissions = format_permission_tree(qset)
  15. return permissions
  16. def get_permission_tree(pobj,data=None):
  17. data = data if data else []
  18. childrenset = cm.Permission.objects.filter(pid=pobj.id)
  19. for cdobj in childrenset:
  20. data.append({"id":cdobj.id,"name":cdobj.name,"codename":cdobj.codename,"children":get_permission_tree(cdobj)})
  21. return data
  22. def format_permission_tree(qset):
  23. """暂时写死待完善....
  24. """
  25. ptrees = []
  26. toppers = qset.filter(pid__isnull=True)
  27. for topobj in toppers:
  28. ptree = {"id":topobj.id,"name":topobj.name,"codename":topobj.codename}
  29. ptree["children"] = get_permission_tree(topobj)
  30. ptrees.append(ptree)
  31. return ptrees