| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788 | 
							- #!/usr/bin/env python
 
- # -*- coding: utf-8 -*-
 
- from itertools import chain
 
- from django.views.generic.base import View
 
- import django.dispatch, traceback,simplejson as json
 
- from django.views.decorators.csrf import csrf_exempt
 
- from django.utils.decorators import method_decorator
 
- from Model.models import Permissions, Role, Device_User
 
- from Service.CommonService import CommonService
 
- from Service.ModelService import ModelService
 
- from Object.TokenObject import TokenObject
 
- from Object.ResponseObject import ResponseObject
 
- # 创建信号
 
- roles_done = django.dispatch.Signal(providing_args=[])
 
- perms_done = django.dispatch.Signal(providing_args=[])
 
- rmanger_done = django.dispatch.Signal(providing_args=[])
 
- class Roles(object):
 
-     '''
 
-     role Manager Class
 
-     '''
 
-     try:
 
-         rid = []
 
-         rolename = []
 
-         roles = Role.objects.all()
 
-         for role in roles:
 
-             rolename.append(role.roleName)
 
-             rid.append(role.rid)
 
-     except Exception as e:
 
-         pass
 
-     def __init__(self):
 
-         '''
 
-         信号监听, 注册信号
 
-         Signal.connect(receiver, sender=None, weak=True, dispatch_uid=None)
 
-         receiver: 信号接受者,回调函数
 
-         sender: 信号发送者
 
-         '''
 
-         roles_done.connect(self.callback)
 
-         self.startSignal()
 
-     def callback(self, sender, **kwargs):
 
-         '''
 
-         开启监听之后,就要去实现回调函数了, 注册信号
 
-         :param sender:
 
-         :param kwargs:
 
-         :return:
 
-         '''
 
-         Roles.rid = []
 
-         Roles.rolename = []
 
-         Roles.roles = Role.objects.all()
 
-         for role in Roles.roles:
 
-             Roles.rolename.append(role.roleName)
 
-             Roles.rid.append(role.rid)
 
-     def startSignal(self):
 
-         '''
 
-         触发信号
 
-         指定信号发送者
 
-         :return:
 
-         '''
 
-         roles_done.send(sender=self.__class__)
 
-     def toJSON(self, QuerySets, fields=None, exclude=None):
 
-         listSets = []
 
-         for QuerySet in QuerySets:
 
-             data = {}
 
-             opts = QuerySet._meta
 
-             for f in chain(opts.concrete_fields, opts.private_fields, opts.many_to_many):
 
-                 if not getattr(f, 'editable', False):
 
-                     continue
 
-                 if fields and f.name not in fields:
 
-                     continue
 
-                 if exclude and f.name in exclude:
 
-                     continue
 
-                 data[f.name] = f.value_from_object(QuerySet)
 
-             listSets.append(data)
 
-         return listSets
 
-     def queryAllRoles(self, rolenames=None, exclude=None,response=ResponseObject()):
 
-         roles =[]
 
-         for role in chain(Roles.roles):
 
-             if rolenames and role.roleName not in rolenames:
 
-                 continue
 
-             if exclude and role.roleName in exclude:
 
-                 continue
 
-             roles.append(role)
 
-         if len(roles) > 0:
 
-             resultDict=CommonService.qs_to_dict(roles)
 
-             for k, v in enumerate(resultDict["datas"]):
 
-                 if len(v['fields']['permission']) > 0:
 
-                     resultDict["datas"][k]['fields']['permissionJson']={}
 
-                     for pid in v['fields']['permission']:
 
-                         permission_query_set= Permissions.objects.get(id=pid)
 
-                         resultDict["datas"][k]['fields']['permissionJson'][pid]=permission_query_set.permName
 
-             return response.json(0,resultDict)
 
-         
 
-         else:
 
-             return response.json(0, {})
 
-     def addRoles(self, content=None,response=ResponseObject()):
 
-         try:
 
-             roleContent = json.loads(content)
 
-         except Exception as e:
 
-             return response.json(803,repr(e))
 
-         else:
 
-             rid = roleContent.get('rid', None)
 
