예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
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_()
예제 #4
0
 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())
예제 #5
0
 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_()
예제 #6
0
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)