protected function btnSave_Click($strFormId, $strControlId, $strParameter)
 {
     $blnError = false;
     if ($this->txtPassword->Text != $this->txtPasswordConfirm->Text) {
         $blnError = true;
         $this->txtPassword->Warning = "The passwords do not match, please re-enter.";
         $this->txtPassword->Text = "";
         $this->txtPasswordConfirm->Text = "";
     } else {
         if (!($this->blnEditMode && $this->txtPassword->Text == '') && strlen($this->txtPassword->Text) < 8) {
             $blnError = true;
             $this->txtPassword->Warning = "Password must be at least 8 characters.";
         }
     }
     // Check for a valid email address
     if (!filter_var($this->txtEmailAddress->Text, FILTER_VALIDATE_EMAIL)) {
         $blnError = true;
         $this->txtEmailAddress->Warning = 'Please enter a valid email address';
     }
     // Do not allow duplicate email addresses
     $objUserAccountDupe = UserAccount::LoadByEmailAddress($this->txtEmailAddress->Text);
     if ($this->blnEditMode && $objUserAccountDupe && $objUserAccountDupe->UserAccountId != $this->objUserAccount->UserAccountId || !$this->blnEditMode && $objUserAccountDupe) {
         $blnError = true;
         $this->txtEmailAddress->Warning = 'A user account with that email address already exists.';
     }
     $intUserLimit = is_numeric(QApplication::$TracmorSettings->UserLimit) ? QApplication::$TracmorSettings->UserLimit : 99999;
     // Do not allow creation of a new active user if user limit will be exceeded
     if (!$this->blnEditMode && $this->chkActiveFlag->Checked) {
         if (UserAccount::CountActive() >= $intUserLimit) {
             $blnError = true;
             $this->chkActiveFlag->Warning = "You have exceeded your user limit.";
         }
     }
     // Do not allow activation of a disabled user if the user limit will be exceeded
     if ($this->blnEditMode && $this->chkActiveFlag->Checked && !$this->objUserAccount->ActiveFlag) {
         if (UserAccount::CountActive() >= $intUserLimit) {
             $blnError = true;
             $this->chkActiveFlag->Warning = "You have exceeded your user limit.";
         }
     }
     // Do not allow duplicate usernames
     if ($this->blnEditMode) {
         $objUserAccountDuplicate = UserAccount::QuerySingle(QQ::AndCondition(QQ::Equal(QQN::UserAccount()->Username, $this->txtUsername->Text), QQ::NotEqual(QQN::UserAccount()->UserAccountId, $this->objUserAccount->UserAccountId)));
     } else {
         $objUserAccountDuplicate = UserAccount::QuerySingle(QQ::Equal(QQN::UserAccount()->Username, $this->txtUsername->Text));
     }
     if ($objUserAccountDuplicate) {
         $blnError = true;
         $this->btnCancel->Warning = 'A user account already exists with that username. Please choose another.';
     }
     // Do not allow deactivation of owner account
     $this->objOwnerAccount = UserAccount::LoadOwner();
     if ($this->blnEditMode && $this->objOwnerAccount && $this->objOwnerAccount->UserAccountId == $this->objUserAccount->UserAccountId && !$this->chkActiveFlag->Checked) {
         $blnError = true;
         $this->btnCancel->Warning = 'This user cannot be deactivated because they are the account owner.';
     }
     if (!$blnError) {
         try {
             $this->UpdateUserAccountFields();
             $this->objUserAccount->Save();
             QApplication::Redirect('user_account_list.php');
         } catch (QExtendedOptimisticLockingException $objExc) {
             $this->btnCancel->Warning = sprintf('This user account has been updated by another user. You must <a href="user_account_edit.php?intUserAccountId=%s">Refresh</a> to edit this user account.', $this->objUserAccount->UserAccountId);
         }
     }
 }
Exemple #2
0
 protected function btnSave_Click($strFormId, $strControlId, $strParameter)
 {
     $blnError = false;
     if ($this->txtPassword->Text != $this->txtPasswordConfirm->Text) {
         $blnError = true;
         $this->txtPassword->Warning = "The passwords do not match, please re-enter.";
         $this->txtPassword->Text = "";
         $this->txtPasswordConfirm->Text = "";
     }
     $intUserLimit = is_numeric(QApplication::$TracmorSettings->UserLimit) ? QApplication::$TracmorSettings->UserLimit : 99999;
     // Do not allow creation of a new active user if user limit will be exceeded
     if (!$this->blnEditMode && $this->chkActiveFlag->Checked) {
         if (UserAccount::CountActive() >= $intUserLimit) {
             $blnError = true;
             $this->chkActiveFlag->Warning = "You have exceeded your user limit.";
         }
     }
     // Do not allow activation of a disabled user if the user limit will be exceeded
     if ($this->blnEditMode && $this->chkActiveFlag->Checked && !$this->objUserAccount->ActiveFlag) {
         if (UserAccount::CountActive() >= $intUserLimit) {
             $blnError = true;
             $this->chkActiveFlag->Warning = "You have exceeded your user limit.";
         }
     }
     // Do not allow duplicate usernames
     if ($this->blnEditMode) {
         $objUserAccountDuplicate = UserAccount::QuerySingle(QQ::AndCondition(QQ::Equal(QQN::UserAccount()->Username, $this->txtUsername->Text), QQ::NotEqual(QQN::UserAccount()->UserAccountId, $this->objUserAccount->UserAccountId)));
     } else {
         $objUserAccountDuplicate = UserAccount::QuerySingle(QQ::Equal(QQN::UserAccount()->Username, $this->txtUsername->Text));
     }
     if ($objUserAccountDuplicate) {
         $blnError = true;
         $this->btnCancel->Warning = 'A user account already exists with that username. Please choose another.';
     }
     if (!$blnError) {
         try {
             $this->UpdateUserAccountFields();
             $this->objUserAccount->Save();
             QApplication::Redirect('user_account_list.php');
         } catch (QExtendedOptimisticLockingException $objExc) {
             $this->btnCancel->Warning = sprintf('This user account has been updated by another user. You must <a href="user_account_edit.php?intUserAccountId=%s">Refresh</a> to edit this user account.', $this->objUserAccount->UserAccountId);
         }
     }
 }