-             if rid == None:
 
-                 return response.json(806)
 
-             try:
 
-                 if rid in chain(Roles.rid):
 
-                     return response.json(807)
 
-                 permission_list = roleContent['permission']
 
-                 roleContent.pop('permission')
 
-                 role = Role(**roleContent)
 
-                 role.save()
 
-                 if len(permission_list) > 0:
 
-                     role.permission.add(*permission_list)
 
-             except Exception as e:
 
-                 return response.json(808,repr(e))
 
-             else:
 
-                 self.startSignal()
 
-                 return response.json(0)
 
-     def delRoles(self, rid=None, rolename=None,response=ResponseObject()):
 
-         if rid != None:
 
-             if rid not in Roles.rid:
 
-                 return response.json(190)
 
-             try:
 
-                 roletuple = Role.objects.filter(rid = rid).delete()
 
-             except Exception as e:
 
-                 return response.json(192, repr(e))
 
-             else:
 
-                 if roletuple[0] == 1:
 
-                     self.startSignal()
 
-                     return self.queryAllRoles(response=response)
 
-                 else:
 
-                     return response.json(193,{'error_msg':roletuple})
 
-         elif rolename != None:
 
-             if rid not in Roles.rolename:
 
-                 return response.json(191)
 
-             try:
 
-                 roletuple = Role.objects.filter(roleName = rolename).delete()
 
-             except Exception as e:
 
-                 return response.json(192)
 
-             else:
 
-                 if roletuple[0] == 1:
 
-                     self.startSignal()
 
-                     return self.queryAllRoles(response=response)
 
-                 else:
 
-                     return response.json(193)
 
-     def modifyRoles(self, rid=None, content=None,response=ResponseObject()):
 
-         if rid not in Roles.rid:
 
-             return response.json(190)
 
-         try:
 
-             roleContent = json.loads(content)
 
-         except Exception as e:
 
-             errorInfo = traceback.format_exc()
 
-             print('The content parameter format is wrong: %s' % errorInfo)
 
-             return response.json(803)
 
-         else:
 
-             try:
 
-                 permission_list = roleContent['permission']
 
-                 roleContent.pop('permission')
 
-                 roleCount = Role.objects.filter(rid = rid).update(**roleContent)
 
-                 if roleCount:
 
-                     if len(permission_list) > 0:
 
-                         Role.objects.get(rid=rid).permission.set(permission_list)
 
-                     else:
 
-                         Role.objects.get(rid=rid).permission.clear()
 
-             except Exception as e:
 
-                 return response.json(194)
 
-             else:
 
-                 if roleCount == 1:
 
-                     self.startSignal()
 
-                     return self.queryAllRoles(response=response)
 
-                 else:
 
-                     return response.json(195)
 
- class Permission(object):
 
-     try:
 
-         id = []
 
-         permname = []
 
-         perms = Permissions.objects.all()
 
-         for perm in perms:
 
-             id.append(perm.id)
 
-             permname.append(perm.permName)
 
-     except Exception as e:
 
-         pass
 
-     def __init__(self):
 
-         perms_done.connect(self.callback)
 
-         self.startSignal()
 
-     def callback(self, sender, **kwargs):
 
-         Permission.id = []
 
-         Permission.permname = []
 
-         Permission.roles = Permissions.objects.all()
 
-         for perm in Permission.roles:
 
-             Permission.id.append(perm.id)
 
-             Permission.permname.append(perm.permName)
 
-     def startSignal(self):
 
-         perms_done.send(sender=self.__class__)
 
-     def queryAllPerms(self, perms=None, exclude=None,response=ResponseObject()):
 
-         opts =[]
 
-         for perm in chain(Permission.permname):
 
-             if perms and perm not in perms:
 
-                 continue
 
-             if exclude and perm in exclude:
 
-                 continue
 
-             opts.append(perm)
 
-         return response.json(0,{'perms':opts})
 
-     def delPerms(self, id=None, permName=None,response=ResponseObject()):
 
-         try:
 
-             if id != None:
 
-                 perm = Permissions.objects.filter(id = id)
 
-             elif permName != None:
 
