示例#1
0
 function testWpid()
 {
     $this->assertTrue(PSU::is_wpid('p0intless'), 'good wpid (default flags)');
     $this->assertFalse(PSU::is_wpid('t0intless'), 'bad initial char (default flags)');
     $this->assertFalse(PSU::is_wpid('p0intlss'), 'short wpid (default flags)');
     $this->assertFalse(PSU::is_wpid('p0intlessss'), 'long wpid (default flags)');
     $this->assertFalse(PSU::is_wpid('paintless'), 'missing number (default flags)');
     $this->assertTrue(PSU::is_wpid('p0intless', PSU::MATCH_WPID), 'good wpid (wpid flag)');
     $this->assertFalse(PSU::is_wpid('t0intless', PSU::MATCH_WPID), 'bad initial char (wpid flag)');
     $this->assertFalse(PSU::is_wpid('p0intlss', PSU::MATCH_WPID), 'short wpid (wpid flag)');
     $this->assertFalse(PSU::is_wpid('p0intlessss', PSU::MATCH_WPID), 'long wpid (wpid flag)');
     $this->assertFalse(PSU::is_wpid('paintless', PSU::MATCH_WPID), 'missing number (wpid flag)');
     $this->assertTrue(PSU::is_wpid('t0intless', PSU::MATCH_TEMPID), 'good tempid (tempid flag)');
     $this->assertFalse(PSU::is_wpid('p0intless', PSU::MATCH_TEMPID), 'bad initial char (tempid flag)');
     $this->assertFalse(PSU::is_wpid('t0intlss', PSU::MATCH_TEMPID), 'short wpid (tempid flag)');
     $this->assertFalse(PSU::is_wpid('t0intlessss', PSU::MATCH_TEMPID), 'long wpid (tempid flag)');
     $this->assertFalse(PSU::is_wpid('taintless', PSU::MATCH_TEMPID), 'missing number (tempid flag)');
     $this->assertTrue(PSU::is_wpid('p0intless', PSU::MATCH_BOTH), 'good wpid (both flag)');
     $this->assertTrue(PSU::is_wpid('t0intless', PSU::MATCH_BOTH), 'good tempid (both flag)');
     $this->assertFalse(PSU::is_wpid('z0intless', PSU::MATCH_BOTH), 'bad wpid (both flag)');
     $this->assertFalse(PSU::is_wpid('p0intlss', PSU::MATCH_BOTH), 'short wpid (both flag)');
     $this->assertFalse(PSU::is_wpid('t0intlss', PSU::MATCH_BOTH), 'short tempid (both flag)');
     $this->assertFalse(PSU::is_wpid('p0intlessss', PSU::MATCH_BOTH), 'long wpid (both flag)');
     $this->assertFalse(PSU::is_wpid('t0intlessss', PSU::MATCH_BOTH), 'long tempid (both flag)');
     $this->assertFalse(PSU::is_wpid('paintless', PSU::MATCH_BOTH), 'missing wpid number (both flag)');
     $this->assertFalse(PSU::is_wpid('taintless', PSU::MATCH_BOTH), 'missing tempid number (both flag)');
 }
 public function loader_preflight($identifier)
 {
     if (!PSU::is_wpid($identifier, PSU::MATCH_TEMPID)) {
         return false;
     }
     $this->person->identifier = $identifier;
     $this->person->wpid = $this->person->wp_id = $identifier;
     $this->person->identifier_type = 'relationship-tempid';
     return true;
 }
 public function loader_preflight($identifier)
 {
     if (PSU::is_wpid($identifier)) {
         $this->person->identifier_type = 'wp_id';
         $this->person->wp_id = $this->person->wpid = $identifier;
         if ($this->_get_userdatabylogin($identifier)) {
             return true;
         }
     } elseif ($this->person->wp_id) {
         if ($this->_get_userdatabylogin($this->person->wp_id)) {
             return true;
         }
     }
     return false;
 }
IDMObject::authN();
if (!IDMObject::authZ('role', 'myplymouth')) {
    die('no access');
}
echo '<pre>';
PSU::get()->portal = PSU::db('portal_dev');
$sql = "SELECT DISTINCT wpid1 FROM relsearch WHERE substr(wpid1, 1, 1) <> 't'";
$wpids = PSU::db('portal')->GetCol($sql);
$sql = "SELECT DISTINCT wp_id FROM usertabs WHERE wp_id != 0 AND substr(wp_id, 1, 1) <> 't'";
$wpids2 = PSU::db('portal')->GetCol($sql);
$wpids = array_merge($wpids, $wpids2);
$wpids = array_unique($wpids);
sort($wpids);
if (!$_GET['simple']) {
    echo "// append ?simple=1 to url to hide names\n\n";
}
foreach ($wpids as $wpid) {
    $p = new PSUPerson($wpid);
    if ($_GET['simple'] == 1) {
        if ($p->wp_email) {
            echo $p->wp_email . ", ";
        }
    } else {
        if (PSU::is_wpid($wpid, PSU::MATCH_TEMPID)) {
            printf("%30s [%s] %s\n", "", $wpid, $p->wp_email);
        } else {
            printf("%30s [%s] %s\n", $p->first_name . " " . $p->last_name, $wpid, $p->wp_email);
        }
    }
    $p->destroy();
}
 /**
  * Return all relationships, or the relationships between this person and another person.
  * If you need to filter by status, use MyRelationships::get().
  *
  * @param $wpid
  * @return MyRelationship|array MyRelationship object, or array of MyRelationship objects
  * @sa MyRelationships::get()
  */
 public function relationships($identifier = null)
 {
     $wpid = $relid = null;
     if (PSU::is_wpid($identifier, PSU::MATCH_BOTH)) {
         $wpid = $identifier;
     } elseif (ctype_digit($identifier) || is_int($identifier)) {
         $relid = $identifier;
     }
     if ($wpid) {
         if (isset($this->relationships[$wpid])) {
             return $this->_relationship($wpid);
         }
         return $f = false;
     }
     if ($relid) {
         foreach ($this->relationships as $wpid => $id_or_myr) {
             if (!$id_or_myr instanceof MyRelationship) {
                 if ($relid == $id_or_myr) {
                     return $this->_relationship($wpid);
                 }
             } elseif ($relid == $id_or_myr->id) {
                 return $id_or_myr;
             }
         }
         return $f = false;
     }
     //
     // returning all relationships; make sure they are populated
     //
     foreach ((array) $this->relationships as $wpid => $id) {
         // touch each
         $this->_relationship($wpid);
     }
     return $this->relationships;
 }
