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.
260 lines
8.7 KiB
Python
260 lines
8.7 KiB
Python
from PyQt5.QtCore import Qt
|
|
from PyQt5.QtWidgets import QMessageBox
|
|
|
|
from DcsUi.userManagement.minwindow import myNewBuildWindow, myEditWindow, modifyPassworld, newBuildGroup, \
|
|
userGroupSettings
|
|
from utils.AcountModels import *
|
|
|
|
|
|
class NewBuildWindow(myNewBuildWindow):
|
|
|
|
def __init__(self):
|
|
myNewBuildWindow.__init__(self)
|
|
|
|
def initCombobox(self):
|
|
gops = Group.select()
|
|
lis = []
|
|
for i in gops:
|
|
lis.append(i.name)
|
|
|
|
for i in range(len(lis)):
|
|
self.combobox_group.addItem(lis[i])
|
|
self.combobox_group.setCurrentIndex(-1)
|
|
|
|
def preservation(self):
|
|
username = self.line_username.text()
|
|
name = self.line_name.text()
|
|
groupname = self.combobox_group.currentText()
|
|
passworld = self.line_passworld.text()
|
|
|
|
if User.username_valid(username):
|
|
if groupname != '':
|
|
if User.password_valid(passworld):
|
|
group = Group.get(name=groupname)
|
|
if User.create_user(username=username, name=name, password=passworld):
|
|
user = User.get(username=username)
|
|
user.assign_group(group_id=group.id)
|
|
self.my_Signal.emit('exit')
|
|
self.close()
|
|
else:
|
|
return False
|
|
return True
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"密码格式长度错误,请重新输入!",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"请选择组或者创建组",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"用户名格式错误,请重新输入!",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
|
|
|
|
class EditWindow(myEditWindow):
|
|
def __init__(self, lis):
|
|
myEditWindow.__init__(self, lis)
|
|
|
|
def initCombobox(self):
|
|
gops = Group.select()
|
|
lis = []
|
|
for i in gops:
|
|
lis.append(i.name)
|
|
self.user = User.get_or_none(username=self.list1[0])
|
|
group = UserGroup.get_groups_of_user(self.user)
|
|
index = lis.index(group[0])
|
|
for i in range(len(lis)):
|
|
self.combobox_group.addItem(lis[i])
|
|
self.combobox_group.setCurrentIndex(index)
|
|
|
|
def preservation(self):
|
|
username = self.line_username.text()
|
|
name = self.line_name.text()
|
|
group = self.combobox_group.currentText()
|
|
if username != self.list1[0] and group == self.list1[2]:
|
|
self.user.username = username
|
|
self.user.name = name
|
|
self.user.save()
|
|
self.my_Signal.emit('exit')
|
|
self.close()
|
|
elif username != self.list1[0] and group != self.list1[2]:
|
|
group_id = Group.get(name=group)
|
|
group_pro = Group.get_or_none(name=self.list1[2])
|
|
UserGroup.delete_user_from_group(user_id=self.user.id, group_id=group_pro.id)
|
|
self.user.username = username
|
|
self.user.name = name
|
|
self.user.save()
|
|
self.user.assign_group(group_id=group_id.id)
|
|
self.my_Signal.emit('exit')
|
|
self.close()
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"用户名未更改!",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
|
|
|
|
class modifyPassworldWindow(modifyPassworld):
|
|
|
|
def __init__(self, str):
|
|
modifyPassworld.__init__(self, str)
|
|
|
|
def preservation(self):
|
|
primitivePassword = self.line_primitivePassword.text()
|
|
updatePassword = self.line_updatePassword.text()
|
|
confirmPassword = self.line_confirmPassword.text()
|
|
dic = {
|
|
'primitivePassword': primitivePassword,
|
|
'updatePassword': updatePassword,
|
|
'confirmPassword': confirmPassword
|
|
|
|
}
|
|
user = User.get_or_none(username=self.name)
|
|
if User.password_valid(primitivePassword):
|
|
if user.verify_password(primitivePassword):
|
|
mp = self.modify_password(username=self.name, fieldData=dic)
|
|
if mp:
|
|
self.close()
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"原始密码错误,请重新输入",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"原始密码格式错误,请重新输入",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
|
|
def modify_password(self, username, fieldData):
|
|
user = User.get(username=username)
|
|
dic = fieldData
|
|
primitivePassword = dic['primitivePassword']
|
|
updatePassword = dic['updatePassword']
|
|
confirmPassword = dic['confirmPassword']
|
|
if User.password_valid(updatePassword):
|
|
if User.password_valid(confirmPassword):
|
|
if updatePassword == confirmPassword:
|
|
user.change_password(old_password=primitivePassword, new_password=confirmPassword)
|
|
return True
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"两次密码输入不一致,请重新输入",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"密码格式错误,请重新确认",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"密码格式错误,请重新确认",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
|
|
|
|
class newBuildGroupWindow(newBuildGroup):
|
|
def __init__(self):
|
|
newBuildGroup.__init__(self)
|
|
|
|
def preservation(self):
|
|
groupName = self.line_groupName.text()
|
|
groupDescribe = self.line_groupDescribe.text()
|
|
lists = []
|
|
groups = Group.select()
|
|
for group in groups:
|
|
lists.append(group.name)
|
|
|
|
if groupName not in lists:
|
|
if groupName:
|
|
Group.create_group(name=groupName, detail=groupDescribe)
|
|
self.my_Signal.emit('exit')
|
|
self.close()
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"组名必填,请重新输入",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
else:
|
|
QMessageBox.information(
|
|
self,
|
|
"信息提示",
|
|
"此组名已存在,请重新填写组名",
|
|
QMessageBox.Yes | QMessageBox.No
|
|
)
|
|
|
|
|
|
class userGroupSettingWindow(userGroupSettings):
|
|
|
|
def __init__(self, group_id):
|
|
userGroupSettings.__init__(self, group_id)
|
|
|
|
def get_all_users(self):
|
|
users = User.select()
|
|
lists = [user for user in users]
|
|
return lists
|
|
|
|
def get_all_operate(self):
|
|
operas = Operation.select()
|
|
lis = [opera for opera in operas]
|
|
return lis
|
|
|
|
def get_group_operate(self):
|
|
return GroupOperatePermission.get_operations_of_group(group_id=self.group_id)
|
|
|
|
def get_group_users(self):
|
|
return [x.user for x in UserGroup.get_ug_by_group_id(self.group_id)]
|
|
|
|
def changecb(self, state):
|
|
checkBox = self.sender()
|
|
user = User.get_user_by_username(checkBox.text())
|
|
if state == Qt.Checked:
|
|
UserGroup.add_user_to_group(user.id, self.group_id)
|
|
else:
|
|
UserGroup.delete_user_from_group(user.id, self.group_id)
|
|
|
|
def addAllUser(self):
|
|
users = self.get_all_users()
|
|
for user in users:
|
|
UserGroup.add_user_to_group(user.id, self.group_id)
|
|
for i in self.checkBox_list:
|
|
i.setChecked(True)
|
|
|
|
def unAddAllUser(self):
|
|
users = self.get_all_users()
|
|
for user in users:
|
|
UserGroup.delete_user_from_group(user.id, self.group_id)
|
|
for i in self.checkBox_list:
|
|
i.setChecked(False)
|
|
|
|
def closeEvent(self, event):
|
|
self.my_Signal.emit('exit')
|
|
self.lis.clear()
|
|
self.close()
|