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.

155 lines
5.2 KiB
Python

2 years ago
from PyQt5.QtWidgets import QMessageBox
from DcsUi.userManagement.AccountManagement import userList, userGroupList, AccountManagement
from DcsUi.userManagement.deleteData import *
from DcsUi.userManagement.userWindow import NewBuildWindow, EditWindow, modifyPassworldWindow, newBuildGroupWindow, \
userGroupSettingWindow
class user(userList):
def __init__(self):
userList.__init__(self)
def getTableValue(self):
gops = User.select()
lis = []
row = 1
for i in gops:
groups_name = UserGroup.get_groups_of_user(i.id)
if len(groups_name) > 1:
for group_name in groups_name:
result0 = []
result0.append(row)
result0.append(i.username)
result0.append(i.name)
result0.append(group_name)
lis.append(result0)
row += 1
elif len(groups_name) == 1:
result1 = []
result1.append(row)
result1.append(i.username)
result1.append(i.name)
result1.append(groups_name[0])
lis.append(result1)
row += 1
return lis
def newBuild(self):
self.mywindow = NewBuildWindow()
self.mywindow.my_Signal.connect(self.active_exit)
self.mywindow.show()
def active_exit(self):
self.queryModel.datas = self.getTableValue()
self.queryModel.layoutChanged.emit()
def actionHandler1(self):
row = self.tableView.currentIndex().row()
self.editwindow = EditWindow(self.getTableValue()[row][1:4])
self.editwindow.my_Signal.connect(self.active_exit)
self.editwindow.show()
def actionHandler2(self):
reply = QMessageBox.information(
self,
"信息提示",
"确认删除该用户吗",
QMessageBox.Yes | QMessageBox.No
)
if reply == 16384:
row = self.tableView.currentIndex().row()
username = self.getTableValue()[row][1]
groupname = self.getTableValue()[row][3]
deleteData.userDelete(username, groupname)
self.queryModel.datas = self.getTableValue()
self.queryModel.layoutChanged.emit()
def actionHandler3(self):
row = self.tableView.currentIndex().row()
self.modifypassworld = modifyPassworldWindow(self.getTableValue()[row][1])
self.modifypassworld.show()
class userGroup(userGroupList):
def __init__(self):
userGroupList.__init__(self)
def getTableValue(self):
gops = Group.select()
lis = []
row = 1
for group in gops:
result = []
user_list = []
opera_list = []
users = UserGroup.get_users_in_group(group_id=group.id)
operates = GroupOperatePermission.get_gop_by_group_id(group_id=group.id)
for user in users:
user_list.append(user)
for operate in operates:
ope = Operation.get_or_none(Operation.id == operate.operation_id)
opera_list.append(ope.name)
user_str = ",".join(user_list)
opera_str = ",".join(opera_list)
result.append(row)
result.append(group.name)
result.append(user_str)
result.append(group.detail)
result.append(opera_str)
lis.append(result)
row += 1
return lis
def newBuild(self):
self.buildGroup = newBuildGroupWindow()
self.buildGroup.my_Signal.connect(self.active_exit)
self.buildGroup.show()
def active_exit(self):
self.queryModel.datas = self.getTableValue()
self.queryModel.layoutChanged.emit()
def actionHandler1(self):
row = self.tableView.currentIndex().row()
currentGroupId = selectData.selectGroupID(self.getTableValue()[row][1])
self.groupWindow = userGroupSettingWindow(currentGroupId)
self.groupWindow.my_Signal.connect(self.active_exit)
self.groupWindow.show()
def actionHandler2(self):
reply = QMessageBox.information(
self,
"信息提示",
"确认删除该用户组吗",
QMessageBox.Yes | QMessageBox.No
)
if reply == 16384:
row = self.tableView.currentIndex().row()
groupname = self.getTableValue()[row][1]
member = self.getTableValue()[row][2]
deleteData.deleteGroup(groupname, member)
self.queryModel.datas = self.getTableValue()
self.queryModel.layoutChanged.emit()
class AccountManage(AccountManagement):
def __init__(self):
AccountManagement.__init__(self)
def _setdata_(self):
win1 = user()
win2 = userGroup()
self.lis_name = ['用户管理', '用户组管理']
self.lis_win = [win1, win2]
self.lis_img = [
':/static/UserManagement.png',
':/static/UserGroupManagement.png',
]
def changeData(self):
win = self.right_widget.currentWidget()
win.queryModel.datas = win.getTableValue()
win.queryModel.layoutChanged.emit()