-                 perm = Permissions.objects.filter(permName = permName)
 
-             else:
 
-                 return response.json(800)
 
-         except Exception as e:
 
-             return response.json(500, repr(e))
 
-         else:
 
-             if not perm:
 
-                 return response.json(817)
 
-             try:
 
-                 perm.delete()
 
-             except Exception as e:
 
-                 return response.json(818, repr(e))
 
-             else:
 
-                 self.startSignal()
 
-                 qs =Permissions.objects.all()
 
-                 res = CommonService.qs_to_dict(qs)
 
-                 return response.json(0,res)
 
-     @staticmethod
 
-     def getAllPermission(response=ResponseObject()):
 
-         send_dict=CommonService.qs_to_dict(Permissions.objects.all())
 
-         return response.json(0, send_dict)
 
- class permManager(object):
 
-     def queryMoreRole(self, rid=None):
 
-         role = Role.objects.filter(rid = rid)
 
-         if not role:
 
-             roleDict = {'rid': role[0].rid, 'error_msg': u'The rid does not exist!'}
 
-             return roleDict
 
-         roleDict = {'rid' : role[0].rid, 'perms': role[0].get_all_permission()}
 
-         return roleDict
 
-     def queryAllRole(self,response=ResponseObject()):
 
-         qs = Role.objects.all()
 
-         res = CommonService.qs_to_dict(qs)
 
-         return response.json(0, res)
 
- # 角色View
 
