public static function post()
 {
     try {
         //Get list of user IDs of users that are a member this year
         $userIds = MembershipDB::getUserIdsThisYear();
         //Get list of last N winners
         $lastWinners = WeeklyWinnerDB::getLastNWinners(WeeklyWinnerConfig::MIN_WINNING_INTERVAL);
         //Get list of user IDs that have not won the last N times
         if ($lastWinners) {
             $possibleWinners = array_diff($userIds, $lastWinners);
         } else {
             $possibleWinners = $userIds;
         }
         //Pick a random user ID
         $winnerIdx = rand(0, count($possibleWinners) - 1);
         //Add chosen user ID as winner
         WeeklyWinnerDB::addWeeklyWinner($possibleWinners[$winnerIdx]);
         //Show the page again, this is the same as GETing so we just call get
         WeeklyWinnerController::get();
     } catch (Exception $ex) {
         $page = new Page();
         $page->addView('weeklyWinner/WeeklyWinnerTopView');
         $page->data['ErrorMessageNoDescriptionWithLinkView']['errorTitle'] = 'Kan geen nieuwe winnaar loten.';
         $page->data['ErrorMessageNoDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
         $page->addView('error/ErrorMessageNoDescriptionWithLinkView');
         $page->showWithMenu();
     }
 }
 /**
  * Method to build page. We use it so we can handle both get ans post requests.
  */
 private static function buildPage()
 {
     $page = new Page();
     $page->data['title'] = 'Pagina niet gevonden';
     $page->addView('pageNotFound/PageNotFoundView');
     $page->showWithMenu();
 }
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Transacties';
     //Gets the amount from GET or use default
     if (isset($_GET['amount'])) {
         $amount = $_GET['amount'];
     } else {
         $amount = MoneyTransactionsViewConfig::DEFAULT_AMOUNT;
     }
     try {
         //Get all transactions
         $transactions = MoneyTransactionDB::getTransactions($amount);
         $transactionCount = count($transactions);
         //If no transactions show no transactions view, otherwise show list with transactions
         if ($transactionCount > 0) {
             $page->data['TransactionsWithDetailsWithDiscountListView']['transactions'] = $transactions;
             $page->addView('transactions/TransactionsTitleView');
             $page->addView('transactions/TransactionsBackToManageUserLinkView');
             $page->addView('transactions/TransactionsWithDetailsWithDiscountListView');
         } else {
             $page->addView('transactions/TransactionsTitleView');
             $page->data['InfoMessageNoDescriptionWithLinkView']['infoTitle'] = 'Er zijn nog geen transacties';
             $page->data['InfoMessageNoDescriptionWithLinkView']['redirectUrl'] = 'manageuser';
             $page->addView('info/InfoMessageNoDescriptionWithLinkView');
         }
     } catch (Exception $ex) {
         $page->data['ErrorMessageNoDescriptionWithLinkView']['errorTitle'] = 'Kan gegevens niet ophalen uit de database';
         $page->data['ErrorMessageNoDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
         $page->addView('error/ErrorMessageNoDescriptionWithLinkView');
     }
     $page->showWithMenu();
 }
Example #4
0
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Home';
     $page->addView('home/HomeView');
     $page->showWithMenu();
 }
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Geen toegang';
     $page->addView('authorization/AccessDeniedView');
     $page->showWithMenu();
 }
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Het vleeswiel';
     $page->addView('meatWheel/MeatWheelView');
     $page->addExtraJsFile('konva/konva.min.js');
     $page->showWithMenu();
 }
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Gebruiker toevoegen of hernieuwen';
     $page->data['AddOrRenewUserView']['add_or_renew_user_formAction'] = $_SERVER['REQUEST_URI'];
     $page->addView('addRenewUser/AddOrRenewUserView');
     $page->showWithMenu();
 }
Example #8
0
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Database error';
     $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan authorizatiegegevens niet ophalen uit database.';
     $page->data['ErrorMessageNoDescriptionNoLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
     $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
     $page->showWithMenu();
 }
