| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #coding=utf-8
- '''
- '''
- import json
- from django.db import transaction
- import common.models as cm
- import common.error_info as ce
- import common.common_functions as ccf
- import common.common_control as ccc
- def get_role_list(query=None,relations=None,page=None,page_size=None):
- """
- """
- qset = cm.Role.objects.all()
- if query and query.get("platform"):
- qset = qset.filter(platform=query.get("platform"))
- total,qset = ccc.get_page_qset(qset,page,page_size)
- roles = qset.values("id","name","desc","ctime","platform")
- if relations:
- for i,role in enumerate(roles):
- permissions = list(qset[i].permission.all().values_list("name",flat=True))
- role.update({"permissions":",".join(permissions)})
- return total,list(roles)
- def get_role_info(*ids):
- """
- """
- qset = cm.Role.objects.filter(id__in=ids)
- roles = list(qset.values())
- for i,role in enumerate(roles):
- role["permission_addroles"] = json.loads(role["permission_addroles"])
- permissions = list(qset[i].permission.all().values("name","id"))
- role.update({"permissions":permissions})
- return roles
- def get_all_role_list():
- qset = cm.Role.objects.all()
- roles = qset.values("id","name","desc","ctime","platform")
- return list(roles)
- def add_role(**kwargs):
- """
- """
- need_params = ["name","platform","permissions"]
- mse = ccf.check_params(*need_params,**kwargs)
- if mse:
- raise ce.TipException(mse)
- need_params.extend(["cperson","desc"])
- try:
- permission_addroles = kwargs.pop("permission_addroles")
- permissions = kwargs.pop("permissions")
- except KeyError:
- permission_addroles = None
- permissions = None
- cvals = ccf.get_need_params(*need_params,**kwargs)
- with transaction.atomic():
- robj = cm.Role.objects.create(**cvals)
- #添加permission
- robj.permission_addroles = json.dumps(permission_addroles)
- robj.permission.add(*permissions)
- robj.save()
- def update_role(**kwargs):
- """
- """
- need_params = ["id"]
- mse = ccf.check_params(*need_params,**kwargs)
- if mse:
- raise ce.TipException(mse)
- id = kwargs.get("id")
- uvals = {}
- if "name" in kwargs:
- uvals["name"] = kwargs.get("name")
- if "desc" in kwargs:
- uvals["desc"] = kwargs.get("desc")
- if "permission_addroles" in kwargs:
- uvals["permission_addroles"] = json.dumps(kwargs.get("permission_addroles"))
- with transaction.atomic():
- robj = cm.Role.objects.filter(id=id).first()
- cm.Role.objects.filter(id=id).update(**uvals)
- if robj:
- robj.permission.remove()
- robj.permission.add(*kwargs.get("permissions"))
- def delete_role(**kwargs):
- """
- """
- need_params = ["id"]
- mse = ccf.check_params(*need_params,**kwargs)
- if mse:
- raise ce.TipException(mse)
- ids = str(kwargs.get("id")).split(",")
- cm.Role.objects.filter(id__in=ids).delete()
|