1. Welcome to Donor Services Online!

    This quick tour is designed to help you find your way around the site.

  2. Navigation

    You can click on a top-level navigation item (such as "Help" to go directly to that section OR roll over it to see sub-sections. Navigation items with sub-sections have a small triangle next to them.

  3. My Grants

    The Grant section features improved search results to simplify choosing an organization.

  4. Messages

    View confirmations and other communications from Donor Services in the Message Center.

  5. Mobile Friendly

    The site has also been optimized for mobile. Try it out on your iPhone or Android device.

RBAppCommand($parentMod);/** Dont remove this line */ $this->_mapFromRBAConfig();/** Dont remove this line */ /** Additional Constructor Code */ $this->_requiresLogin = true; } /** * Return an instance of this object. */ public function &getInstance(RBAppModule &$parentMod) { $instance = new DisplayAccountInfo($parentMod); return $instance; } /** * This function is defined by the build file based on * rba_config.xml which should be in the root directory * of the application. * * NOTE: this function should not be changed, it will be * continuously changed automatically by the build process. */ final protected function _mapFromRBAConfig() { $this->_cmdKey = "display_account_info"; } /** * This function can be whatever processing is required to be * done on the arguments submitted. * * NOTE_1: Both _parseArgs and _procArgs are forcibly defined * so that they can then be used in execute. They CAN be defined * as empty and DONT NEED to be used but it is RECOMMENDED for * separation of functionality and neatness. * Also, this prevents this function from growing too large. * * NOTE_2: Where required, this function can use the reference to * the parent module (_cmdParentMod) to call the displayView method. */ public function execute(&$args) { // GET User fund info $curruser = unserialize($_SESSION['RBA_CURRENT_USER']); // VIEW-ONLY LOCKDOWN (Giving Portal transition): block profile/account/address // edits for non-admins. This form self-posts (action=updateuser/updateaddress), // so the central RBApp guard can't catch it. Reversible via VIEW_ONLY_MODE. if ( defined('VIEW_ONLY_MODE') && VIEW_ONLY_MODE && ! $curruser->isAdmin() ) { unset($args['action']); } $fund = $curruser->getCurrentFund(); $viewonly_user = $fund['viewonly_yn']; //echo "
", print_r($fund), "
"; $out = array(); $out["feedback"] = false; $user = new Users(); $user->setId($curruser->getId()); $user->load(); // FUND info + $fund = unserialize($_SESSION['RBA_CURRENT_FUND']); $fund_number = $fund->getId(); $fund_name = $fund->getFundName(); $access = $fund->getModCommands(); $u2f = new User2fund(); $u2f->setFundNumber($fund_number); $u2f->setId($user->getId()); $u2f->load(); $out['currentfund'] = $fund_number; $out['currentfund_name'] = $fund_name; $out['access'] = $access; $out['viewonly_user'] = $viewonly_user; // echo "
", print_r($access), "
"; // FUND info - $out['setting_mail_pref'] = false; $out['token'] = $_SESSION["csrf_token"]; if (in_array('SETTING_MAIL_PREF', $access)) { $out['setting_mail_pref'] = true; } $update = false; if (isset($args["action"]) && $args['action'] == 'updateuser' && isset($args["token"]) && $args["token"] == $_SESSION["csrf_pre_token"]) { $args['updated'] = ''; if ($args["username_new"] != $user->getUsername()) if ($user->checkUsername($args["username_new"])) $out["errors"] .= "
  • Username " . $args["username_new"] . " is not available
  • "; else { $out["feedback"] .= "Your username has been updated to " . $args["username_new"] . ".
    "; $args['updated'] .= "Username updated from " . $user->getUsername() . " to " . $args["username_new"] . ".\n"; $user->setUsername($args["username_new"]); $update = true; } if ($args["email"] != $user->getUserEmail()) { $out["feedback"] .= "Your email address has been updated to " . $args["email"] . ".
    "; $args['updated'] .= "Email updated from " . $user->getUserEmail() . " to " . $args["email"] . ".\n"; $user->setUserEmail($args["email"]); $update = true; } if ($args["phone"] != $user->getUserPhone()) { $out["feedback"] .= "Your phone number has been updated to " . $args["phone"] . ".
    "; $args['updated'] .= "Phone updated from " . $user->getUserPhone() . " to " . $args["phone"] . ".\n"; $user->setUserPhone($args["phone"]); $update = true; } if ($args["fax"] != $user->getUserFax()) { $out["feedback"] .= "Your fax number has been updated to " . $args["fax"] . ".
    "; $args['updated'] .= "Fax updated from " . $user->getUserFax() . " to " . $args["fax"] . ".\n"; $user->setUserFax($args["fax"]); $update = true; } if (isset($args['statement_mode']) && $args['statement_mode'] != $u2f->getStatementMode()) { $out["feedback"] .= "Your statement delivery method has been updated to: " . $args['statement_mode'] . ".
    "; $args['updated'] .= "Statement delivery method updated to: " . $args["statement_mode"] . ".\n"; $u2f->setStatementMode($args["statement_mode"]); $u2f->save(); $update = true; } if ( isset($args["password"]) && $args["password"] && $args["password"] != $user->getUserpass()) { $passIsOkay = true; if (strlen($args['password']) < 12 || strlen($args['password']) > 64 || strlen(preg_replace('/\D/', '', $args['password'])) < 1 || strlen(preg_replace('/[^a-z]/', '', $args['password'])) < 1 || strlen(preg_replace('/[^A-Z]/', '', $args['password'])) < 1 ) { $passIsOkay = false; $out["errors"] .= "
  • Your password must be at least 12 characters and less than 65 characters in length and contain at least 1 number, 1 lowercase letter and 1 uppercase letter"; } if ( $args["password"] != $args["password_verify"] ) { $passIsOkay = false; $out["errors"] .= "
  • Your password did not match the verify field"; } if ($passIsOkay) { $user->setUserpass($args["password"]); $out["feedback"] .= "Your password has been updated.
    "; $args['updated'] .= "Password updated.\n"; $update = true; } } else { $user->setUserpass(NULL); } if ($update) { $user->save(); $args['updated'] = "The following information has been updated:\n\n" . $args['updated']; $args['sendto'] = $curruser->getUserEmail(); $args['fund_name'] = $fund_name; $args['fund_number'] = $fund_number; $notify = $this->_cmdParentMod->_getCommandInstance("notify_update"); $notify->execute($args); //$user->login($user->getUsername(), $user->getUserpass()); } } if (isset($args["action"]) && $args['action'] == 'updateaddress' && $args['save'] == 'Update') { $orig = new Address(); $orig->setId($args['contact_id']); $orig->load(); if ($orig->getAddressName() != $args['address_name'] || $orig->getAddressAddress() != $args['address_address'] || $orig->getAddressCity() != $args['address_city'] || $orig->getAddressState() != $args['address_state'] || $orig->getAddressZip() != $args['address_zip']) { $address1 = $orig->getAddressName() . "\n" . $orig->getAddressAddress() . "\n" . $orig->getAddressCity() . " " . $orig->getAddressState() . " " . $orig->getAddressZip(); $args["connection_id"] = $fund->getFundNumber(); $args['address_type'] = 'fund'; $args['active_yn'] = 1; $address = $this->_cmdParentMod->_getCommandInstance("address_save"); $address->execute($args); $out["feedback"] .= "Your address has been updated."; $address2 = $args['address_name'] . "\n" . $args['address_address'] . "\n" . $args['address_city'] . " " . $args['address_state'] . " " . $args['address_zip']; $args['updated'] = "Original:\n" . $address1 . "\n\n" . "Updated:\n" . $address2; $args['sendto'] = $curruser->getUserEmail(); $args['fund_name'] = $fund_name; $args['fund_number'] = $fund_number; $notify = $this->_cmdParentMod->_getCommandInstance("notify_update"); $notify->execute($args); } else { $out["errors"] .= "You clicked 'update' without changing your address.
    "; } } if (isset($args["action"]) && $args['action'] == 'updateaddress' && $args['save'] == 'Remove') { $orig = new Address(); $orig->setId($args['contact_id']); $orig->load(); $orig->setActiveYN(0); $orig->save(); $address1 = $orig->getAddressName() . "\n" . $orig->getAddressAddress() . "\n" . $orig->getAddressCity() . " " . $orig->getAddressState() . " " . $orig->getAddressZip(); $out["feedback"] .= "Your address has been removed.
    "; $args['updated'] = "The following address has been removed:\n" . $address1 . "\n\n"; $args['sendto'] = $curruser->getUserEmail(); $args['fund_name'] = $fund_name; $args['fund_number'] = $fund_number; $notify = $this->_cmdParentMod->_getCommandInstance("notify_update"); $notify->execute($args); } $out["useremail"] = $user->getUserEmail(); $out["username"] = $user->getUsername(); $out["userpass"] = $user->getUserpass(); $out["phone"] = $user->getUserPhone(); $out["fax"] = $user->getUserFax(); $out["statement_mode"] = $u2f->getStatementMode(); $args['hideAlert'] = TRUE; $args["currCmd"] = $this->_cmdKey; $cmd = $this->_cmdParentMod->_getCommandInstance("display_header"); $cmd->execute($args); $address = new AddressPgSet(null, 1, 99); $address->addRange('connection_id', 'EQ', $fund_number); $address->addStringMatch('address_type', 'EQ', 'fund'); $address->addRange('active_yn', 'EQ', 1); $address->addSort('address_name'); $address->init(); $addresses = array(); while ($row = $address->get()) array_push($addresses, $row); $out['address'] = $addresses; $out['currentFund'] = $fund_number; $this->_cmdParentMod->displayView("display_account_info", $out); $out['sidebar'] = $args['sidebar']; $this->_cmdParentMod->displayView("display_footer_active", $out); session_write_close(); } /** * In order to enforce code organization just a little bit, * this function needs to be defined to make sure the parameters * passed into this commands are valid. */ protected function _parseArgs(&$args) { /* * * ENTER CODE TO PARSE ARGUMENTS CODE HERE * */ } /** * The function should take care of database interactions, * Business rules and other model-type functionality. */ protected function _procArgs(&$args) { /* * ENTER CODE TO PROCESS ARGUMENTS */ } }