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();
     }
 }
 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();
 }
 /**
  * Get search results and load the data into the page.
  * 
  * @param Page $page
  */
 private static function loadSearchResults($page)
 {
     try {
         $users = UserDB::getSearchUsers(['firstName' => true, 'lastName' => true, 'email' => true], ['firstName' => $_POST['first_name'], 'lastName' => $_POST['last_name'], 'email' => $_POST['email']], null);
         if (count($users) == 0) {
             $page->addView('userSearch/UserSearchNoResultsView');
         } else {
             $page->data['RenewUserSearchResultsView']['users'] = $users;
             $page->addView('addRenewUser/renewUserSearch/RenewUserSearchResultsView');
         }
     } catch (Exception $ex) {
         $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan gebruikers niet ophalen.';
         $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
     }
 }
Example #4
0
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Home';
     $page->addView('home/HomeView');
     $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'] = '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();
 }
 public static function get()
 {
     $page = new Page();
     $page->data['title'] = 'Geen toegang';
     $page->data['ForcedLogoutView']['reLoginUrl'] = $_SERVER['REQUEST_URI'];
     $page->addView('authorization/ForcedLogoutView');
     $page->showBasic();
 }
Example #10
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 #11
0
 public static function get()
 {
     //Logging out means we simply destroy the session
     session_destroy();
     $page = new Page();
     $page->data['title'] = 'Afmelden';
     $page->addView('authorization/LogoutView');
     $page->showBasic();
 }
Example #12
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';
     //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();
 }
 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()
 {
     $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 #16
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);
     }
 }
Example #17
0
 public static function post()
 {
     $page = new Page();
     $page->data['title'] = 'Chat';
     $page->addView('chat/ChatView');
     $page->addExtraJsFile('views/chat/ChatViewMessageListRefresher.js');
     $page->addExtraJsFile('views/chat/ChatViewOnLoadHandler.js');
     $errMsgs = ChatViewValidator::validate($_POST);
     if (empty($errMsgs)) {
         try {
             ChatDB::addChatMessage(new ChatMessage(null, null, null, $_SESSION['Stippers']['user']->userId, $_POST['new_message'], null));
             ChatController::buildChatView($page, false);
         } catch (Exception $ex) {
             ChatController::buildChatView($page, true);
             $page->data['ChatView']['errMsgs']['global'] = '<h2 class="error_message" id="new_message_form_error_message">Kan bericht niet posten, probeer het opnieuw.</h2>';
         }
     } else {
         ChatController::buildChatView($page, true);
         $page->data['ChatView']['errMsgs'] = array_merge($page->data['ChatView']['errMsgs'], $errMsgs);
     }
     $page->showWithMenu();
 }
Example #18
0
 /**
  * Builds the view for membership details.
  * 
  * @param Page $page page object to load data into
  */
 private static function buildMembershipDetailsView($page)
 {
     $page->addView('editUser/EditUserMembershipDetailsView');
     try {
         $page->data['MembershipDetailsView']['membershipYearDetails'] = MembershipDB::getUserMembershipDetailsByUserId($_SESSION['Stippers']['EditUser']['user']->userId);
         $page->data['MembershipDetailsView']['totalCheckIns'] = CheckInDB::getTotalCheckInsByUserId($_SESSION['Stippers']['EditUser']['user']->userId);
         $page->addView('membershipDetails/MembershipDetailsView');
     } 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');
     }
 }
