def __init__(self, parent): """! The constructor.""" QWidget.__init__(self) self._context = parent.getContext() self._lng = self._context.getLanguage() # Extend the widget with all attributes and children from UI file loadUi(R.layouts.modif_account_widget, self) self.select_user_label.setText(R.values.strings.select_user(self._lng)) self.current_password_label.setText(R.values.strings.current_password(self._lng)) self.check_password_button.setText(R.values.strings.ok(self._lng)) self.access_rights_label.setText(R.values.strings.access_rights(self._lng)) self.new_password_label.setText(R.values.strings.new_password(self._lng)) self.confirm_password_label.setText(R.values.strings.confirm_password(self._lng)) self.modif_user_account_button.setText(R.values.strings.ok(self._lng)) self.new_password_edit.setEchoMode(QLineEdit.Password) self.confirm_new_password_edit.setEchoMode(QLineEdit.Password) self._accounts = UserAccounts() self.user_selected = User() self.user_dst = User() self.users_list_combo.addItems(self._accounts.user_list()) self.users_list_combo.currentIndexChanged.connect(self.update_user_info) self.connect(self.modif_user_account_button, SIGNAL("clicked()"), self.modif_user_account) self.connect(self.check_password_button, SIGNAL("clicked()"), self.check_password) self.current_password_edit.textChanged[str].connect(self.current_password_changed)
def add_user_account(self): """! Check fields and add user account.""" accounts = UserAccounts() user = User(self.user_id_edit.text()) password = self.password_edit.text() confirm = self.confirm_password_edit.text() if user.userid == "" or \ password == "" or \ confirm == "": msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.fields_not_filled(self._lng)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() return if confirm != password: msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.passwords_different(self._lng)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() return else: user.setUserPassword(password) user.setUserPrivilege(Privilege.TOLEVEL[self.access_rights_combo.currentText().lower()]) try: accounts.add(user) except Exception as e: msg_box = QAgiMessageBox() msg_box.setText(str(e)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() return msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.add_user_success(self._lng)) msg_box.setIcon(QAgiMessageBox.Information) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() self.user_id_edit.setText("") self.password_edit.setText("") self.confirm_password_edit.setText("") self.access_rights_combo.setCurrentIndex(0)
class RemoveUserAccountWidget(QWidget): def __init__(self, parent): """! The constructor.""" QWidget.__init__(self) # Extend the widget with all attributes and children from UI file loadUi(R.layouts.remove_account_widget, self) self._context = parent.getContext() self._lng = self._context.getLanguage() self.user_list_label.setText(R.values.strings.user_list(self._lng)) self.remove_button.setText(R.values.strings.ok(self._lng)) self.connect(self.remove_button, SIGNAL("clicked()"), self.remove_account) self._accounts = UserAccounts() self.users_list_combo.addItems(self._accounts.user_list()) def remove_account(self): """! Remove user account slected in user list.""" if self.users_list_combo.currentIndex() == 0: msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.select_user(self._lng)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() return user_id = self.users_list_combo.currentText() try: self._accounts.remove(User(user_id)) self.users_list_combo.removeItem(self.users_list_combo.currentIndex()) except Exception as e: msg_box = QAgiMessageBox() msg_box.setText(str(e)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() return self.users_list_combo.setCurrentIndex(0) msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.user_rm_success(self._lng)) msg_box.setIcon(QAgiMessageBox.Information) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_()
def __init__(self, parent): """! The constructor.""" QWidget.__init__(self) # Extend the widget with all attributes and children from UI file loadUi(R.layouts.remove_account_widget, self) self._context = parent.getContext() self._lng = self._context.getLanguage() self.user_list_label.setText(R.values.strings.user_list(self._lng)) self.remove_button.setText(R.values.strings.ok(self._lng)) self.connect(self.remove_button, SIGNAL("clicked()"), self.remove_account) self._accounts = UserAccounts() self.users_list_combo.addItems(self._accounts.user_list())
def account_validation(self): """! Check user account validity and connect user.""" accounts = UserAccounts() user = accounts.find(self.user_id_edit.text()) if user is None: msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.invalid_user_id(self._lng)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() elif user.password == base64.b64encode(self.password_edit.text()): self._context.switchUser(user) self.close() else: msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.invalid_password(self._lng)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_()
class ModifUserAccountWidget(QWidget): def __init__(self, parent): """! The constructor.""" QWidget.__init__(self) self._context = parent.getContext() self._lng = self._context.getLanguage() # Extend the widget with all attributes and children from UI file loadUi(R.layouts.modif_account_widget, self) self.select_user_label.setText(R.values.strings.select_user(self._lng)) self.current_password_label.setText(R.values.strings.current_password(self._lng)) self.check_password_button.setText(R.values.strings.ok(self._lng)) self.access_rights_label.setText(R.values.strings.access_rights(self._lng)) self.new_password_label.setText(R.values.strings.new_password(self._lng)) self.confirm_password_label.setText(R.values.strings.confirm_password(self._lng)) self.modif_user_account_button.setText(R.values.strings.ok(self._lng)) self.new_password_edit.setEchoMode(QLineEdit.Password) self.confirm_new_password_edit.setEchoMode(QLineEdit.Password) self._accounts = UserAccounts() self.user_selected = User() self.user_dst = User() self.users_list_combo.addItems(self._accounts.user_list()) self.users_list_combo.currentIndexChanged.connect(self.update_user_info) self.connect(self.modif_user_account_button, SIGNAL("clicked()"), self.modif_user_account) self.connect(self.check_password_button, SIGNAL("clicked()"), self.check_password) self.current_password_edit.textChanged[str].connect(self.current_password_changed) def current_password_changed(self): self.init_fields(False) def check_password(self): password = self.current_password_edit.text() if password == self.user_selected.getUserPassword(True): self.current_password_edit.setStyleSheet(R.values.styles.good_password) privilege = self.user_selected.getUserPrivilege() self.access_rights_combo.setCurrentIndex(privilege+1) self.new_password_edit.setText(self.user_selected.getUserPassword(True)) self.confirm_new_password_edit.setText(self.user_selected.getUserPassword(True)) self.new_password_edit.setEnabled(True) self.confirm_new_password_edit.setEnabled(True) self.access_rights_combo.setEnabled(True) self.modif_user_account_button.setEnabled(True) else: self.init_fields(False) self.current_password_edit.setStyleSheet(R.values.styles.bad_password) def update_user_info(self, index): """! Update user information with user selected. @param index: user list index. @type index: int. """ self.init_fields() if index == 0: self.current_password_edit.setEnabled(False) else: self.user_selected = self._accounts.find(self.users_list_combo.itemText(index)) self.current_password_edit.setEnabled(True) def modif_user_account(self): """! Check fields and modify user account.""" user_modified = User(self.user_selected.getUserId()) if self.access_rights_combo.currentIndex() == 0: msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.select_access_rights(self._lng)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() return elif self.new_password_edit.text() != \ self.confirm_new_password_edit.text(): msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.passwords_different(self._lng)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() return else: user_modified.privilege = Privilege.TOLEVEL[self.access_rights_combo.currentText().lower()] user_modified.setUserPassword(self.new_password_edit.text()) try: self._accounts.modif(self.user_selected, user_modified) except Exception as e: msg_box = QAgiMessageBox() msg_box.setText(str(e)) msg_box.setIcon(QAgiMessageBox.Critical) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() return msg_box = QAgiMessageBox() msg_box.setText(R.values.strings.user_mv_success(self._lng)) msg_box.setIcon(QAgiMessageBox.Information) msg_box.setStandardButtons(QAgiMessageBox.Ok) msg_box.button(QAgiMessageBox.Ok).setMinimumSize(100,40) msg_box.exec_() self.users_list_combo.setCurrentIndex(0) self.init_fields() def init_fields(self, clear_all = True): self.access_rights_combo.setCurrentIndex(0) self.new_password_edit.setText('') self.confirm_new_password_edit.setText('') self.new_password_edit.setEnabled(False) self.confirm_new_password_edit.setEnabled(False) self.access_rights_combo.setEnabled(False) self.modif_user_account_button.setEnabled(False) if clear_all: self.current_password_edit.setText('') self.current_password_edit.setStyleSheet(R.values.styles.no_password)