Beispiel #1
0
 private static function gps($arguments)
 {
     $allData = array();
     $allData['profiles'] = ProfilesDB::getAllProfiles();
     $allData['gps'] = GPSDataDB::getAllGPSData();
     GPSView::show($allData);
 }
Beispiel #2
0
 public static function createAccount($arguments)
 {
     $hardCode = array("profileID", "ssn");
     $parts = GenericInput::stripInput($arguments[0], $hardCode);
     //print_r($parts[0].'<br>'.$parts[1]);
     $num = intval($parts[0]);
     $parts[0] = $num;
     //print_r(($parts[0]+90).'<br>'.$parts[1]);
     if ($parts[0] < 0) {
         print_r("Error. accountID cannot be smaller or equal to 0<br>");
     } else {
         if ($parts[0] > 999999999) {
             print_r("Error. accountID cannot be that large<br>");
         } else {
             $account = AccountsDB::getAccountsBy('accountID', $parts[0]);
         }
     }
     // print_r($parts[1].'<br>'.$parts[2]);
     if (is_null($account[0])) {
         $param = array();
         $param['accountID'] = $parts[0];
         $param['SSN'] = intval($parts[2]);
         //     print_r(($parts[0]).'*<br>**'.$parts[1].'<br>***'.$parts[2]);
         $ProfileDB = ProfilesDB::getProfileBy('profileID', intval($parts[1]));
         if (!is_null($ProfileDB)) {
             //    print_r($account[0]->getProfileID()."***".$account[0]->getAccountID());
             //      if (is_null($account[0]->getProfileID())){
             $param['profileID'] = $ProfileDB->getProfileID();
             $param['SSN'] = $ProfileDB->getSSN();
             $account = new Account($param);
             AccountsDB::addAccount($account);
             //      }else{
             //              print_r("Error. Bank Account already has owner");
             //      }
         } else {
             //print_r( ($param['SSN']+3).'+<br>');
             $ProfileDB = ProfilesDB::getProfileBy('SSN', $param['SSN']);
             // 	print_r($ProfileDB->getProfileID().'&&<br>');
             if (is_null($ProfileDB)) {
                 $account = new Account($param);
                 //    print_r( $account->getSSN().'+<br>');
                 AccountsDB::addAccountNoOwner($account);
             } else {
                 print_r("ERROR. Profile with that SSN already exists");
             }
         }
     } else {
         print_r("Error. This Bank Account is already created<br>");
     }
 }
 public static function changePassword($arguments)
 {
     $hardCode = array("old_password", "new_password");
     $parts = GenericInput::stripInput($arguments[0], $hardCode);
     $email = $parts[0];
     $ProfileDB = ProfilesDB::getProfileBy('email', $parts[0]);
     if (!is_null($ProfileDB)) {
         if ($ProfileDB->getTimeOfTemp() == 0) {
             //	print_r($parts[0]."<br>".$parts[1]."<br>".$parts[2]."<br>");
             if (strcmp($ProfileDB->getPassword(), $parts[1]) == 0) {
                 $ProfileDB->setPassword($parts[2]);
                 ProfilesDB::editProfile($ProfileDB);
                 self::outputMessage(self::CODE_SUCCESS, 'Password Set', 'Password is Set');
             } else {
                 self::outputMessage(self::CODE_BAD_REQUEST, 'Incorrect email/password', 'Passwrod or Email was incorrect. ');
             }
         } else {
             if ($ProfileDB->getTimeOfTemp() > time()) {
                 //print_r(time().'***'.$ProfileDB->getTimeOfTemp());
                 if (strcmp($ProfileDB->getTemp(), $parts[1]) == 0) {
                     $old = new Profile($ProfileDB->getParameters());
                     $ProfileDB->setPassword($parts[2]);
                     $ProfileDB->setTimeOfTemp(0);
                     //print_r($ProfileDB->__toString());
                     ProfilesDB::editProfile($ProfileDB);
                     self::outputMessage(self::CODE_SUCCESS, 'Password Set', 'Password is Set');
                 } else {
                     self::outputMessage(self::CODE_BAD_REQUEST, 'Incorrect email/password', 'Passwrod or Email was Incorrect. ');
                 }
             } else {
                 //	print_r(time().'***'.$ProfileDB->getTimeOfTemp());
                 AccountsDB::deleteAccountsBy('profileID', $ProfileDB->getProfileID());
                 ProfilesDB::deleteProfileBy('email', $parts[0]);
                 self::outputMessage(self::CAUSE_TIME_OUT, 'Password timed out', "Account Exceeded Temporary Password Time. Please Create the Account again.");
             }
         }
     } else {
         self::outputMessage(self::CAUSE_INVALID_ACTION, 'Account not found', 'Invalid Account, Account Not Found');
     }
 }
Beispiel #4
0
 public function testGetMemberProfileByWithNoResults()
 {
     $profile = ProfilesDB::getProfileBy('email', '*****@*****.**');
     $this->assertNull($profile, 'It should return NULL when an unknown attribute-value pair is provided');
 }
