public static function post()
 {
     $page = new Page();
     $page->data['title'] = 'Kassa';
     if (isset($_POST['to_enter_transaction_view'])) {
         $errMsgs = CashRegisterEnterCardViewValidator::validate($_POST);
         if (empty($errMsgs)) {
             try {
                 $_SESSION['Stippers']['CashRegister']['user'] = UserDB::getFullUserByCardNumber($_POST['card_number']);
                 if (!$_SESSION['Stippers']['CashRegister']['user']) {
                     CashRegisterController::buildEnterCardView($page, true);
                     $page->data['CashRegisterEnterCardView']['errMsgs']['global'] = '<h2 class="error_message" id="enter_card_form_error_message">Dit kaartnummer is niet gekoppeld aan een gebruiker.</h2>';
                 } else {
                     CashRegisterController::buildEnterTransactionView($page, false);
                 }
             } catch (Exception $ex) {
                 CashRegisterController::buildEnterCardView($page, true);
                 $page->data['CashRegisterEnterCardView']['errMsgs']['global'] = '<h2 class="error_message" id="enter_card_form_error_message">Kan gebruiker niet ophalen, probeer opnieuw.</h2>';
             }
         } else {
             CashRegisterController::buildEnterCardView($page, true);
             $page->data['CashRegisterEnterCardView']['errMsgs'] = array_merge($page->data['CashRegisterEnterCardView']['errMsgs'], $errMsgs);
         }
     } elseif (isset($_POST['register_transaction'])) {
         $errMsgs = CashRegisterEnterTransactionViewValidator::validate($_POST);
         if (empty($errMsgs)) {
             try {
                 $decrMoney = $_POST['decrease_money'] == '' ? 0 : SafeMath::getCentsFromString($_POST['decrease_money']);
                 $executingBrowserName = BrowserDB::getBrowserById($_SESSION['Stippers']['browser']->browserId)->name;
                 $trans = new MoneyTransaction(null, $_SESSION['Stippers']['CashRegister']['user']->userId, $_SESSION['Stippers']['CashRegister']['user']->balance, 0, $decrMoney, MoneyTransactionConfig::DEFAULT_DISCOUNT_PERC, false, null, $executingBrowserName, null);
                 if ($trans->getBalAfter() < 0) {
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['errorTitle'] = 'Saldo te laag';
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['errorDescription'] = 'Het saldo de kaart is te laag.<br>Je komt onder nul uit.';
                     $page->addView('error/ErrorMessageWithDescriptionWithLinkView');
                 } else {
                     MoneyTransactionDB::addTransaction($_SESSION['Stippers']['CashRegister']['user'], $trans);
                     $page->data['CashRegisterTransactionResultView']['balBefore'] = $trans->getBalBefore() / 100;
                     $page->data['CashRegisterTransactionResultView']['balAfter'] = $trans->getBalAfter() / 100;
                     $page->data['CashRegisterTransactionResultView']['discount'] = $trans->getDiscount() / 100;
                     $page->data['CashRegisterTransactionResultView']['decrMoney'] = $trans->getDecrMoney() / 100;
                     $page->addView('cashRegister/CashRegisterTransactionResultView');
                 }
             } catch (Exception $ex) {
                 CashRegisterController::buildEnterTransactionView($page, true);
                 $page->data['CashRegisterEnterTransactionView']['errMsgs']['global'] = '<h2 class="error_message" id="enter_transaction_form_error_message">Kan transactie niet registreren, probeer opnieuw.</h2>';
             }
         } else {
             CashRegisterController::buildEnterTransactionView($page, true);
             $page->data['CashRegisterEnterTransactionView']['errMsgs'] = array_merge($page->data['CashRegisterEnterTransactionView']['errMsgs'], $errMsgs);
         }
     }
     $page->showWithMenu();
 }
 public static function post()
 {
     $page = new Page();
     $page->data['title'] = 'Geld beheren';
     $errMsgs = ManageUserMoneyEnterTransactionViewValidator::validate($_POST);
     if (empty($errMsgs)) {
         try {
             $incrMoney = $_POST['increase_money'] == '' ? 0 : SafeMath::getCentsFromString($_POST['increase_money']);
             $decrMoney = $_POST['decrease_money'] == '' ? 0 : SafeMath::getCentsFromString($_POST['decrease_money']);
             $fromPrize = isset($_POST['from_prize']);
             if (isset($_SESSION['Stippers']['browser'])) {
                 $executingBrowserName = BrowserDB::getBrowserById($_SESSION['Stippers']['browser']->browserId)->name;
             } else {
                 $executingBrowserName = null;
             }
             if (isset($_SESSION['Stippers']['user'])) {
                 $executingUser = $_SESSION['Stippers']['user']->userId;
             } else {
                 $executingUser = null;
             }
             $trans = new MoneyTransaction(null, $_SESSION['Stippers']['ManageUserMoney']['user']->userId, $_SESSION['Stippers']['ManageUserMoney']['user']->balance, $incrMoney, $decrMoney, MoneyTransactionConfig::DEFAULT_DISCOUNT_PERC, $fromPrize, null, $executingBrowserName, $executingUser);
             if ($trans->getBalAfter() < 0) {
                 $page->data['ErrorMessageWithDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                 $page->data['ErrorMessageWithDescriptionWithLinkView']['errorTitle'] = 'Saldo te laag';
                 $page->data['ErrorMessageWithDescriptionWithLinkView']['errorDescription'] = 'Het saldo de kaart is te laag.<br>Je komt onder nul uit.';
                 $page->addView('error/ErrorMessageWithDescriptionWithLinkView');
             } else {
                 MoneyTransactionDB::addTransaction($_SESSION['Stippers']['ManageUserMoney']['user'], $trans);
                 $page->data['ManageUserMoneyTransactionResultView']['balBefore'] = $trans->getBalBefore() / 100;
                 $page->data['ManageUserMoneyTransactionResultView']['balAfter'] = $trans->getBalAfter() / 100;
                 $page->data['ManageUserMoneyTransactionResultView']['discount'] = $trans->getDiscount() / 100;
                 $page->data['ManageUserMoneyTransactionResultView']['incrMoney'] = $trans->getIncrMoney() / 100;
                 $page->data['ManageUserMoneyTransactionResultView']['decrMoney'] = $trans->getDecrMoney() / 100;
                 $page->addView('manageUserMoney/ManageUserMoneyTransactionResultView');
             }
         } catch (Exception $ex) {
             ManageUserMoneyController::buildEnterTransactionView($page, true);
             $page->data['ManageUserMoneyEnterTransactionView']['errMsgs']['global'] = '<h2 class="error_message" id="enter_transaction_form_error_message">Kan transactie niet registreren, probeer opnieuw.</h2>';
         }
     } else {
         ManageUserMoneyController::buildEnterTransactionView($page, true);
         $page->data['ManageUserMoneyEnterTransactionView']['errMsgs'] = array_merge($page->data['ManageUserMoneyEnterTransactionView']['errMsgs'], $errMsgs);
     }
     $page->showWithMenu();
 }
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Browsers beheren';
     $page->addView('manageBrowser/ManageBrowserTopView');
     try {
         //Get list of existing browsers to show
         $browsers = BrowserDB::getBrowsers();
         if (count($browsers) > 0) {
             $page->data['ManageBrowserBrowserListView']['browsers'] = $browsers;
             $page->addView('manageBrowser/ManageBrowserBrowserListView');
         } else {
             $page->addView('manageBrowser/ManageBrowserNoBrowsersView');
         }
     } catch (Exception $ex) {
         $page->data['ErrorMessageNoDescriptionWithLinkView']['errorTitle'] = 'Kan browsers niet ophalen';
         $page->data['ErrorMessageNoDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
         $page->addView('error/ErrorMessageNoDescriptionWithLinkView');
     }
     $page->data['ManageBrowserNewBrowserView']['new_browser_formAction'] = $_SERVER['REQUEST_URI'];
     $page->addView('manageBrowser/ManageBrowserNewBrowserView');
     $page->showWithMenu();
 }
 public static function post()
 {
     if (isset($_POST['add_browser'])) {
         $page = new Page();
         $page->data['title'] = 'Browser toevoegen';
         $errMsgs = AddEditBrowserTopViewValidator::validate($_POST);
         if (empty($errMsgs)) {
             try {
                 //Create new browser from entered data
                 $browser = new Browser(null, Random::getGuid(), $_POST['browser_name'], isset($_POST['can_add_renew_users']), isset($_POST['can_check_in']), isset($_POST['is_cash_register']));
                 BrowserDB::addBrowser($browser);
                 //Also set cookie
                 setcookie("stippersAuthorization", $browser->uuid, 2147483647);
                 $page->data['SuccessMessageNoDescriptionWithLinkView']['successTitle'] = 'Browser successvol toegevoegd';
                 $page->data['SuccessMessageNoDescriptionWithLinkView']['redirectUrl'] = 'managebrowser';
                 $page->addView('success/SuccessMessageNoDescriptionWithLinkView');
             } catch (BrowserDBException $ex) {
                 if ($ex->getCode() == BrowserDBException::BROWSERNAMEEXISTS) {
                     AddBrowserController::buildAddEditBrowserTopView($page, true);
                     $page->data['AddEditBrowserTopView']['errMsgs']['global'] = '<h2 class="error_message" id="add_edit_browser_form_error_message">Deze naam is reeds in gebruik.</h2>';
                 } else {
                     AddBrowserController::buildAddEditBrowserTopView($page, true);
                     $page->data['AddEditBrowserTopView']['errMsgs']['global'] = '<h2 class="error_message" id="add_edit_browser_form_error_message">Kan browser niet toevoegen, probeer het opnieuw.</h2>';
                 }
             } catch (Exception $ex) {
                 AddBrowserController::buildAddEditBrowserTopView($page, true);
                 $page->data['AddEditBrowserTopView']['errMsgs']['global'] = '<h2 class="error_message" id="add_edit_browser_form_error_message">Kan browser niet toevoegen, probeer het opnieuw.</h2>';
             }
         } else {
             AddBrowserController::buildAddEditBrowserTopView($page, true);
             $page->data['AddEditBrowserTopView']['errMsgs'] = array_merge($page->data['AddEditBrowserTopView']['errMsgs'], $errMsgs);
         }
         $page->showWithMenu();
     } else {
         header('Location: managebrowser', true, 303);
     }
 }
 public static function post()
 {
     $page = new Page();
     $page->data['title'] = 'Browser bewerken';
     if (isset($_POST['save'])) {
         $errMsgs = AddEditBrowserTopViewValidator::validate($_POST);
         if (empty($errMsgs)) {
             try {
                 //Create new browser of entered data and try to update
                 $newBrowser = new Browser($_SESSION['Stippers']['EditBrowser']['browser']->browserId, Random::getGuid(), $_POST['browser_name'], isset($_POST['can_add_renew_users']), isset($_POST['can_check_in']), isset($_POST['is_cash_register']));
                 BrowserDB::updateBrowser($_SESSION['Stippers']['EditBrowser']['browser'], $newBrowser);
                 $page->data['SuccessMessageNoDescriptionWithLinkView']['successTitle'] = 'Browser successvol gewijzigd';
                 $page->data['SuccessMessageNoDescriptionWithLinkView']['redirectUrl'] = 'managebrowser';
                 $page->addView('success/SuccessMessageNoDescriptionWithLinkView');
             } catch (BrowserDBException $ex) {
                 if ($ex->getCode() == BrowserDBException::BROWSEROUTOFDATE) {
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['errorTitle'] = 'Gebruiker niet hernieuwd';
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['errorDescription'] = 'Iemand anders heeft de gebruiker in tussentijd al gewijzigd.';
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                     $page->addView('error/ErrorMessageWithDescriptionWithLinkView');
                 } else {
                     EditBrowserController::buildAddEditBrowserTopView($page, true);
                     if ($ex->getCode() == BrowserDBException::BROWSERNAMEEXISTS) {
                         $page->data['AddEditBrowserTopView']['errMsgs']['global'] = '<h2 class="error_message" id="add_edit_browser_form_error_message">Deze naam is reeds in gebruik.</h2>';
                     } else {
                         $page->data['AddEditBrowserTopView']['errMsgs']['global'] = '<h2 class="error_message" id="add_edit_browser_form_error_message">Kan browser niet wijzigen, probeer het opnieuw.</h2>';
                     }
                 }
             } catch (Exception $ex) {
                 EditBrowserController::buildAddEditBrowserTopView($page, true);
                 $page->data['AddEditBrowserTopView']['errMsgs']['global'] = '<h2 class="error_message" id="add_edit_browser_form_error_message">Kan browser niet wijzigen, probeer het opnieuw.</h2>';
             }
         } else {
             EditBrowserController::buildAddEditBrowserTopView($page, true);
             $page->data['AddEditBrowserTopView']['errMsgs'] = array_merge($page->data['AddEditBrowserTopView']['errMsgs'], $errMsgs);
         }
         $page->showWithMenu();
     } elseif (isset($_POST['delete'])) {
         try {
             BrowserDB::removeBrowser($_SESSION['Stippers']['EditBrowser']['browser']);
             $page->data['SuccessMessageNoDescriptionWithLinkView']['successTitle'] = 'Browser successvol gewijzigd';
             $page->data['SuccessMessageNoDescriptionWithLinkView']['redirectUrl'] = 'managebrowser';
             $page->addView('success/SuccessMessageNoDescriptionWithLinkView');
         } catch (BrowserDBException $ex) {
             if ($ex->getCode() == BrowserDBException::BROWSEROUTOFDATE) {
                 $page->data['ErrorMessageWithDescriptionWithLinkView']['errorTitle'] = 'Gebruiker niet hernieuwd';
                 $page->data['ErrorMessageWithDescriptionWithLinkView']['errorDescription'] = 'Iemand anders heeft de gebruiker in tussentijd al gewijzigd.';
                 $page->data['ErrorMessageWithDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                 $page->addView('error/ErrorMessageWithDescriptionWithLinkView');
             } else {
                 EditBrowserController::buildAddEditBrowserTopView($page, true);
                 $page->data['AddEditBrowserTopView']['errMsgs']['global'] = '<h2 class="error_message" id="add_edit_browser_form_error_message">Kan browser niet wijzigen, probeer het opnieuw.</h2>';
             }
         } catch (Exception $ex) {
             EditBrowserController::buildAddEditBrowserTopView($page, true);
             $page->data['AddEditBrowserTopView']['errMsgs']['global'] = '<h2 class="error_message" id="add_edit_browser_form_error_message">Kan browser niet wijzigen, probeer het opnieuw.</h2>';
         }
         $page->showWithMenu();
     } else {
         header('Location: managebrowser', true, 303);
     }
 }
示例#6
0
 public static function run(array $requestData)
 {
     //Make sure we have a session
     if (session_status() == PHP_SESSION_NONE) {
         session_start();
     }
     /*
     //Count hits
     if (isset($_SESSION['Stippers']['hits']))
         $_SESSION['Stippers']['hits']++;
     else
         $_SESSION['Stippers']['hits'] = 0;
     echo $_SESSION['Stippers']['hits'];
     */
     //If we have login in our post this means we are on the login page in and we must call the login controller.
     //The login controller will load
     if (isset($_POST['login'])) {
         LoginController::post();
     }
     $errorGettingUser = false;
     $errorGettingBrowser = false;
     //Check if we have data about a user in session, in which case renew it.
     //Also check if we're not logging in because then we already have fresh user data.
     if (isset($_SESSION['Stippers']['user']) && !isset($_POST['login'])) {
         try {
             //Gets user from database. This gets the user only if he's a member this year or if it's the admin account.
             $newUser = UserDB::getAuthUserById($_SESSION['Stippers']['user']->userId);
             //If the user's password has changed we immediately log out!
             if ($_SESSION['Stippers']['user']->passwordHash != $newUser->passwordHash) {
                 session_destroy();
                 ForcedLogoutController::get();
                 return false;
             } else {
                 $_SESSION['Stippers']['user'] = $newUser;
             }
         } catch (Exception $ex) {
             session_destroy();
             ForcedLogoutController::get();
             return false;
         }
     }
     //Get the browser data for this browser
     if (isset($_COOKIE['stippersAuthorization'])) {
         try {
             $_SESSION['Stippers']['browser'] = BrowserDB::getBasicBrowserByUuid($_COOKIE['stippersAuthorization']);
         } catch (BrowserDBException $ex) {
             //unset because we don't want to use old data
             unset($_SESSION['Stippers']['browser']);
             if ($ex->getCode() != BrowserDBException::NOBROWSERFORUUID) {
                 $errorGettingBrowser = true;
             }
         } catch (Exception $ex) {
             //unset because we don't want to use old data
             unset($_SESSION['Stippers']['browser']);
             $errorGettingBrowser = true;
         }
     }
     //We can now check the page access permissions.
     require_once __DIR__ . '/../config/PageAccessPermissions.php';
     //Default to inaccessible for everyone
     $everyone = false;
     $member = false;
     $admin = false;
     $userManager = false;
     $hintManager = false;
     $browserManager = false;
     $moneyManager = false;
     $addRenewUserBrowser = false;
     $checkInBrowser = false;
     $cashRegisterBrowser = false;
     $apiKey = false;
     //If permissions for the requested page are defined we override the
     //defaults with these.
     if (isset($_PERMISSIONS[$requestData['requestedPage']])) {
         $permissions = $_PERMISSIONS[$requestData['requestedPage']];
         if (isset($permissions['EVERYONE'])) {
             $everyone = $permissions['EVERYONE'];
         }
         if (isset($permissions['MEMBER'])) {
             $member = $permissions['MEMBER'];
         }
         if (isset($permissions['ADMIN'])) {
             $admin = $permissions['ADMIN'];
         }
         if (isset($permissions['USERMANAGER'])) {
             $userManager = $permissions['USERMANAGER'];
         }
         if (isset($permissions['HINTMANAGER'])) {
             $hintManager = $permissions['HINTMANAGER'];
         }
         if (isset($permissions['BROWSERMANAGER'])) {
             $browserManager = $permissions['BROWSERMANAGER'];
         }
         if (isset($permissions['MONEYMANAGER'])) {
             $moneyManager = $permissions['MONEYMANAGER'];
         }
         if (isset($permissions['ADDRENEWUSERBROWSER'])) {
             $addRenewUserBrowser = $permissions['ADDRENEWUSERBROWSER'];
         }
         if (isset($permissions['CHECKINBROWSER'])) {
             $checkInBrowser = $permissions['CHECKINBROWSER'];
         }
         if (isset($permissions['CASHREGISTERBROWSER'])) {
             $cashRegisterBrowser = $permissions['CASHREGISTERBROWSER'];
         }
         if (isset($permissions['APIKEY'])) {
             $apiKey = $permissions['APIKEY'];
         }
     }
     //Possible states
     $canDisplay = false;
     $hasToLogIn = false;
     $needsApiKey = false;
     if ($everyone) {
         $canDisplay = true;
     }
     //If a browser can display the page we check if the current browser has the required permissions.
     if (!$canDisplay && ($checkInBrowser || $addRenewUserBrowser || $cashRegisterBrowser)) {
         if (isset($_SESSION['Stippers']['browser'])) {
             if ($checkInBrowser && $_SESSION['Stippers']['browser']->canCheckIn) {
                 $canDisplay = true;
             } elseif ($addRenewUserBrowser && $_SESSION['Stippers']['browser']->canAddRenewUsers) {
                 $canDisplay = true;
             } elseif ($cashRegisterBrowser && $_SESSION['Stippers']['browser']->isCashRegister) {
                 $canDisplay = true;
             }
         }
     }
     //If certain users can display the page and someone is logged in we check if the logged in user has the required permissions.
     if (!$canDisplay && ($member || $userManager || $hintManager || $browserManager || $moneyManager || $admin)) {
         //No access yet and no user in session? Let user login!
         if (!isset($_SESSION['Stippers']['user'])) {
             $hasToLogIn = true;
         } else {
             if ($member) {
                 $canDisplay = true;
             } else {
                 if ($userManager && $_SESSION['Stippers']['user']->isUserManager) {
                     $canDisplay = true;
                 } else {
                     if ($hintManager && $_SESSION['Stippers']['user']->isHintManager) {
                         $canDisplay = true;
                     } else {
                         if ($browserManager && $_SESSION['Stippers']['user']->isBrowserManager) {
                             $canDisplay = true;
                         } else {
                             if ($browserManager && $_SESSION['Stippers']['user']->isMoneyManager) {
                                 $canDisplay = true;
                             } else {
                                 if ($admin && $_SESSION['Stippers']['user']->isAdmin) {
                                     $canDisplay = true;
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     //If requests with a valid api key can view the page we check if a valid key is given.
     if (!$canDisplay && substr_compare($requestData['requestedPage'], DomainConfig::API_PATH, 0, strlen(DomainConfig::API_PATH)) == 0 && $apiKey) {
         //Check if a key is given and it's in the list of valid keys
         if (isset($_GET['key']) && in_array($_GET['key'], APIConfig::VALID_KEYS)) {
             $canDisplay = true;
         } else {
             $needsApiKey = true;
         }
     }
     if (!$canDisplay) {
         if ($needsApiKey) {
             header('HTTP/1.1 403 Forbidden');
             return false;
         } elseif ($hasToLogIn) {
             LoginController::get();
             return false;
         } elseif ($errorGettingBrowser || $errorGettingUser) {
             DBErrorController::get();
             return false;
         } else {
             AccessDeniedController::get();
             return false;
         }
     } else {
         return true;
     }
 }
示例#7
0
 public static function post()
 {
     $page = new Page();
     $page->data['title'] = 'Gebruiker toevoegen';
     //Validate input
     $formTopViewErrMsgs = UserDataFormTopViewValidator::validate($_POST);
     $formPasswordViewErrMsgs = UserDataFormPasswordViewValidator::validate($_POST);
     $formMiddleViewErrMsgs = UserDataFormMiddleViewValidator::validate($_POST);
     //No error means we create a user and password salt
     if (empty($formTopViewErrMsgs) && empty($formPasswordViewErrMsgs) && empty($formMiddleViewErrMsgs)) {
         $passwordSalt = Random::getGuid();
         $user = new User();
         $user->email = $_POST['email'];
         $user->firstName = ucwords($_POST['first_name']);
         $user->lastName = ucwords($_POST['last_name']);
         $user->passwordHash = hash_pbkdf2("sha256", $_POST['password'], $passwordSalt, SecurityConfig::N_PASSWORD_HASH_ITERATIONS);
         $user->street = ucwords($_POST['street']);
         $user->houseNumber = $_POST['house_number'];
         $user->city = ucwords($_POST['city']);
         $user->postalCode = $_POST['postal_code'];
         $user->country = ucwords($_POST['country']);
         $user->phone = $_POST['phone'];
         $user->dateOfBirth = $_POST['date_of_birth'];
         //Add the user
         try {
             $userId = UserDB::addUser($user, $passwordSalt, $_POST['card_number']);
             $page->addView('addRenewUser/addUser/SuccessfullyAddedView');
             //Send welcome mail
             try {
                 $failedEmails = Email::sendEmails('WelcomeNewMember.html', 'JH DE Stip - Welkom', EmailConfig::FROM_ADDRESS, [$user], null);
                 //If failedEmails is not empty the mail was not sent
                 if (!empty($failedEmails)) {
                     $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan welkomstmail niet verzenden.';
                     $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
                 }
             } catch (Exception $ex) {
                 $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan welkomstmail niet verzenden.';
                 $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
             }
             //Add money to user's card
             try {
                 $addedUser = UserDB::getFullUserById($userId);
                 $executingBrowserName = BrowserDB::getBrowserById($_SESSION['Stippers']['browser']->browserId)->name;
                 $trans = new MoneyTransaction(null, $addedUser->userId, 0, AddOrRenewUserConfig::NEW_OR_RENEWED_USER_BONUS, 0, 0, true, null, $executingBrowserName, null);
                 MoneyTransactionDB::addTransaction($addedUser, $trans);
             } catch (Exception $ex) {
                 if (isset($page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'])) {
                     $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] .= ' Kan het saldo van het account niet verhogen, probeer dit handmatig te doen.';
                 } else {
                     $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan het saldo van het account niet verhogen, probeer dit handmatig te doen.';
                 }
                 $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
             }
         } catch (UserDBException $ex) {
             AddUserController::buildAddUserPage($page, true);
             if ($ex->getCode() == UserDBException::EMAILALREADYEXISTS) {
                 $page->data['UserDataFormTopView']['errMsgs']['global'] = '<h2 class="error_message" id="user_data_form_error_message">Dit e-mailadres is al in gebruik.</h2>';
             } elseif ($ex->getCode() == UserDBException::CARDALREADYUSED) {
                 $page->data['UserDataFormTopView']['errMsgs']['global'] = '<h2 class="error_message" id="user_data_form_error_message">Dit kaartnummer is al in gebruik.</h2>';
             } else {
                 $page->data['UserDataFormTopView']['errMsgs']['global'] = '<h2 class="error_message" id="user_data_form_error_message">Kan gebruiker niet toevoegen, probeer het opnieuw.</h2>';
             }
         } catch (Exception $ex) {
             AddUserController::buildAddUserPage($page, true);
             $page->data['UserDataFormTopView']['errMsgs']['global'] = '<h2 class="error_message" id="user_data_form_error_message">Kan gebruiker niet toevoegen, probeer het opnieuw.</h2>';
         }
     } else {
         AddUserController::buildAddUserPage($page, true);
         $page->data['UserDataFormTopView']['errMsgs'] = array_merge($page->data['UserDataFormTopView']['errMsgs'], $formTopViewErrMsgs);
         $page->data['UserDataFormPasswordView']['errMsgs'] = array_merge($page->data['UserDataFormPasswordView']['errMsgs'], $formPasswordViewErrMsgs);
         $page->data['UserDataFormMiddleView']['errMsgs'] = array_merge($page->data['UserDataFormMiddleView']['errMsgs'], $formMiddleViewErrMsgs);
     }
     $page->showWithMenu();
 }
示例#8
0
 public static function post()
 {
     if (isset($_POST['save'])) {
         $page = new Page();
         $page->data['title'] = 'Gebruiker hernieuwen';
         //Validate input
         $formTopViewErrMsgs = UserDataFormTopViewValidator::validate($_POST);
         $formMiddleViewErrMsgs = UserDataFormMiddleViewValidator::validate($_POST);
         //No error means we create a user and password salt
         if (empty($formTopViewErrMsgs) && empty($formMiddleViewErrMsgs)) {
             $newUser = new User();
             $newUser->userId = $_SESSION['Stippers']['RenewUser']['user']->userId;
             $newUser->email = $_POST['email'];
             $newUser->passwordHash = $_SESSION['Stippers']['RenewUser']['user']->passwordHash;
             $newUser->firstName = ucwords($_POST['first_name']);
             $newUser->lastName = ucwords($_POST['last_name']);
             $newUser->street = ucwords($_POST['street']);
             $newUser->houseNumber = $_POST['house_number'];
             $newUser->city = ucwords($_POST['city']);
             $newUser->postalCode = $_POST['postal_code'];
             $newUser->country = ucwords($_POST['country']);
             $newUser->phone = $_POST['phone'];
             $newUser->dateOfBirth = $_POST['date_of_birth'];
             $newUser->balance = $_SESSION['Stippers']['RenewUser']['user']->balance;
             $newUser->isAdmin = $_SESSION['Stippers']['RenewUser']['user']->isAdmin;
             $newUser->isHintManager = $_SESSION['Stippers']['RenewUser']['user']->isHintManager;
             $newUser->isUserManager = $_SESSION['Stippers']['RenewUser']['user']->isUserManager;
             $newUser->isBrowserManager = $_SESSION['Stippers']['RenewUser']['user']->isBrowserManager;
             $newUser->isMoneyManager = $_SESSION['Stippers']['RenewUser']['user']->isMoneyManager;
             $newUser->creationTime = $_SESSION['Stippers']['RenewUser']['user']->creationTime;
             //Renew the user
             try {
                 UserDB::renewMembership($_SESSION['Stippers']['RenewUser']['user'], $newUser, $_POST['card_number']);
                 $page->addView('addRenewUser/renewUser/SuccessfullyRenewedView');
                 //Send welcome mail
                 try {
                     $failedEmails = Email::sendEmails('WelcomeOldMember.html', 'JH DE Stip - Welkom', EmailConfig::FROM_ADDRESS, [$newUser], null);
                     //If failedEmails is not empty the mail was not sent
                     if (!empty($failedEmails)) {
                         $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan welkomstmail niet verzenden.';
                         $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
                     }
                 } catch (Exception $ex) {
                     $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan welkomstmail niet verzenden.';
                     $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
                 }
                 //Add money to user's card
                 try {
                     $executingBrowserName = BrowserDB::getBrowserById($_SESSION['Stippers']['browser']->browserId)->name;
                     $trans = new MoneyTransaction(null, $newUser->userId, $newUser->balance, AddOrRenewUserConfig::NEW_OR_RENEWED_USER_BONUS, 0, 0, true, null, $executingBrowserName, null);
                     MoneyTransactionDB::addTransaction($newUser, $trans);
                 } catch (Exception $ex) {
                     if (isset($page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'])) {
                         $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] .= ' Kan het saldo van het account niet verhogen, probeer dit handmatig te doen.';
                     } else {
                         $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan het saldo van het account niet verhogen, probeer dit handmatig te doen.';
                     }
                     $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
                 }
             } catch (UserDBException $ex) {
                 if ($ex->getCode() == UserDBException::USERALREADYMEMBER) {
                     $page->addView('addRenewUser/renewUser/UserAlreadyMemberView');
                 } elseif ($ex->getCode() == UserDBException::USEROUTOFDATE) {
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['errorTitle'] = 'Gebruiker niet hernieuwd';
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['errorDescription'] = 'Iemand anders heeft de gebruiker in tussentijd al gewijzigd.';
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                     $page->addView('error/ErrorMessageWithDescriptionWithLinkView');
                 } else {
                     RenewUserController::buildRenewUserPage($page, true);
                     if ($ex->getCode() == UserDBException::EMAILALREADYEXISTS) {
                         $page->data['UserDataFormTopView']['errMsgs']['global'] = '<h2 class="error_message" id="user_data_form_error_message">Dit e-mailadres is al in gebruik.</h2>';
                     } elseif ($ex->getCode() == UserDBException::CARDALREADYUSED) {
                         $page->data['UserDataFormTopView']['errMsgs']['global'] = '<h2 class="error_message" id="user_data_form_error_message">Dit kaartnummer is al in gebruik.</h2>';
                     } else {
                         $page->data['UserDataFormTopView']['errMsgs']['global'] = '<h2 class="error_message" id="user_data_form_error_message">Kan gebruiker niet hernieuwen, probeer het opnieuw.</h2>';
                     }
                 }
             } catch (Exception $ex) {
                 RenewUserController::buildRenewUserPage($page, true);
                 $page->data['UserDataFormTopView']['errMsgs']['global'] = '<h2 class="error_message" id="user_data_form_error_message">Kan gebruiker niet hernieuwen, probeer het opnieuw.</h2>';
             }
         } else {
             RenewUserController::buildRenewUserPage($page, true);
             $page->data['UserDataFormTopView']['errMsgs'] = array_merge($page->data['UserDataFormTopView']['errMsgs'], $formTopViewErrMsgs);
             $page->data['UserDataFormMiddleView']['errMsgs'] = array_merge($page->data['UserDataFormMiddleView']['errMsgs'], $formMiddleViewErrMsgs);
         }
         $page->showWithMenu();
     } else {
         header('Location: renewusersearch', true, 303);
     }
 }