You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
3.9 KiB
Python

10 months ago
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')