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'); } }
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; } }
public function testGetMemberProfileByWithNoResults() { $profile = ProfilesDB::getProfileBy('email', '*****@*****.**'); $this->assertNull($profile, 'It should return NULL when an unknown attribute-value pair is provided'); }
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(); }