Example #19
0
 /**
  * Builds the view for the successful check-in message
  * 
  * @param Page $page page to add the view to
  * @param User $user user to get the name from
  */
 private static function buildCheckInSuccessfulView(Page $page, User $user)
 {
     $page->data['CheckInSuccessfulView']['fullName'] = $user->getFullName();
     $page->data['CheckInSuccessfulView']['redirectUrl'] = $_SERVER['REQUEST_URI'];
     $page->addView('checkIn/CheckInSuccessfulView');
 }
 public static function buildAddEditBrowserTopView(Page $page, $saveMode)
 {
     $page->data['AddEditBrowserTopView']['add_edit_browser_formAction'] = $_SERVER['REQUEST_URI'];
     $page->data['AddEditBrowserTopView']['errMsgs'] = AddEditBrowserTopViewValidator::initErrMsgs();
     if ($saveMode) {
         $page->data['AddEditBrowserTopView']['browserName'] = $_POST['browser_name'];
         if (isset($_POST['can_add_renew_users'])) {
             $page->data['AddEditBrowserTopView']['canAddRenewUsersChecked'] = 'checked';
         } else {
             $page->data['AddEditBrowserTopView']['canAddRenewUsersChecked'] = '';
         }
         if (isset($_POST['can_check_in'])) {
             $page->data['AddEditBrowserTopView']['canCheckInChecked'] = 'checked';
         } else {
             $page->data['AddEditBrowserTopView']['canCheckInChecked'] = '';
         }
         if (isset($_POST['is_cash_register'])) {
             $page->data['AddEditBrowserTopView']['isCashRegisterChecked'] = 'checked';
         } else {
             $page->data['AddEditBrowserTopView']['isCashRegisterChecked'] = '';
         }
     } else {
         $page->data['AddEditBrowserTopView']['browserName'] = $_SESSION['Stippers']['EditBrowser']['browser']->name;
         if ($_SESSION['Stippers']['EditBrowser']['browser']->canAddRenewUsers) {
             $page->data['AddEditBrowserTopView']['canAddRenewUsersChecked'] = 'checked';
         } else {
             $page->data['AddEditBrowserTopView']['canAddRenewUsersChecked'] = '';
         }
         if ($_SESSION['Stippers']['EditBrowser']['browser']->canCheckIn) {
             $page->data['AddEditBrowserTopView']['canCheckInChecked'] = 'checked';
         } else {
             $page->data['AddEditBrowserTopView']['canCheckInChecked'] = '';
         }
         if ($_SESSION['Stippers']['EditBrowser']['browser']->isCashRegister) {
             $page->data['AddEditBrowserTopView']['isCashRegisterChecked'] = 'checked';
         } else {
             $page->data['AddEditBrowserTopView']['isCashRegisterChecked'] = '';
         }
     }
     $page->addView('manageBrowser/EditBrowserTitleView');
     $page->addView('manageBrowser/AddEditBrowserFormTopView');
     $page->addView('manageBrowser/EditBrowserFormBottomView');
     $page->data['AddEditBrowserTopView']['errMsgs'] = AddEditBrowserTopViewValidator::initErrMsgs();
 }
 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();
     }
 }
 /**
  * Builds the view to send an email.
  * 
  * @param Page $page page to load the view into
  */
 private static function buildSendEmailToUsersFormView(Page $page, $saveMode)
 {
     //Check if our directory is there and there are emails
     if (is_dir(EmailConfig::EMAILFILESDIR)) {
         $fileNames = array_slice(scandir(EmailConfig::EMAILFILESDIR), 2);
         //Remove .htaccess from the list (this is there so 'the outer world' cannot download files from this directory
         unset($fileNames[array_search('.htaccess', $fileNames)]);
         $fileNames = array_values($fileNames);
         if (count($fileNames) > 0) {
             //If there are emails we show them
             $page->data['SendEmailToUsersFormView']['send_email_to_users_formAction'] = $_SERVER['REQUEST_URI'];
             if ($saveMode) {
                 $page->data['SendEmailToUsersFormView']['subject'] = $_POST['subject'];
             } else {
                 $page->data['SendEmailToUsersFormView']['subject'] = '';
             }
             $page->data['SendEmailToUsersFormView']['emailFiles'] = $fileNames;
             $page->data['SendEmailToUsersFormView']['errMsgs'] = SendEmailToUsersViewValidator::initErrMsgs();
             $page->addView('sendEmailToUsers/SendEmailToUsersFormView');
         } else {
             //No emails -> snow no emails view
             $page->data['NoEmailFilesView']['redirectUrl'] = 'manageemail';
             $page->addView('sendEmailToUsers/NoEmailFilesView');
         }
     } else {
         //No emails -> snow no emails view
         $page->data['NoEmailFilesView']['redirectUrl'] = 'manageemail';
         $page->addView('sendEmailToUsers/NoEmailFilesView');
     }
 }