示例#6
0
require_once $GLOBALS['BASE_DIR'] . '/includes/MyController_tab.class.php';
require_once $GLOBALS['BASE_DIR'] . '/includes/MyController_channel.class.php';
require_once $GLOBALS['BASE_DIR'] . '/includes/MyController_admin.class.php';
require_once $GLOBALS['BASE_DIR'] . '/includes/MyPortal.class.php';
require_once 'PSUModels/Model.class.php';
require_once $GLOBALS['BASE_DIR'] . '/includes/MyValues.class.php';
require_once $GLOBALS['BASE_DIR'] . '/includes/ChannelForm.class.php';
require_once $GLOBALS['BASE_DIR'] . '/includes/TabForm.class.php';
require_once 'MyRelationships.class.php';
/*******************[End Common Includes]**********************/
/*******************[Authentication Stuff]*****************/
IDMObject::authN();
// get rid of cas cruft in url
if (isset($_GET['ticket'])) {
    PSU::redirect($GLOBALS['BASE_URL'] . '/');
}
/*******************[End Authentication Stuff]*****************/
$GLOBALS['identifier'] = PSU::is_wpid($_SESSION['username']) ? $_SESSION['username'] : $_SESSION['wp_id'];
// session namespace for portal variables
if (!isset($_SESSION['portal'])) {
    $_SESSION['portal'] = array();
}
//session alert if logged in as portalord
if ($_SESSION['generic_user_type'] == 'portalord') {
    $_SESSION['messages'][] = 'You are currently logged in as PortaLord. <a href="' . $GLOBALS['BASE_URL'] . '/admin/unset-type">Resume your session</a>';
}
if (!$GLOBALS['identifier']) {
    $_SESSION['errors'][] = 'You are logged in as the default user! ANYTHING you do will be done for EVERY DEFAULT LAYOUT!';
}
//end if
MyController::delegate();
 /**
  * getPersonAttributes
  *
  * Get attributes assigned to a specific person.
  *
  * @since		version 1.1.1
  * @access		public
  * @param		int $pidm the person's pid
  * @param		int|string $attribute optional. an attribute to filter for
  * @param		int $filter_type include or exclude $attribute. Use IDM_INCLUDE or IDM_EXCLUDE
  * @param		boolean $current whether or not only currently active attributes should be returned
  */
 function getPersonAttributes($pidm, $attribute = false, $filter_type = self::IDM_INCLUDE, $current = true)
 {
     // wpid-only has not attributes
     if (PSU::is_wpid($pidm)) {
         return array();
     }
     // setup possible where clause to filter on attributes
     $attr_sql = '';
     if ($attribute) {
         if ($filter_type == self::IDM_INCLUDE) {
             $filter = '=';
         } else {
             $filter = '!=';
         }
         //end else
         $attribute = $this->getAttributeId($attribute);
         $attr_sql = "AND type_id {$filter} {$attribute}";
     }
     //end if
     $current_sql = '';
     if ($current) {
         $current_sql = 'AND sysdate >= start_date AND (sysdate <= (end_date+1) OR end_date IS NULL)';
     }
     //end if
     // build the sql statement
     $sql = "SELECT *\n\t\t\t\t\t\t\tFROM {$this->table['person_attribute']}\n\t\t\t\t\t\t WHERE 1=1\n\t\t\t\t\t\t\t\t\t {$current_sql}\n\t\t\t\t\t\t\t\t\t {$attr_sql}\n\t\t\t\t\t\t\t\t\t AND pidm = :pidm";
     // array to hold our massaged query set
     $data = $this->initTypeArray();
     $result = $this->db->GetAll($sql, array('pidm' => $pidm));
     if ($result === false) {
         return false;
     }
     //end if
     // sql succeeded, update
     foreach ($result as $row) {
         $attribute_type = $this->getAttributeName($row['type_id']);
         $data[$attribute_type][$row['attribute']] = $row;
         unset($data[$row['attribute']]['attribute']);
     }
     //end foreach
     return $data;
 }