Beispiel #5
0
 public static function run()
 {
     $profiles = ProfilesDB::getAllProfiles();
     $accounts = AccountsDB::getAllAccounts();
     echo "<!DOCTYPE html><html><style type=\"text/css\">a { font-size: 1.3em; }</style><head></head><body>";
     ?>
     Other Views: <a href="/BankingSystem/view/login">Login View</a> | <a href="/BankingSystem/view/gps">GPS View</a>
     <?php 
     echo "<h1>BankSystem profile list</h1>";
     echo "<table>";
     echo "<thead>";
     echo "<tr><th>ProfilID</th><th>AccountID</th><th>Email</th> <th>Password</th><th>isLoggedIn</th><th>isEmployee</th><th>isPasswordChanged</th></tr>";
     echo "</thead>";
     echo "<tbody>";
     foreach ($profiles as $profile) {
         echo '<tr>';
         echo '<td>' . $profile->getProfileID() . '</td>';
         echo '<td>' . $profile->getAccountID() . '</td>';
         echo '<td>' . $profile->getEmail() . '</td>';
         echo '<td>' . $profile->getPassword() . '</td>';
         echo '<td>' . $profile->isLoggedIn() . '</td>';
         echo '<td>' . $profile->isEmployee() . '</td>';
         echo '<td>' . $profile->isPasswordChanged() . '</td>';
         echo '</tr>';
         $personalAccounts = AccountsDB::getAccountsBy('bankID', $profile->getAccountID());
         if (!empty($personalAccounts)) {
             echo "<tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td>\r\n\t\t\t\t        <th>Account Id</th>\r\n\t\t\t\t        <th>SSN</th>\r\n\t\t\t\t        <th>First Name</th>\r\n\t\t\t\t        <th>Last Name</th>\r\n\t\t\t\t        <th>Balance</th>\r\n\t\t\t\t      </tr>";
             foreach ($personalAccounts as $acc) {
                 if (!is_null($acc)) {
                     //	print_r('<br>'.$acc);
                     echo '<tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td>';
                     echo '<td>   ' . $acc->getAccountID() . '</td>';
                     echo '<td>   ' . $acc->getSSN() . '</td>';
                     echo '<td>   ' . $acc->getFirstName() . '</td>';
                     echo '<td>   ' . $acc->getLastName() . '</td>';
                     echo '<td>   ' . $acc->getBalance() . '</td>';
                     echo '</tr>';
                 }
             }
         }
     }
     echo "</tbody>";
     echo "</table>";
     echo "<br><br>";
     echo "<h1>BankSystem Account list</h1>";
     echo "<table>";
     echo "<thead>";
     echo "<tr><td></td><th>Account Id</th><td></td><th>First Name</th><th>Last Name</th><th>Balance</th><th>SSN</th></tr>";
     echo "</thead>";
     echo "<tbody>";
     foreach ($accounts as $acc) {
         echo '<tr><td></td>';
         echo '<td>' . $acc->getAccountID() . '</td><td></td>';
         echo '<td>' . $acc->getFirstName() . '</td>';
         echo '<td>' . $acc->getLastName() . '</td>';
         echo '<td>' . $acc->getBalance() . '</td>';
         echo '<td>' . $acc->getSSN() . '</td>';
         echo '</tr>';
     }
     echo "</tbody>";
     echo "</table>";
     echo "</body></html>";
 }
Beispiel #6
0
 private static function verifyMember()
 {
     if (!isset($_GET['email']) || !isset($_GET['password'])) {
         self::outputMessage(self::CODE_BAD_REQUEST, 'Missing email or password', 'Argument "email" and "password" expected.');
         return false;
     }
     // retreive member data from database
     $profile = ProfilesDB::getProfileBy('email', $_GET['email']);
     if (is_null($profile)) {
         /* TODO modify ProfilesDB to return different values on error and when no matching profile is found, then swap output message below
          * I didn't do it already, because ProfilesDB is used by non-gps-related classes, and I don't want to break them. */
         //             self::outputMessage(self::CODE_INTERNAL_SERVER_ERROR, 'Failed to verify GPS data', 'An internal error occured. Try again later.');
         self::outputMessage(self::CODE_UNAUTHORIZED, 'Authorization failed.', 'Incorrect email or password.');
         return false;
     }
     if (empty($profile->getPassword())) {
         self::outputMessage(self::CODE_UNAUTHORIZED, 'Member password not set.', 'A password must be set before the requested action can be performed.');
         return false;
     }
     // verify
     if ($_GET['password'] !== $profile->getPassword()) {
         self::outputMessage(self::CODE_UNAUTHORIZED, 'Authorization failed.', 'Incorrect email or password.');
         return false;
     }
     return $profile->getProfileID();
 }
 private static function changePassword($arguments)
 {
     //check input make sure correct
     if (!array_key_exists(0, $arguments) || !isset($_GET['old_password']) || !isset($_GET['new_password'])) {
         self::outputMessage(self::CODE_BAD_REQUEST, 'Missing arguments', 'email,old_password, new_password');
         return;
     }
     $email = $arguments[0];
     //grab the profile by email given --First Argument--
     $matchingProfile = ProfilesDB::getProfileBy('email', $email);
     if (empty($matchingProfile)) {
         self::outputMessage(self::CODE_BAD_REQUEST, 'Member not found', 'A member with the specified email does not exist.');
         return;
     }
     //Change the password
     if ($matchingProfile->getPassword() == $_GET['old_password']) {
         //put the new password in
         $matchingProfile->setPassword($_GET['new_password']);
         //This is for changing the temporary password
         if (!$matchingProfile->getPasswordChanged()) {
             if (time() < strtotime($matchingProfile->getDateCreated()) + 900000) {
                 $matchingProfile->setPasswordChanged(true);
             } else {
                 //The 15 minute expired
                 self::outputMessage(self::CODE_BAD_REQUEST, 'Profile Expired', 'The Profile already exceeded the 15 minute window to change temporary password.');
                 ProfilesDB::deleteProfileBy('email', $email);
                 return;
             }
         }
         //success
         Email::sendEmail($email, 3);
         ProfilesDB::editProfile($matchingProfile);
         self::outputMessage(self::CODE_SUCCESS, 'Password Changed', 'Your password was changed correctly', $matchingProfile);
     } else {
         self::outputMessage(self::CODE_BAD_REQUEST, 'Authorization failed.', 'Incorrect email or password.');
         return;
     }
 }