import os import openpyxl from utils.DBModels.ProtocolModel import ModBusVar from utils.DBModels.UserModels import User from utils import Globals # ID 从站地址 变量名 变量描述 功能码 寄存器地址 工程量下限 工程量上限 class UserManage(object): def __init__(self): super(UserManage, self).__init__() @classmethod def createUser(self, userName, userPwd, description, projectAuthority, protocolSetting, userAuthority, trendAuthority): # 创建用户 self.userName = str(userName) self.userPwd = str(userPwd) self.description = str(description) self.projectAuthority = projectAuthority self.protocolSetting = protocolSetting self.userAuthority = userAuthority self.trendAuthority = trendAuthority if User.getByName(userName): print('已有同名变量') else: userModel = User() userModel.createUser(userName = userName, userPwd = userPwd, description = description, projectAuthority = projectAuthority, protocolSetting = protocolSetting, userAuthority = userAuthority, trendAuthority = trendAuthority) @classmethod def deleteUser(self, name): # 删除用户 name = str(name) # print(name) User.deleteUser(userName = name) @classmethod def editUser(self, userName, Nname, userPwd, description, projectAuthority, protocolSetting, userAuthority, trendAuthority): # 修改用户信息 userName = str(userName) Nname = str(Nname) userPwd = str(userPwd) description = str(description) projectAuthority = str(projectAuthority) protocolSetting = str(protocolSetting) userAuthority = str(userAuthority) trendAuthority = str(trendAuthority) if Nname == userName: User.update(userName = Nname, userPwd = userPwd, description = description, projectAuthority = projectAuthority, protocolSetting = protocolSetting, userAuthority = userAuthority, trendAuthority = trendAuthority).where(User.userName == userName).execute() elif User.getByName(Nname): print('已有同名变量') return elif not User.getByName(userName): print('不存在的变量') return else: User.update(userName = Nname, userPwd = userPwd, description = description, projectAuthority = projectAuthority, protocolSetting = protocolSetting, userAuthority = userAuthority, trendAuthority = trendAuthority).where(User.userName == userName).execute() @classmethod def getAllUser(self): # 查询所有用户 users = User.get_all() if users is 'Error': return l = [] for user in users: l.append([user.id, user.userName, user.userPwd, user.description, user.createTime, user.projectAuthority, user.protocolSetting, user.userAuthority, user.trendAuthority]) return l @classmethod def getByName(self, name): # 查询指定用户信息 user = User.getByName(name) if user: return [user.id, user.userName, user.userPwd, user.description, user.createTime, user.projectAuthority, user.protocolSetting, user.userAuthority, user.trendAuthority] else: return [user.id, user.userName, user.userPwd, user.description, user.createTime, user.projectAuthority, user.protocolSetting, user.userAuthority, user.trendAuthority] @classmethod def authentication(self, name, passwd): user = User.getByName(name) if user: if str(user.userPwd) == str(passwd): return 0 else: return 1 else: return 2 @classmethod def initUser(self): self.createUser(userName = 'admin', userPwd = 'admin', description = '1', projectAuthority = '1', protocolSetting = '1', userAuthority = '1', trendAuthority = '1')