Example #9
0
 /**
  * Executes when php encounters a fatal error. This is used to show a 'nice' error page.
  */
 public static function fatalErrorHandler()
 {
     if (error_get_last()['type'] == E_ERROR) {
         $page = new Page();
         $page->data['title'] = 'Er is iets misgegaan';
         $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Er is iets misgegaan :(';
         $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
         $page->showWithMenu();
     }
 }
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Transacties';
     //Checks if user is set, if not redirect to manage user
     if (!isset($_GET['user'])) {
         header('Location: manageuser', true, 303);
     } else {
         //Gets the amount from GET or use default
         if (isset($_GET['amount'])) {
             $amount = $_GET['amount'];
         } else {
             $amount = MoneyTransactionsViewConfig::DEFAULT_AMOUNT;
         }
         try {
             //Get user for his name
             $page->data['TransactionsNameView']['fullName'] = UserDB::getBasicUserById($_GET['user'])->getFullName();
             //Get transactions for user
             $transactions = MoneyTransactionDB::getTransactionsByUserId($_GET['user'], $amount);
             $transactionCount = count($transactions);
             //If no transactions show no transactions view, otherwise show list with transactions
             if ($transactionCount > 0) {
                 $page->data['TransactionsWithDiscountListView']['transactions'] = $transactions;
                 $page->data['TransactionsWithDiscountListView']['totalAmount'] = $transactionCount;
                 $page->addView('transactions/TransactionsTitleView');
                 $page->addView('transactions/TransactionsNameView');
                 $page->addView('transactions/TransactionsBackToManageUserLinkView');
                 $page->addView('transactions/TransactionsWithDiscountListView');
             } else {
                 $page->data['InfoMessageNoDescriptionWithLinkView']['infoTitle'] = 'Er zijn nog geen transacties';
                 $page->data['InfoMessageNoDescriptionWithLinkView']['redirectUrl'] = 'manageuser';
                 $page->addView('transactions/TransactionsTitleView');
                 $page->addView('transactions/TransactionsNameView');
                 $page->addView('info/InfoMessageNoDescriptionWithLinkView');
             }
         } catch (Exception $ex) {
             $page->data['ErrorMessageNoDescriptionWithLinkView']['errorTitle'] = 'Kan gegevens niet ophalen uit de database';
             $page->data['ErrorMessageNoDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
             $page->addView('error/ErrorMessageNoDescriptionWithLinkView');
         }
         $page->showWithMenu();
     }
 }
Example #11
0
 public static function post()
 {
     //If the file in get doesn't exist redirect to manageemail page
     if (!isset($_GET['filename']) || !file_exists(EmailConfig::EMAILFILESDIR . '/' . $_GET['filename'])) {
         header('Location: manageemail', true, 303);
     } elseif (isset($_POST['download'])) {
         header('Content-Type: application/octet-stream');
         header('Content-Transfer-Encoding: Binary');
         header('Content-disposition: attachment; filename=' . $_GET['filename']);
         readfile(EmailConfig::EMAILFILESDIR . '/' . $_GET['filename']);
     } elseif (isset($_POST['delete'])) {
         unlink(EmailConfig::EMAILFILESDIR . '/' . $_GET['filename']);
         $page = new Page();
         $page->data['title'] = 'E-mail bewerken';
         $page->data['SuccessMessageNoDescriptionWithLinkView']['successTitle'] = 'E-mail succesvol verwijderd';
         $page->data['SuccessMessageNoDescriptionWithLinkView']['redirectUrl'] = 'manageemail';
         $page->addView('success/SuccessMessageNoDescriptionWithLinkView');
         $page->showWithMenu();
     } else {
         header('Location: manageemail', true, 303);
     }
 }
 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 get()
 {
     try {
         //Get search results
         $searchUsers = UserDB::getSearchUsers($_SESSION['Stippers']['ManageUserSearch']['inputData']['show'], $_SESSION['Stippers']['ManageUserSearch']['inputData']['values'], $_SESSION['Stippers']['ManageUserSearch']['inputData']['options']);
         $csvString = '';
         //If there are results we build the csv string
         if (count($searchUsers) > 0) {
             //Create headers
             $csvString .= '#';
             if (isset($searchUsers[0]['user']->lastName)) {
                 $csvString .= ';Achternaam';
             }
             if (isset($searchUsers[0]['user']->firstName)) {
                 $csvString .= ';Voornaam';
             }
             if (isset($searchUsers[0]['membershipYear'])) {
                 $csvString .= ';Lidjaar';
             }
             if (isset($searchUsers[0]['cardNumber'])) {
                 $csvString .= ';Kaartnummer';
             }
             if (isset($searchUsers[0]['user']->street)) {
                 $csvString .= ';Straat';
             }
             if (isset($searchUsers[0]['user']->houseNumber)) {
                 $csvString .= ';Huisnummer';
             }
             if (isset($searchUsers[0]['user']->city)) {
                 $csvString .= ';Gemeente';
             }
             if (isset($searchUsers[0]['user']->postalCode)) {
                 $csvString .= ';Postcode';
             }
             if (isset($searchUsers[0]['user']->country)) {
                 $csvString .= ';Land';
             }
             if (isset($searchUsers[0]['user']->email)) {
                 $csvString .= ';E-mail';
             }
             if (isset($searchUsers[0]['user']->phone)) {
                 $csvString .= ';Telefoonnummer';
             }
             if (isset($searchUsers[0]['user']->dateOfBirth)) {
                 $csvString .= ';Geboortedatum';
             }
             if (isset($searchUsers[0]['user']->balance)) {
                 $csvString .= ';Saldo';
             }
             if (isset($searchUsers[0]['user']->creationTime)) {
                 $csvString .= ';Registratietijd';
             }
             if (isset($searchUsers[0]['nCheckIns'])) {
                 $csvString .= ';Aantal check-ins';
             }
             if (isset($searchUsers[0]['user']->isAdmin)) {
                 $csvString .= ';Administrator';
             }
             if (isset($searchUsers[0]['user']->isUserManager)) {
                 $csvString .= ';Gebruikersbeheerder';
             }
             if (isset($searchUsers[0]['user']->isBrowserManager)) {
                 $csvString .= ';Browserbeheerder';
             }
             if (isset($searchUsers[0]['user']->isMoneyManager)) {
                 $csvString .= ';Geldbeheerder';
             }
             //Add data rows
             for ($i = 0; $i < count($searchUsers); $i++) {
                 $csvString .= PHP_EOL . $i;
                 if (isset($searchUsers[$i]['user']->lastName)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->lastName;
                 }
                 if (isset($searchUsers[$i]['user']->firstName)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->firstName;
                 }
                 if (isset($searchUsers[$i]['membershipYear'])) {
                     $csvString .= ';' . $searchUsers[$i]['membershipYear'];
                 }
                 if (isset($searchUsers[$i]['cardNumber'])) {
                     $csvString .= ';' . $searchUsers[$i]['cardNumber'];
                 }
                 if (isset($searchUsers[$i]['user']->street)) {
                     $csvString .= ';Straat';
                 }
                 if (isset($searchUsers[$i]['user']->houseNumber)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->houseNumber;
                 }
                 if (isset($searchUsers[$i]['user']->city)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->city;
                 }
                 if (isset($searchUsers[$i]['user']->postalCode)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->postalCode;
                 }
                 if (isset($searchUsers[$i]['user']->country)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->country;
                 }
                 if (isset($searchUsers[$i]['user']->email)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->email;
                 }
                 if (isset($searchUsers[$i]['user']->phone)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->phone;
                 }
                 if (isset($searchUsers[$i]['user']->dateOfBirth)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->dateOfBirth;
                 }
                 if (isset($searchUsers[$i]['user']->balance)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->balance;
                 }
                 if (isset($searchUsers[$i]['user']->creationTime)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->creationTime;
                 }
                 if (isset($searchUsers[$i]['nCheckIns'])) {
                     $csvString .= ';' . $searchUsers[$i]['nCheckIns'];
                 }
                 if (isset($searchUsers[$i]['user']->isAdmin)) {
                     $csvString .= ';' . ($searchUsers[$i]['user']->isAdmin ? 'Ja' : 'Nee');
                 }
                 if (isset($searchUsers[$i]['user']->isUserManager)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->isUserManager;
                 }
                 if (isset($searchUsers[$i]['user']->isBrowserManager)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->isBrowserManager;
                 }
                 if (isset($searchUsers[$i]['user']->isMoneyManager)) {
                     $csvString .= ';' . $searchUsers[$i]['user']->isMoneyManager;
                 }
             }
         }
         //Send header to browser so it will download the data as file instead of showing it
         header('Content-Type: text/csv; charset=utf-8');
         header('Content-Disposition: attachment; filename=' . DownloadSearchResultsConfig::FILE_NAME);
         //Write to php output stream (the browser will save this as file
         $output = fopen('php://output', 'w');
         fwrite($output, $csvString);
         fclose($output);
     } catch (Exception $ex) {
         //If something goes wrong we show the error page.
         $page = new Page();
         $page->data['ErrorMessageNoDescriptionWithLinkView']['errorTitle'] = 'Kan download voor zoekresultaten niet genereren';
         $page->data['ErrorMessageNoDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
         $page->addView('error/ErrorMessageNoDescriptionWithLinkView');
         $page->showWithMenu();
     }
 }
 public static function post()
 {
     $page = new Page();
     $page->data['title'] = 'Wachtwoord resetten';
     $errMsgs = ResetPasswordViewValidator::validate($_POST);
     if (empty($errMsgs)) {
         try {
             //Get the user's password salt and calculate password hash
             $passwordSalt = UserDB::getPasswordSaltByEmail($_POST['email']);
             $newPassword = Random::getPassword();
             $newPasswordHash = hash_pbkdf2('sha256', $newPassword, $passwordSalt, SecurityConfig::N_PASSWORD_HASH_ITERATIONS);
             //Get user from database and reset password.
             $user = UserDB::getBasicUserByEmail($_POST['email']);
             UserDB::resetPassword($_POST['email'], $newPasswordHash);
             //Show success message
             $page->data['ResetSuccessfulView']['redirectUrl'] = 'login';
             $page->addView('resetPassword/ResetSuccessfulView');
             //Send email with password
             $failedEmails = Email::sendEmails('ResetPassword.html', 'JH De Stip - Wachtwoord reset', EmailConfig::FROM_ADDRESS, [$user], array($user->userId => array('newPassword' => $newPassword)));
             //If failedEmails is not empty the mail was not sent
             if (!empty($failedEmails)) {
                 $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan e-mail met nieuwe wachtwoord niet verzenden.';
                 $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
             }
         } catch (UserDBException $ex) {
             $page->data['ResetPasswordView']['reset_password_formAction'] = $_SERVER['REQUEST_URI'];
             $page->data['ResetPasswordView']['email'] = $_POST['email'];
             $page->data['ResetPasswordView']['errMsgs'] = ResetPasswordViewValidator::initErrMsgs();
             if ($ex->getCode() == UserDBException::NOUSERFOREMAIL) {
                 $page->data['ResetPasswordView']['errMsgs']['global'] = '<h2 class="error_message" id="reset_password_form_error_message">Er is geen gebruiker met dit e-mailadres.</h2>';
             } else {
                 $page->data['ResetPasswordView']['errMsgs']['global'] = '<h2 class="error_message" id="reset_password_form_error_message">Kan wachtwoord niet resetten, probeer het opnieuw.</h2>';
             }
             $page->addView('resetPassword/ResetPasswordView');
         } catch (EmailException $ex) {
             $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan e-mail met nieuwe wachtwoord niet verzenden.';
             $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
         } catch (Exception $ex) {
             $page->data['ResetPasswordView']['reset_password_formAction'] = $_SERVER['REQUEST_URI'];
             $page->data['ResetPasswordView']['email'] = $_POST['email'];
             $page->data['ResetPasswordView']['errMsgs']['global'] = '<h2 class="error_message" id="reset_password_form_error_message">Kan wachtwoord niet resetten, probeer het opnieuw.</h2>';
             $page->addView('resetPassword/ResetPasswordView');
         }
     } else {
         $page->data['ResetPasswordView']['reset_password_formAction'] = $_SERVER['REQUEST_URI'];
         $page->data['ResetPasswordView']['email'] = $_POST['email'];
         $page->data['ResetPasswordView']['errMsgs'] = ResetPasswordViewValidator::initErrMsgs();
         $page->data['ResetPasswordView']['errMsgs'] = array_merge($page->data['ResetPasswordView']['errMsgs'], $errMsgs);
         $page->addView('resetPassword/ResetPasswordView');
     }
     $page->showWithMenu();
 }
Example #15
0
 public static function post()
 {
     $errMsgs = LoginViewValidator::validate($_POST);
     if (empty($errMsgs)) {
         try {
             //Get the user's password salt and calculate password hash
             $passwordSalt = UserDB::getPasswordSaltByEmail($_POST['email']);
             $passwordHash = hash_pbkdf2("sha256", $_POST['password'], $passwordSalt, SecurityConfig::N_PASSWORD_HASH_ITERATIONS);
             //Get user from database. This gets the user only if he's a member this year or if it's the admin account.
             $user = UserDB::getAuthUserByEmail($_POST['email']);
             if ($user->passwordHash == $passwordHash) {
                 //Put the user in session
                 $_SESSION['Stippers']['user'] = $user;
                 /*
                 At this point we have a POST request with data from the login form. Because of that the router will try to run 'POST'
                 on the controller of the requested page. This is incorrect and instead it should 'GET' the requested page.
                 By forcing the REQUEST_METHOD to GET we trick the router into calling 'GET' on the controller.
                 */
                 $_SERVER['REQUEST_METHOD'] = 'GET';
                 /*
                 We're redirecting to another page, so we don't want the login details to be in post for that page.
                 For example the user search pages will pre populate their fields with this data if we don't clear it.
                 */
                 unset($_POST);
                 //If we directly request the login page we redirect to the home page
                 if (explode('?', str_replace(DomainConfig::DOMAIN_SUFFIX, '', strtolower($_SERVER['REQUEST_URI'])), 2)[0] == 'login') {
                     header('Location: home', true, 303);
                 }
             } else {
                 $page = new Page();
                 $page->data['title'] = 'Login';
                 $page->data['LoginView']['login_formAction'] = $_SERVER['REQUEST_URI'];
                 $page->data['LoginView']['email'] = $_POST['email'];
                 $page->data['LoginView']['errMsgs']['global'] = '<h2 class="error_message" id="login_form_error_message">E-mailadres en/of wachtwoord onjuist.</h2>';
                 $page->addView('authorization/LoginView');
                 $page->addView('authorization/UserOfPastYearView');
                 $page->showWithMenu();
             }
         } catch (Exception $ex) {
             if (is_a($ex, 'UserDBException')) {
                 $page = new Page();
                 $page->data['title'] = 'Login';
                 $page->data['LoginView']['login_formAction'] = $_SERVER['REQUEST_URI'];
                 $page->data['LoginView']['email'] = $_POST['email'];
                 // If the user doesn't exist we show the invalid credentials error, otherwise a generic error.
                 if ($ex->getCode() == UserDBException::NOUSERFOREMAIL) {
                     $page->data['LoginView']['errMsgs']['global'] = '<h2 class="error_message" id="login_form_error_message">E-mailadres en/of wachtwoord onjuist.</h2>';
                 } else {
                     $page->data['LoginView']['errMsgs']['global'] = '<h2 class="error_message" id="login_form_error_message">Kan niet aanmelden, probeer het opnieuw.</h2>';
                 }
                 $page->addView('authorization/LoginView');
                 $page->addView('authorization/UserOfPastYearView');
                 $page->showWithMenu();
             }
         }
     } else {
         $page = new Page();
         $page->data['title'] = 'Login';
         $page->data['LoginView']['login_formAction'] = $_SERVER['REQUEST_URI'];
         $page->data['LoginView']['email'] = $_POST['email'];
         $page->data['LoginView']['errMsgs'] = LoginViewValidator::initErrMsgs();
         $page->data['LoginView']['errMsgs'] = array_merge($page->data['LoginView']['errMsgs'], $errMsgs);
         $page->addView("authorization/LoginView");
         $page->addView('authorization/UserOfPastYearView');
         $page->showWithMenu();
     }
 }