private static function gps($arguments) { $allData = array(); $allData['profiles'] = ProfilesDB::getAllProfiles(); $allData['gps'] = GPSDataDB::getAllGPSData(); GPSView::show($allData); }
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'); } }
public function testGetMemberProfileByWithNoResults() { $profile = ProfilesDB::getProfileBy('email', '*****@*****.**'); $this->assertNull($profile, 'It should return NULL when an unknown attribute-value pair is provided'); }
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>"; }
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; } }