from Model.models import * from Service.CommonService import CommonService # 针对模型封装的复用性代码 class ModelService: # 获取当前用户角色名 @staticmethod def getRole(rid): Roles = Role.objects.get(rid=rid) return Roles.roleName @staticmethod def getValidateMember(userID): device_user_query_set = Device_User.objects.get(userID=userID) role_query_set = device_user_query_set.role.all() role_dict = CommonService.qs_to_dict(role_query_set) permission = role_dict["datas"][0]["fields"]["permission"] if len(permission): if 92 in permission: return True return False # 获取用户所有权限 @staticmethod def own_permission(userID): device_user_query_set = Device_User.objects.get(userID=userID) role_query_set = device_user_query_set.role.all() if role_query_set.exists(): role_dict = CommonService.qs_to_dict(role_query_set) permission = role_dict["datas"][0]["fields"]["permission"] if len(permission): return permission return [] # 获取用户角色相关 @staticmethod def own_role(userID): device_user_query_set = Device_User.objects.get(userID=userID) role_query_set = device_user_query_set.role.all() if role_query_set.exists(): return {'rid': role_query_set[0].rid, 'roleName': role_query_set[0].roleName} return {'rid': '', 'roleName': ''} # 检测权限有无 @staticmethod def check_permission(userID, permID): try: device_user_query_set = Device_User.objects.get(userID=userID) if device_user_query_set: role_query_set = device_user_query_set.role.all() if role_query_set: role_dict = CommonService.qs_to_dict(role_query_set) permission = role_dict["datas"][0]["fields"]["permission"] print(permission) if len(permission) > 0: if permID in permission: return True except Exception as e: return False return False # 根据设备主键ID判断是否拥有该设备 @staticmethod def check_user_own_device(userID, deviceID): try: device_user = Device_User.objects.get(userID=userID) device_info_queryset = device_user.device_info_set.all().values('id') id_list = [] for id_dict in list(device_info_queryset): id_list.append(id_dict['id']) if deviceID in id_list: return True except Exception as e: return False return False # 根据设设备唯一名称UID判断是否拥有该设备 @staticmethod def check_own_device(userID, UID): device_info_queryset = Device_Info.objects.filter(userID_id=userID, UID=UID) if device_info_queryset.exists(): return True return False # 根据userID获取用户名 @staticmethod def get_user_name(userID): try: if userID: device_user = Device_User.objects.get(userID=userID) return device_user.username else: return '' except Exception as e: return '' # 根据username获取userID @staticmethod def get_userID_byname(username): try: device_user = Device_User.objects.get(username=username) except Exception as e: return None else: return device_user.userID # 访问日志添加 @staticmethod def addAccessLog(data): try: access_log = Access_Log.objects.create(**data) except Exception as e: return False else: if access_log.id: return True else: return False # 判断设备账户信息是否正确 @staticmethod def device_auth(UID, View_Account, View_Password, ChannelIndex): device_info_queryset = Device_Info.objects.filter(UID=UID, View_Account=View_Account, View_Password=View_Password, ChannelIndex=ChannelIndex) if device_info_queryset.exists(): return True return False