- class queryRoleView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(queryRoleView, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'gb2312'
 
-         token = request.GET.get('token', None)
 
-         return self.ValidationError(token)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         token = request.POST.get('token', None)
 
-         return self.ValidationError(token)
 
-     def ValidationError(self, token):
 
-         response = ResponseObject()
 
-         if token is not None:
 
-             tko = TokenObject(token)
 
-             tko.valid()
 
-             response.lang = tko.lang
 
-             if tko.code == 0:
 
-                 userID = tko.userID
 
-                 if userID:
 
-                     return self.queryUserRole(userID,response)
 
-                 else:
 
-                     return response.json(310)
 
-             else:
 
-                 return response.json(tko.code)
 
-         else:
 
-             return response.json(800)
 
-     def queryUserRole(self, userID,response):
 
-         eUser = Device_User.objects.filter(userID = userID)
 
-         if not eUser:
 
-             return response.json(102)
 
-         if 100 in eUser[0].get_role_id():
 
-             role = Roles()
 
-             return role.queryAllRoles(response=response)
 
-         own_permission = ModelService.check_permission(userID=userID, permID=30)
 
-         if own_permission is True:
 
-             role = Roles()
 
-             return role.queryAllRoles(response=response)
 
-         else:
 
-             return response.json(404)
 
- class addNewRoleView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(addNewRoleView, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'gb2312'
 
-         token = request.GET.get('token', None)
 
-         content = request.GET.get('content', None)
 
-         return self.ValidationError(token, content)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         token = request.POST.get('token', None)
 
-         content = request.POST.get('content', None)
 
-         return self.ValidationError(token, content)
 
-     def ValidationError(self, token, content):
 
-         response = ResponseObject()
 
-         if token != None and content != None:
 
-             tko = TokenObject(token)
 
-             tko.valid()
 
-             response.lang = tko.lang
 
-             if tko.code == 0:
 
-                 userID = tko.userID
 
-                 if userID:
 
-                     return self.AddNewUserRole(userID, content,response)
 
-                 else:
 
-                     return response.json(310)
 
-             else:
 
-                 return response.json(tko.code)
 
-         else:
 
-             return response.json(800)
 
-     def AddNewUserRole(self, userID, content,response):
 
-         try:
 
-             User = Device_User.objects.filter(userID = userID)
 
-         except Exception as e:
 
-             return response.json(500,repr(e))
 
-         else:
 
-             rids = User[0].get_role_id()
 
-             if rids == None:
 
-                 return response.json(606)
 
-             Aperms = False
 
-             for rid in rids:
 
-                 if rid < 10:
 
-                     continue
 
-                 else:
 
-                     Aperms = True
 
-             if Aperms:
 
-                 role = Roles()
 
-                 return role.addRoles(content=content,response=response)
 
-             else:
 
-                 return response.json(611)
 
- class delRoleView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(delRoleView, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'gb2312'
 
-         token = request.GET.get('token', None)
 
-         rid = request.GET.get('rid', None)
 
-         return self.ValidationError(token, rid)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         token = request.POST.get('token', None)
 
-         rid = request.POST.get('rid', None)
 
-         return self.ValidationError(token, rid)
 
-     def ValidationError(self, token, rid):
 
-         response = ResponseObject()
 
-         if token != None and rid != None:
 
-             tko = TokenObject(token)
 
-             tko.valid()
 
-             response.lang = tko.lang
 
-             if tko.code == 0:
 
-                 userID = tko.userID
 
-                 if userID:
 
-                     return self.delRole(userID, int(rid),response)
 
-                 else:
 
-                     return response.json(310)
 
-             else:
 
-                 return response.json(tko.code)
 
-         else:
 
-             return response.json(444,'token,rid')
 
-     def delRole(self, userID, rid,response):
 
-         own_permission = ModelService.check_permission(userID=userID, permID=10)
 
-         if own_permission is True:
 
-             role = Roles()
 
-             return role.delRoles(rid=rid,response=response)
 
-         else:
 
-             return response.json(404)
 
- class modifyRoleView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(modifyRoleView, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'gb2312'
 
-         token = request.GET.get('token', None)
 
-         rid =  request.GET.get('rid', None)
 
-         content = request.GET.get('content', None)
 
-         return self.ValidationError(token, rid, content)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         token = request.POST.get('token', None)
 
-         rid = request.POST.get('rid', None)
 
-         content = request.POST.get('content', None)
 
-         return self.ValidationError(token, rid, content)
 
-     def ValidationError(self, token, rid, content):
 
-         response = ResponseObject()
 
-         if token != None and content != None and rid != None:
 
-             tko = TokenObject(token)
 
-             tko.valid()
 
-             response.lang = tko.lang
 
-             if tko.code == 0:
 
-                 userID = tko.userID
 
-                 if userID:
 
-                     return self.modifyRole(userID, int(rid), content,response)
 
-                 else:
 
-                     return response.json(310)
 
-             else:
 
-                 return response.json(tko.code)
 
-         else:
 
-             return response.json(444,'token,content,rid')
 
-     def modifyRole(self, userID, rid, content,response):
 
-         try:
 
-             User = Device_User.objects.filter(userID = userID)
 
-         except Exception as e:
 
-             return response.json(500, repr(e))
 
-         else:
 
-             rids = User[0].get_role_id()
 
-             if rids == None:
 
-                 return response.json(606)
 
-             Aperms = False
 
-             for rrid in rids:
 
-                 if rrid < 10:
 
-                     continue
 
-                 else:
 
-                     Aperms = True
 
-             if Aperms:
 
-                 role = Roles()
 
-                 return role.modifyRoles(rid=rid, content=content,response=response)
 
-             else:
 
-                 return response.json(611)
 
- # 权限View
 
- class addNewPermsView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(addNewPermsView, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         request_dict = request.GET
 
-         return self.ValidationError(request_dict)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         request_dict = request.POST
 
-         return self.ValidationError(request_dict)
 
-     def ValidationError(self, request_dict):
 
-         response = ResponseObject()
 
-         token = request_dict.get('token', None)
 
-         type = request_dict.get('type', None)
 
-         if token != None:
 
-             tko = TokenObject(token)
 
-             tko.valid()
 
-             response.lang = tko.lang
 
-             if tko.code == 0:
 
-                 userID = tko.userID
 
-                 if userID:
 
-                     if type == 'PC':
 
-                         return self.addNewPermission(userID=userID, request_dict=request_dict,response=response)
 
-                 else:
 
-                     return response.json(310)
 
-             else:
 
-                 return response.json(tko.code)
 
-         else:
 
-             return response.json(800)
 
-     def addNewPermission(self, userID, request_dict,response):
 
-         user_valid = Device_User.objects.filter(userID=userID).order_by('-data_joined')
 
-         if user_valid:# 判断是否为超级管理员
 
-             own_perm = ModelService.check_permission(userID,40)
 
-             # if user_valid[0].is_superuser == 100 and user_valid[0].is_superuser != 1 and user_valid[0].is_superuser != 10:
 
-             if own_perm is not True:
 
-                 return response.json(612)
 
-             else:
 
-                 add_dict = {'id':int(request_dict['id']),'permName':request_dict['permName'],'description':request_dict['description']}
 
-                 try:
 
-                     perm = Permissions(**add_dict)
 
-                     perm.save()
 
-                 except Exception as e:
 
-                     return response.json(816,repr(e))
 
-                 else:
 
-                     return Permission.getAllPermission(response=response)
 
-         else:
 
-             return response.json(113)
 
- class delPermsView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(delPermsView, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         request_dict = request.GET
 
-         return self.ValidationError(request_dict)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         request_dict = request.POST
 
-         return self.ValidationError(request_dict)
 
-     def ValidationError(self, request_dict):
 
-         token = request_dict.get('token', None)
 
-         id = request_dict.get('id', None)
 
-         response = ResponseObject()
 
-         if token != None and id != None:
 
-             tko = TokenObject(token)
 
-             tko.valid()
 
-             response.lang = tko.lang
 
-             if tko.code == 0:
 
-                 userID = tko.userID
 
-                 if userID:
 
-                     return self.delPerms(userID, id,response)
 
-                 else:
 
-                     return response.json(310)
 
-             else:
 
-                 return response.json(tko.code)
 
-         else:
 
-             return response.json(800)
 
-     def delPerms(self, userID, id,response):
 
-         try:
 
-             User = Device_User.objects.filter(userID = userID)
 
-         except Exception as e:
 
-             return response.json(500, repr(e))
 
-         else:
 
-             rids = User[0].get_role_id()
 
-             if len(rids) == 0:
 
-                 return response.json(606)
 
-             Aperms = False
 
-             for rid in rids:
 
-                 if rid < 10:
 
-                     continue
 
-                 else:
 
-                     Aperms = True
 
-             if Aperms:
 
-                 perms = Permission()
 
-                 return perms.delPerms(id=id,response=response)
 
-             else:
 
-                 return response.json(611)
 
- class queryPermsView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(queryPermsView, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'gb2312'
 
-         token = request.GET.get('token', None)
 
-         request_data = request.GET
 
-         return self.ValidationError(token,request_data)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         token = request.POST.get('token', None)
 
-         request_data = request.POST
 
-         return self.ValidationError(token,request_data)
 
-     def ValidationError(self, token, request_data):
 
-         response = ResponseObject()
 
-         if token != None:
 
-             tko = TokenObject(token)
 
-             tko.valid()
 
-             response.lang = tko.lang
 
-             if tko.code == 0:
 
-                 userID = tko.userID
 
-                 if userID:
 
-                     type = request_data.get('type',None)
 
-                     if type == 'PC':
 
-                         return self.querAllPermission(userID,response)
 
-                     else:
 
-                         return self.delPerms(userID,response)
 
-                 else:
 
-                     return response.json(310)
 
-             else:
 
-                 return response.json(tko.code)
 
-         else:
 
-             return response.json(800)
 
-     def querAllPermission(self, userID,response):
 
-         own_perm = ModelService.check_permission(userID,30)
 
-         if own_perm is True:
 
-             qs = Permissions.objects.all()
 
-             res = CommonService.qs_to_dict(qs)
 
-             return response.json(0, res)
 
-         else:
 
-             return response.json(404)
 
-     def delPerms(self, userID,response):
 
-         try:
 
-             User = Device_User.objects.filter(userID = userID)
 
-         except Exception as e:
 
-             return response.json(500, repr(e))
 
-         else:
 
-             rids = User[0].get_role_id()
 
-             if len(rids) == 0:
 
-                 return response.json(606)
 
-             Aperms = False
 
-             for rid in rids:
 
-                 if rid < 10:
 
-                     continue
 
-                 else:
 
-                     Aperms = True
 
-             if Aperms:
 
-                 perms = Permission()
 
-                 return perms.queryAllPerms(response=response)
 
-             else:
 
-                 return response.json(611)
 
- class modifyPermsView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(modifyPermsView, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'gb2312'
 
-         request_dict = request.GET
 
-         return self.ValidationError(request_dict)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         # token = request.POST.get('token', None)
 
-         request_dict = request.POST
 
-         return self.ValidationError(request_dict)
 
-     def ValidationError(self, request_dict):
 
-         token = request_dict.get('token', None)
 
-         response = ResponseObject()
 
-         if token != None:
 
-             tko = TokenObject(token)
 
-             tko.valid()
 
-             response.lang = tko.lang
 
-             if tko.code == 0:
 
-                 userID = tko.userID
 
-                 if userID:
 
-                     update_dict = {'permName':request_dict['permName'],'description':request_dict['description']}
 
-                     return self.modifyPerms(userID=userID,id=request_dict['id'], update_dict=update_dict,response=response)
 
-                 else:
 
-                     return response.json(310)
 
-             else:
 
-                 return response.json(tko.code)
 
-         else:
 
-             return response.json(800)
 
-     def modifyPerms(self, userID, id, update_dict,response):
 
-         try:
 
-             User = Device_User.objects.filter(userID = userID)
 
-         except Exception as e:
 
-             return response.json(500, repr(e))
 
-         else:
 
-             rids = User[0].get_role_id()
 
-             if len(rids) == 0:
 
-                 return response.json(606)
 
-             Aperms = False
 
-             for rid in rids:
 
-                 if rid < 10:
 
-                     continue
 
-                 else:
 
-                     Aperms = True
 
-             if Aperms:
 
-                 try:
 
-                     Permissions.objects.filter(id = int(id)).update(**update_dict)
 
-                 except Exception as e:
 
-                     return response.json(500,repr(e))
 
-                 else:
 
-                     return Permission.getAllPermission(response=response)
 
-             else:
 
-                 return response.json(611)
 
- class queryRolePermsView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(queryRolePermsView, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'gb2312'
 
-         token = request.GET.get('token', None)
 
-         allUser = request.GET.get('allUser', False)
 
-         return self.ValidationError(token, allUser)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         token = request.POST.get('token', None)
 
-         allUser = request.POST.get('allUser', False)
 
-         return self.ValidationError(token, allUser)
 
-     def ValidationError(self, token, allUser):
 
-         response = ResponseObject()
 
-         if token != None:
 
-             tko = TokenObject(token)
 
-             tko.valid()
 
-             response.lang = tko.lang
 
-             if tko.code == 0:
 
-                 userID = tko.userID
 
-                 if userID:
 
-                     return self.queryRolePerms(userID, allUser,response)
 
-                 else:
 
-                     return response.json(310)
 
-             else:
 
-                 return response.json(tko.code)
 
-         else:
 
-             return response.json(800)
 
-     def queryRolePerms(self, userID, allUser,response):
 
-         try:
 
-             dUser = Device_User.objects.filter(userID=userID).order_by('-data_joined')
 
-         except Exception as e:
 
-             return response.json(500, repr(e))
 
-         else:
 
-             if not dUser:
 
-                 return response.json(113)
 
-             if allUser == '0' or allUser == 'False' or allUser == 'false':
 
-                 allUser = False
 
-             elif allUser == '1' or allUser == 'True' or allUser == 'true':
 
-                 allUser = True
 
-             else:
 
-                 allUser = False
 
-             pM = permManager()
 
-             if not allUser:
 
-                 ridslist =[]
 
-                 rids = dUser[0].get_role_id()
 
-                 for rid in rids:
 
-                     ridslist.append(pM.queryMoreRole(rid=rid))
 
-                 sqlDict = dict(zip(["datas"], [ridslist]))
 
-                 return response.json(0,sqlDict)
 
-             else:
 
-                 if 100 in dUser[0].get_role_id():
 
-                     return pM.queryAllRole(response=response)
 
-                 else:
 
-                     return response.json(612)
 
 
  |