Example #23
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();
     }
 }
 /**
  * Builds the view to upload an email.
  * 
  * @param Page $page page to load the view into
  */
 private static function buildEmailUploadView(Page $page)
 {
     $page->data['EmailUploadView']['errMsgs'] = EmailUploadViewValidator::initErrMsgs();
     $page->data['EmailUploadView']['email_upload_formAction'] = $_SERVER['REQUEST_URI'];
     $page->addView('manageEmail/EmailUploadView');
 }
 /**
  * Builds the view to enter the transaction
  * 
  * @param Page $page page to add the view to
  */
 private static function buildEnterTransactionView(Page $page, $enterMode)
 {
     $page->data['ManageUserMoneyEnterTransactionView']['errMsgs'] = ManageUserMoneyEnterTransactionViewValidator::initErrMsgs();
     $page->data['ManageUserMoneyEnterTransactionView']['enter_transaction_formAction'] = $_SERVER['REQUEST_URI'];
     $page->data['ManageUserMoneyEnterTransactionView']['fullName'] = $_SESSION['Stippers']['ManageUserMoney']['user']->getFullName();
     $page->data['ManageUserMoneyEnterTransactionView']['currentBalance'] = $_SESSION['Stippers']['ManageUserMoney']['user']->balance;
     if ($enterMode) {
         $page->data['ManageUserMoneyEnterTransactionView']['increaseMoney'] = $_POST['increase_money'];
         $page->data['ManageUserMoneyEnterTransactionView']['decreaseMoney'] = $_POST['decrease_money'];
         $page->data['ManageUserMoneyEnterTransactionView']['fromPrizeChecked'] = isset($_POST['from_prize']) ? 'checked' : '';
     } else {
         $page->data['ManageUserMoneyEnterTransactionView']['increaseMoney'] = '';
         $page->data['ManageUserMoneyEnterTransactionView']['decreaseMoney'] = '';
         $page->data['ManageUserMoneyEnterTransactionView']['fromPrizeChecked'] = '';
     }
     $page->addView('manageUserMoney/ManageUserMoneyEnterTransactionView');
 }
 /**
  * Get search results and load the data into the page.
  * 
  * @param Page $page
  */
 private static function loadSearchResults($page)
 {
     try {
         $users = UserDB::getSearchUsers($_SESSION['Stippers']['ManageUserSearch']['inputData']['show'], $_SESSION['Stippers']['ManageUserSearch']['inputData']['values'], $_SESSION['Stippers']['ManageUserSearch']['inputData']['options']);
         if (count($users) == 0) {
             $page->addView('userSearch/UserSearchNoResultsView');
         } else {
             $page->data['UserSearchResultsView']['users'] = $users;
             $page->addView('userSearch/UserSearchResultsView');
         }
     } catch (Exception $ex) {
         $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan gebruikers niet ophalen.';
         $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
     }
 }
 /**
  * Builds the view to change the password.
  * 
  * @param Page $page page object to load data into
  */
 private static function buildChangePasswordView($page)
 {
     $page->data['ChangePasswordView']['change_password_formAction'] = $_SERVER['REQUEST_URI'];
     $page->data['ChangePasswordView']['oldPassword'] = '';
     $page->data['ChangePasswordView']['newPassword'] = '';
     $page->data['ChangePasswordView']['repeatNewPassword'] = '';
     $page->addView('changePassword/ChangePasswordView');
     $page->data['ChangePasswordView']['errMsgs'] = ChangePasswordViewValidator::initErrMsgs();
 }
