public static function post()
 {
     //If required data is not in session go to search page
     if (!isset($_SESSION['Stippers']['ManageUserSearch']['inputData']['values'])) {
         header('Location: manageuser', TRUE, 303);
     } else {
         $page = new Page();
         $page->data['title'] = 'E-mail versturen naar gebruikers';
         $errMsgs = SendEmailToUsersViewValidator::validate($_POST);
         if (empty($errMsgs)) {
             try {
                 //Get search users
                 $select = ['email' => true, 'firstName' => true, 'lastName' => true];
                 $users = array_column(UserDB::getSearchUsers($select, $_SESSION['Stippers']['ManageUserSearch']['inputData']['values'], null), 'user');
                 //Send email
                 $failedAddresses = Email::sendEmails($_POST['email_file'], $_POST['subject'], EmailConfig::FROM_ADDRESS, $users, null);
                 //Check if some emails failed
                 if (empty($failedAddresses)) {
                     $page->date['SuccessMessageNoDescriptionWithLinkView']['successTitle'] = 'E-mails succesvol verzonden';
                     $page->date['SuccessMessageNoDescriptionWithLinkView']['redirectUrl'] = 'manageuser';
                     $page->addView('success/SuccessMessageNoDescriptionWithLinkView');
                 } else {
                     $page->data['ErrorMessageWithDescriptionNoLinkView']['errorTitle'] = 'Kan niet alle e-mails verzenden';
                     $page->data['ErrorMessageWithDescriptionNoLinkView']['errorDescription'] = 'Het verzenden van de e-mail naar onderstaande addressen is mislukt.';
                     $page->addView('error/ErrorMessageWithDescriptionNoLinkView');
                     $page->data['FailedEmailListView']['addresses'] = $failedAddresses;
                     $page->data['FailedEmailListView']['redirectUrl'] = 'manageuser';
                     $page->addView('sendEmailToUsers/FailedEmailListView');
                 }
             } catch (UserDBException $ex) {
                 $page->data['ErrorMessageNoDescriptionWithLinkView']['errorTitle'] = 'Kan gebruikers niet ophalen';
                 $page->data['ErrorMessageNoDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                 $page->addView('error/ErrorMessageNoDescriptionWithLinkView');
             } catch (EmailException $ex) {
                 if ($ex->getCode() == EmailException::CANNOTREADEMAILFILE) {
                     $page->data['ErrorMessageNoDescriptionWithLinkView']['errorTitle'] = 'Kan e-mailbestand niet lezen';
                 } else {
                     $page->data['ErrorMessageNoDescriptionWithLinkView']['errorTitle'] = 'Kan e-mails niet verzenden';
                 }
                 $page->data['ErrorMessageNoDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                 $page->addView('error/ErrorMessageNoDescriptionWithLinkView');
             } catch (Exception $ex) {
                 $page->data['ErrorMessageNoDescriptionWithLinkView']['errorTitle'] = 'Kan e-mails niet verzenden';
                 $page->data['ErrorMessageNoDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                 $page->addView('error/ErrorMessageNoDescriptionWithLinkView');
             }
         } else {
             $page->addView('sendEmailToUsers/SendEmailToUsersTitleView');
             SendEmailToUsersController::buildSendEmailToUsersFormView($page, true);
             $page->data['SendEmailToUsersFormView']['errMsgs'] = array_merge($page->data['SendEmailToUsersFormView']['errMsgs'], $errMsgs);
         }
         $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');
     }
 }
 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();
     }
 }
示例#4
0
 public static function post()
 {
     $page = new Page();
     $page->data['title'] = 'Inchecken';
     $errMsgs = CheckInFormViewValidator::validate($_POST);
     $user = null;
     if (empty($errMsgs)) {
         $checkInOk = false;
         $weeklyWinnerOk = true;
         //Get user to check in
         try {
             //Get the user who's card number for this year was entered
             $user = UserDB::getBasicUserByCardNumber($_POST['card_number']);
         } catch (Exception $ex) {
             //Check-in failed (can't get user)
             CheckInController::buildCheckInFormView($page, true);
             $page->data['CheckInFormView']['errMsgs']['global'] = '<h2 class="error_message" id="check_in_form_error_message">Kan gebruiker niet inchecken, probeer het opnieuw.</h2>';
             $page->showWithMenu();
             exit;
         }
         if (!$user) {
             //There's no user for this card
             CheckInController::buildCheckInFormView($page, true);
             $page->data['CheckInFormView']['errMsgs']['global'] = '<h2 class="error_message" id="check_in_form_error_message">Dit kaartnummer is niet gekoppeld aan een gebruiker.</h2>';
             $page->showWithMenu();
             exit;
         } else {
             //Check user in
             try {
                 $checkInOk = CheckInDB::checkIn($user->userId);
             } catch (Exception $ex) {
                 //Check-in failed (something went wrong or check-in isn't valid)
                 CheckInController::buildCheckInFormView($page, true);
                 $page->data['CheckInFormView']['errMsgs']['global'] = '<h2 class="error_message" id="check_in_form_error_message">Kan gebruiker niet inchecken, probeer het opnieuw.</h2>';
                 $page->showWithMenu();
                 exit;
             }
         }
         if (!$checkInOk) {
             //The user has already checked in
             CheckInController::buildCheckInFormView($page, true);
             $page->data['CheckInFormView']['errMsgs']['global'] = '<h2 class="error_message" id="check_in_form_error_message">Deze gebruiker is de voorbije 12 uur al ingechecked.</h2>';
             $page->showWithMenu();
             exit;
         } else {
             //Check in successful, check whether he is the winner of the week
             $isWinner = false;
             try {
                 //Check if this user is the winner of the week
                 $weeklyWinnerData = WeeklyWinnerDB::getThisWeeksWinnerData();
                 $isWinner = $weeklyWinnerData && $weeklyWinnerData->userId == $user->userId && !$weeklyWinnerData->hasCollectedPrize;
                 //If he is the winner we set in the database that the user collected his prize
                 if ($isWinner) {
                     $newWeeklyWinnerData = new WeeklyWinnerData($weeklyWinnerData->startOfWeek, $weeklyWinnerData->userId, true);
                     WeeklyWinnerDB::updateWeeklyWinnerData($weeklyWinnerData, $newWeeklyWinnerData);
                 }
             } catch (Exception $ex) {
                 $weeklyWinnerOk = false;
             }
             //If he is the winner, add the winner views and try to send an email to all usermanagers
             if ($isWinner) {
                 $page->addView('checkIn/CheckInWeeklyWinnerTitleView');
                 CheckInController::buildCheckInSuccessfulView($page, $user);
                 try {
                     $select = array('email' => true);
                     $searchFilter = array('isUserManager' => true);
                     $searchUsers = UserDB::getSearchUsers($select, $searchFilter, null);
                     $extras['common']['winnerFirstName'] = $user->firstName;
                     $extras['common']['winnerLastName'] = $user->lastName;
                     $failedAddresses = Email::sendEmails('WeeklyWinnerNotification.html', 'Winnaar van de week', EmailConfig::FROM_ADDRESS, array_column($searchUsers, 'user'), $extras);
                     if (!empty($failedAddresses)) {
                         $page->data['ErrorMessageWithDescriptionNoLinkView']['errorTitle'] = 'Kan e-mail niet versturen.';
                         $page->data['ErrorMessageWithDescriptionNoLinkView']['description'] = 'Kan geen e-mail versturen naar het bestuur om te laten weten dat je gewonnen hebt. Meld dit even aan een tapper of bestuurslid.';
                         $page->addView('error/ErrorMessageWithDescriptionNoLinkView');
                     }
                 } catch (Exception $ex) {
                     $page->data['ErrorMessageWithDescriptionNoLinkView']['errorTitle'] = 'Kan e-mail niet versturen.';
                     $page->data['ErrorMessageWithDescriptionNoLinkView']['errorDescription'] = 'Kan geen e-mail versturen naar het bestuur om te laten weten dat je gewonnen hebt. Meld dit even aan een tapper of bestuurslid.';
                     $page->addView('error/ErrorMessageWithDescriptionNoLinkView');
                 }
                 $page->addView('checkIn/CheckInWeeklyWinnerImageView');
                 $page->showWithMenu();
             } else {
                 $page->addView('checkIn/CheckInSuccessfulTitleView');
                 CheckInController::buildCheckInSuccessfulView($page, $user);
                 if (!$weeklyWinnerOk) {
                     $page->data['ErrorMessageNoDescriptionNoLinkView']['errorTitle'] = 'Kan niet controleren of je de winnaar van de week bent.';
                     $page->addView('error/ErrorMessageNoDescriptionNoLinkView');
                 } else {
                     $page->addExtraJsFile('views/checkIn/CheckInRedirector.js');
                     $page->addExtraJsFile('views/checkIn/checkInSuccessfulOnLoadHandler.js');
                 }
                 $page->showWithMenu();
             }
         }
     } else {
         //Errors in the form, retry
         CheckInController::buildCheckInFormView($page, true);
         $page->data['CheckInFormView']['errMsgs'] = array_merge($page->data['CheckInFormView']['errMsgs'], $errMsgs);
         $page->showWithMenu();
     }
 }
 /**
  * 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');
     }
 }
示例#6
0
 public static function post()
 {
     //Get the request body as json
     $checkInRequest = json_decode(file_get_contents('php://input'));
     //Check if the json was valid and a card number is given
     if (!$checkInRequest || !isset($checkInRequest->cardNumber)) {
         header('HTTP/1.1 400 Bad Request');
     } else {
         //Create response object
         $response = new APICheckInResponse();
         //Check if the card number is valid
         if (!CheckInController::validateCardNumber($checkInRequest->cardNumber)) {
             $response->errorCode = APICheckInResponse::MALFORMED_CARDNUMBER;
             echo json_encode($response);
             exit;
         } else {
             $user = null;
             $checkInOk = false;
             $weeklyWinnerOk = true;
             //Get user to check in
             try {
                 //Get the user who's card number for this year was entered
                 $user = UserDB::getBasicUserByCardNumber($checkInRequest->cardNumber);
             } catch (Exception $ex) {
                 $response->errorCode = APICheckInResponse::CANNOT_GET_USER_DATA;
                 echo json_encode($response);
                 exit;
             }
             if (!$user) {
                 //There's no user for this card
                 $response->errorCode = APICheckInResponse::NO_USER_FOR_CARD_NUMBER;
                 echo json_encode($response);
                 exit;
             } else {
                 //We have a user so get the names in the response
                 $response->userFirstName = $user->firstName;
                 $response->userLastName = $user->lastName;
                 //Check user in
                 try {
                     $checkInOk = CheckInDB::checkIn($user->userId);
                 } catch (Exception $ex) {
                     //Check-in failed (something went wrong or check-in isn't valid)
                     $response->errorCode = APICheckInResponse::CANNOT_CHECK_IN;
                     echo json_encode($response);
                     exit;
                 }
             }
             if (!$checkInOk) {
                 //The user has already checked in
                 $response->errorCode = APICheckInResponse::ALREADY_CHECKED_IN;
                 echo json_encode($response);
                 exit;
             } else {
                 $response->checkInSuccessful = true;
                 //Check in successful, check whether he is the winner of the week
                 $isWinner = false;
                 try {
                     //Check if this user is the winner of the week
                     $weeklyWinnerData = WeeklyWinnerDB::getThisWeeksWinnerData();
                     $isWinner = $weeklyWinnerData && $weeklyWinnerData->userId == $user->userId && !$weeklyWinnerData->hasCollectedPrize;
                     //If he is the winner we set in the database that the user collected his prize
                     if ($isWinner) {
                         $newWeeklyWinnerData = new WeeklyWinnerData($weeklyWinnerData->startOfWeek, $weeklyWinnerData->userId, true);
                         WeeklyWinnerDB::updateWeeklyWinnerData($weeklyWinnerData, $newWeeklyWinnerData);
                     }
                 } catch (Exception $ex) {
                     $response->errorCode = APICheckInResponse::CANNOT_CHECK_WEEKLY_WINNER;
                     echo json_encode($response);
                     exit;
                 }
                 $response->isWeeklyWinner = $isWinner;
                 //If he is the winner, add the winner views and try to send an email to all usermanagers
                 if ($isWinner) {
                     try {
                         $select = array('email' => true);
                         $searchFilter = array('isUserManager' => true);
                         $searchUsers = UserDB::getSearchUsers($select, $searchFilter, null);
                         $extras['common']['winnerFirstName'] = $user->firstName;
                         $extras['common']['winnerLastName'] = $user->lastName;
                         $failedAddresses = Email::sendEmails('WeeklyWinnerNotification.html', 'Winnaar van de week', EmailConfig::FROM_ADDRESS, array_column($searchUsers, 'user'), $extras);
                         if (!empty($failedAddresses)) {
                             $response->errorCode = APICheckInResponse::CANNOT_SEND_WINNER_NOTIFICATIONS;
                         }
                         echo json_encode($response);
                         exit;
                     } catch (Exception $ex) {
                         $response->errorCode = APICheckInResponse::CANNOT_SEND_WINNER_NOTIFICATIONS;
                         echo json_encode($response);
                         exit;
                     }
                 } else {
                     echo json_encode($response);
                     exit;
                 }
             }
         }
     }
 }