public function actionPostupdateadminaccess()
 {
     $session = Yii::$app->session;
     if ($session->has('accountTypeID')) {
         $accountTypeID = (int) $session->get('accountTypeID');
         if ($accountTypeID == DefaultForm::ACCOUNT_TYPE_SUPERUSER || $accountTypeID == DefaultForm::ACCOUNT_TYPE_ADMINISTRATOR) {
             $request = Yii::$app->request;
             if ($request->isAjax) {
                 $post = $request->post();
                 $status = $post['Status'];
                 $usernamePost = $post['Username'];
                 $password = $post['Password'];
                 $confirmPassword = $post['ConfirmPassword'];
                 $passwordAsAdmin = $post['PasswordAsAdmin'];
                 $adminID = $post['AdminID'];
                 $sessionAccountID = (int) $session->get('accountID');
                 $_AccountStudentsForm = new AccountStudentsForm();
                 $_AccountAdminForm = new AccountAdminForm();
                 $_AccountRegisteredUsersForm = new AccountRegisteredUsersForm();
                 $accountTypeResult = $_AccountAdminForm->getAccountTypeByID($adminID);
                 if ((!empty($accountTypeResult) || $accountTypeResult != "") && (int) $accountTypeResult != 0) {
                     if (strlen($usernamePost) == 0) {
                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "Username is required!");
                     } else {
                         if (strlen($usernamePost) >= 8 && strlen($usernamePost) <= 20) {
                             $username = strtolower($usernamePost);
                             $isUsernameExistsAdmin = $_AccountAdminForm->checkIfUsernameExistsWithAdminID($username, $adminID);
                             if ((int) $isUsernameExistsAdmin == 0) {
                                 $isUsernameExistsStudents = $_AccountStudentsForm->checkIfUsernameExists($username);
                                 if ((int) $isUsernameExistsStudents == 0) {
                                     $isUsernameExistsRegisteredUsers = $_AccountRegisteredUsersForm->checkIfUsernameExists($username);
                                     if ((int) $isUsernameExistsRegisteredUsers == 0) {
                                         if ($password != "") {
                                             if ($confirmPassword != "") {
                                                 if ($password == $confirmPassword) {
                                                     if ($passwordAsAdmin != "") {
                                                         $passwordAsAdmin = md5($passwordAsAdmin);
                                                         $checkIfAdminIsReal = $_AccountAdminForm->checkIfAdminIsReal($sessionAccountID, $passwordAsAdmin);
                                                         if ($checkIfAdminIsReal == true) {
                                                             $password = md5($password);
                                                             $updateAdminAccess = $_AccountAdminForm->updateAdminStatusAndUsernameAndPassword($status, $username, $password, $adminID);
                                                             $returnData = array('status' => $updateAdminAccess['status'], 'message' => $updateAdminAccess['message']);
                                                         } else {
                                                             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "You are not authorized to perform this action!");
                                                         }
                                                     } else {
                                                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "Please prove that you are an admin!");
                                                     }
                                                 } else {
                                                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "Passwords did not match!");
                                                 }
                                             } else {
                                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "Please confirm your password!");
                                             }
                                         } else {
                                             if ($passwordAsAdmin != "") {
                                                 $passwordAsAdmin = md5($passwordAsAdmin);
                                                 $checkIfAdminIsReal = $_AccountAdminForm->checkIfAdminIsReal($sessionAccountID, $passwordAsAdmin);
                                                 if ($checkIfAdminIsReal == true) {
                                                     $password = md5($password);
                                                     $updateAdminAccess = $_AccountAdminForm->updateAdminStatusAndUsername($status, $username, $adminID);
                                                     $returnData = array('status' => $updateAdminAccess['status'], 'message' => $updateAdminAccess['message']);
                                                 } else {
                                                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "You are not authorized to perform this action!");
                                                 }
                                             } else {
                                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "Please prove that you are an admin!");
                                             }
                                         }
                                     } else {
                                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "Username already exists!");
                                     }
                                 } else {
                                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "Username already exists!");
                                 }
                             } else {
                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "Username already exists!");
                             }
                         } else {
                             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "Username must be greater than or equal to 8 characters AND lower than or equal to 20 characters!");
                         }
                     }
                 } else {
                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "You are not allowed to perform this action!");
                 }
             } else {
                 $returnData = array('status' => DefaultForm::ERROR_CODE_REQUEST_DEFAULT, 'message' => DefaultForm::ERROR_MESSAGE_AJAX_REQUEST_DEFAULT);
             }
         } else {
             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => "You are not allowed to perform this action!");
         }
         echo json_encode($returnData);
     } else {
         return DefaultController::redirectToLogOut();
     }
 }
 public function actionProcesslogin()
 {
     $request = Yii::$app->request;
     if ($request->isAjax) {
         $post = $request->post();
         $usernameOrEmailAddress = $post['usernameOrEmailAddress'];
         $password = md5($post['password']);
         $_AccountAdminForm = new AccountAdminForm();
         $result = array();
         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => DefaultForm::ERROR_MESSAGE_SYSTEM_DEFAULT);
         $validEmailAddress = DefaultController::isValidEmailAddress($usernameOrEmailAddress);
         if ($validEmailAddress == true) {
             $emailAddress = $usernameOrEmailAddress;
             $result = $_AccountAdminForm->getIDAndAccountTypeIDAndStatusAndFirstNameByEmailAddressAndPassword($emailAddress, $password);
         } else {
             $username = $usernameOrEmailAddress;
             $result = $_AccountAdminForm->getIDAndAccountTypeIDAndStatusAndFirstNameByUsernameAndPassword($username, $password);
         }
         if (!empty($result)) {
             if (isset($result['ID']) && (int) $result['ID'] > DefaultForm::ZERO_DEFAULT) {
                 if (isset($result['AccountTypeID']) && ((int) $result['AccountTypeID'] > DefaultForm::ZERO_DEFAULT || (int) $result['AccountTypeID'] <= 6)) {
                     if (isset($result['Status'])) {
                         $ID = $result['ID'];
                         $accountTypeID = $result['AccountTypeID'];
                         $status = $result['Status'];
                         $firstName = $result['FirstName'];
                         if ($status == DefaultForm::ACCOUNT_STATUS_ADMIN_ACTIVE) {
                             $sessionNameAccountTypeID = 'accountTypeID';
                             $createSessionAccountTypeID = DefaultController::createSession($sessionNameAccountTypeID, $accountTypeID);
                             if ($createSessionAccountTypeID == true) {
                                 $sessionNameAccountID = 'accountID';
                                 $createSessionAccountID = DefaultController::createSession($sessionNameAccountID, $ID);
                                 $sessionNameFirstName = 'firstName';
                                 $createSessionFirstName = DefaultController::createSession($sessionNameFirstName, $firstName);
                                 if ($createSessionAccountID == true && $createSessionFirstName == true) {
                                     $returnData = array('status' => DefaultForm::ERROR_CODE_NO_ERROR, 'message' => 'Connected! Redirecting you now...');
                                 } else {
                                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'There was an error creating your account session! Please try again.');
                                 }
                                 $returnData = array('status' => DefaultForm::ERROR_CODE_NO_ERROR, 'message' => 'Connected! Redirecting you now...');
                             } else {
                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'There was an error creating your account session! Please try again.');
                             }
                         } else {
                             if ($status == DefaultForm::ACCOUNT_STATUS_ADMIN_INACTIVE) {
                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Your account is not yet activated! Please contact the administrator for further details.');
                             } else {
                                 if ($status == DefaultForm::ACCOUNT_STATUS_ADMIN_DEACTIVATED) {
                                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Your account has been deactivated! Please contact the administrator for further details.');
                                 } else {
                                     if ($status == DefaultForm::ACCOUNT_STATUS_ADMIN_LOCKED_BY_SELF) {
                                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Your account has been locked! Please contact the administrator for further details.');
                                     } else {
                                         if ($status == DefaultForm::ACCOUNT_STATUS_ADMIN_LOCKED_BY_THE_ADMINISTRATOR) {
                                             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Your account has been locked! Please contact the administrator for further details.');
                                         } else {
                                             if ($status == DefaultForm::ACCOUNT_STATUS_ADMIN_DELETED) {
                                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Account is invalid!');
                                             } else {
                                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Could not retrieve account status! Please contact the administrator for further details.');
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     } else {
                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Could not retrieve account status! Please contact the administrator for further details.');
                     }
                 } else {
                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Could not retrieve account type! Please contact the administrator for further details.');
                 }
             } else {
                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Account is invalid!');
             }
         } else {
             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Account is invalid!');
         }
     } else {
         $returnData = array('status' => DefaultForm::ERROR_CODE_REQUEST_DEFAULT, 'message' => DefaultController::ERROR_MESSAGE_AJAX_REQUEST_DEFAULT);
     }
     echo json_encode($returnData);
 }
 public function actionPostsaveregistereduser()
 {
     $request = Yii::$app->request;
     if ($request->isAjax) {
         $post = $request->post();
         $lastName = $post['LastName'];
         $firstName = $post['FirstName'];
         $middleName = $post['MiddleName'];
         $gender = $post['Gender'];
         $birthday = $post['Birthday'];
         $homeAddress = $post['HomeAddress'];
         $countryCode = $post['CountryCode'];
         $cityID = $post['CityID'];
         $emailAddress = $post['EmailAddress'];
         $telephoneNumber = $post['TelephoneNumber'];
         $mobileNumber = $post['MobileNumber'];
         $username = $post['Username'];
         $password = $post['Password'];
         $confirmPassword = $post['ConfirmPassword'];
         if ($lastName != "") {
             if ($firstName != "") {
                 if ($gender == "" || $gender == 0 || $gender == "0") {
                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Please select your gender!');
                 } else {
                     if ($birthday != "") {
                         if ($countryCode != "") {
                             if ($cityID != "") {
                                 if (is_numeric($cityID)) {
                                     if ($emailAddress != "") {
                                         $isValidEmailAddress = DefaultController::isValidEmailAddress($emailAddress);
                                         if ($isValidEmailAddress == true) {
                                             if ($username != "") {
                                                 if (strlen($username) >= 8 && strlen($username) <= 20) {
                                                     if ($password != "") {
                                                         if (strlen($password) >= 8 && strlen($password) <= 20) {
                                                             if ($confirmPassword != "") {
                                                                 if ($password == $confirmPassword) {
                                                                     $_AccountRegisteredUsersForm = new AccountRegisteredUsersForm();
                                                                     $isUsernameExistsRegisteredUsers = $_AccountRegisteredUsersForm->checkIfUsernameExists($username);
                                                                     if ((int) $isUsernameExistsRegisteredUsers == 0) {
                                                                         $_AccountStudentsForm = new AccountStudentsForm();
                                                                         $isUsernameExistsStudents = $_AccountStudentsForm->checkIfUsernameExists($username);
                                                                         if ((int) $isUsernameExistsStudents == 0) {
                                                                             $_AccountAdminForm = new AccountAdminForm();
                                                                             $isUsernameExistsAdmin = $_AccountAdminForm->checkIfUsernameExists($username);
                                                                             if ((int) $isUsernameExistsAdmin == 0) {
                                                                                 $_AccountRegisteredUsersForm = new AccountRegisteredUsersForm();
                                                                                 $isEmailAddressExistsRegisteredUsers = $_AccountRegisteredUsersForm->checkIfEmailAddressExists($emailAddress);
                                                                                 if ((int) $isEmailAddressExistsRegisteredUsers == 0) {
                                                                                     $_AccountStudentsForm = new AccountStudentsForm();
                                                                                     $isEmailAddressExistsStudents = $_AccountStudentsForm->checkIfEmailAddressExists($emailAddress);
                                                                                     if ((int) $isEmailAddressExistsStudents == 0) {
                                                                                         $_AccountAdminForm = new AccountAdminForm();
                                                                                         $isEmailAddressExistsAdmin = $_AccountAdminForm->checkIfEmailAddressExists($emailAddress);
                                                                                         if ((int) $isEmailAddressExistsAdmin == 0) {
                                                                                             $_AccountRegisteredUserDetailsForm = new AccountRegisteredUserDetailsForm();
                                                                                             $hashedPassword = md5($password);
                                                                                             $activationCode = DefaultController::generateUniqueCode();
                                                                                             $saveRegisteredUser = $_AccountRegisteredUserDetailsForm->saveRegisteredUser($lastName, $firstName, $middleName, $gender, $birthday, $homeAddress, $countryCode, $cityID, $emailAddress, $telephoneNumber, $mobileNumber, $username, $hashedPassword, $activationCode);
                                                                                             $returnData = array('registeredUserID' => $saveRegisteredUser['registeredUserID'], 'status' => $saveRegisteredUser['status'], 'message' => $saveRegisteredUser['message']);
                                                                                         } else {
                                                                                             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Email address already exists!');
                                                                                         }
                                                                                     } else {
                                                                                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Email address already exists!');
                                                                                     }
                                                                                 } else {
                                                                                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Email address already exists!');
                                                                                 }
                                                                             } else {
                                                                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Username already exists!');
                                                                             }
                                                                         } else {
                                                                             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Username already exists!');
                                                                         }
                                                                     } else {
                                                                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Username already exists!');
                                                                     }
                                                                 } else {
                                                                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Passwords did not match!');
                                                                 }
                                                             } else {
                                                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Please confirm your password!');
                                                             }
                                                         } else {
                                                             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Please check password length!');
                                                         }
                                                     } else {
                                                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Password is required!');
                                                     }
                                                 } else {
                                                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Please check username length!');
                                                 }
                                             } else {
                                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Username is required!');
                                             }
                                         } else {
                                             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Email address is invalid!');
                                         }
                                     } else {
                                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Email address is required!');
                                     }
                                 } else {
                                     $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'City is invalid!');
                                 }
                             } else {
                                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'City is required!');
                             }
                         } else {
                             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Country is required!');
                         }
                     } else {
                         $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Bithday is required!');
                     }
                 }
             } else {
                 $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'First name is required!');
             }
         } else {
             $returnData = array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => 'Last name is required!');
         }
     } else {
         $returnData = array('status' => DefaultForm::ERROR_CODE_REQUEST_DEFAULT, 'message' => DefaultForm::ERROR_MESSAGE_AJAX_REQUEST_DEFAULT);
     }
     return json_encode($returnData);
 }