Example #28
0
 /**
  * Builds the page for the user input.
  * 
  * @param Page $page page to add the views to
  */
 private static function buildAddUserPage(Page $page, $saveMode)
 {
     $page->addView('addRenewUser/addUser/AddUserTopView');
     $page->data['UserDataFormTopView']['user_data_formAction'] = $_SERVER['REQUEST_URI'];
     if ($saveMode) {
         $page->data['UserDataFormTopView']['cardNumber'] = $_POST['card_number'];
         $page->data['UserDataFormTopView']['email'] = $_POST['email'];
         $page->data['UserDataFormTopView']['repeatEmail'] = $_POST['repeat_email'];
         $page->data['UserDataFormMiddleView']['firstName'] = $_POST['first_name'];
         $page->data['UserDataFormMiddleView']['lastName'] = $_POST['last_name'];
         $page->data['UserDataFormMiddleView']['street'] = $_POST['street'];
         $page->data['UserDataFormMiddleView']['houseNumber'] = $_POST['house_number'];
         $page->data['UserDataFormMiddleView']['city'] = $_POST['city'];
         $page->data['UserDataFormMiddleView']['postalCode'] = $_POST['postal_code'];
         $page->data['UserDataFormMiddleView']['country'] = $_POST['country'];
         $page->data['UserDataFormMiddleView']['phone'] = $_POST['phone'];
         $page->data['UserDataFormMiddleView']['dateOfBirth'] = $_POST['date_of_birth'];
     } else {
         $page->data['UserDataFormTopView']['cardNumber'] = '';
         $page->data['UserDataFormTopView']['email'] = '';
         $page->data['UserDataFormTopView']['repeatEmail'] = '';
         $page->data['UserDataFormMiddleView']['firstName'] = '';
         $page->data['UserDataFormMiddleView']['lastName'] = '';
         $page->data['UserDataFormMiddleView']['street'] = '';
         $page->data['UserDataFormMiddleView']['houseNumber'] = '';
         $page->data['UserDataFormMiddleView']['city'] = '';
         $page->data['UserDataFormMiddleView']['postalCode'] = '';
         $page->data['UserDataFormMiddleView']['country'] = '';
         $page->data['UserDataFormMiddleView']['phone'] = '';
         $page->data['UserDataFormMiddleView']['dateOfBirth'] = '';
     }
     $page->data['UserDataFormTopView']['errMsgs'] = UserDataFormTopViewValidator::initErrMsgs();
     $page->addView('addRenewUser/UserDataFormTopView');
     $page->data['UserDataFormPasswordView']['errMsgs'] = UserDataFormPasswordViewValidator::initErrMsgs();
     $page->addView('addRenewUser/UserDataFormPasswordView');
     $page->data['UserDataFormMiddleView']['errMsgs'] = UserDataFormMiddleViewValidator::initErrMsgs();
     $page->addView('addRenewUser/UserDataFormMiddleView');
     $page->addView('addRenewUser/addUser/UserDataFormBottomView');
     $page->addExtraJsFile('barcodeScanner/BarcodeScanner.js');
     $page->addExtraJsFile('views/addRenewUser/UserDataFormBarcodeScanner.js');
     $page->addExtraJsFile('views/addRenewUser/userDataFormOnLoadHandler.js');
 }
 /**
  * Builds the view to enter the user's card number
  * 
  * @param Page $page page to add the view to
  */
 private static function buildEnterCardView(Page $page, $enterMode)
 {
     $page->data['CashRegisterEnterCardView']['errMsgs'] = CashRegisterEnterCardViewValidator::initErrMsgs();
     $page->data['CashRegisterEnterCardView']['enter_card_formAction'] = $_SERVER['REQUEST_URI'];
     if ($enterMode) {
         $page->data['CashRegisterEnterCardView']['cardNumber'] = $_POST['card_number'];
     } else {
         $page->data['CashRegisterEnterCardView']['cardNumber'] = '';
     }
     $page->addView('cashRegister/CashRegisterEnterCardView');
     $page->addExtraJsFile('barcodeScanner/BarcodeScanner.js');
     $page->addExtraJsFile('views/cashRegister/CashRegisterBarcodeScanner.js');
     $page->addExtraJsFile('views/cashRegister/cashRegisterEnterCardFormOnLoadHandler.js');
 }