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); } }
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; } }
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(); }
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); } }