/** * function isStaff * <pre> * returns wether or not this account has Campus Level Priviledges (as staff) * </pre> * @return [BOOL] */ function isStaff($viewer_id = '') { $person_id = ''; if ($viewer_id != '') { $person_id = $this->getPersonIDfromViewerID($viewer_id); } if ($person_id != '') { $staffManager = new RowManager_StaffManager(); $staffManager->setPersonID($person_id); $staffManager->setIsActive(true); // NOTE: true == 1 $staffList = $staffManager->getListIterator(); $staffArray = $staffList->getDataList(); // echo 'staff records = <pre>'.print_r($staffArray,true).'</pre>'; // Person was determined to be a staff member if (count($staffArray) > 0) { // /** Create new privilege entry **/ // $values = array(); // $values['person_id'] = $person_id; // redundant? // $values['priv_id'] = RowManager_AdminManager::PRIVILEDGE_CAMPUS; // $this->loadFromArray( $values ); // $this->createNewEntry(); // // /** Get the new admin id and use it to insert a campusadminid **/ // $newAdminID = $this->getLastInsertID(); // // /** Create a campus admin entry for each campus the staff is a member of **/ // $campus_assignments = new RowManager_AssignmentsManager(); // $campus_assignments->setPersonID($person_id); // // $assignList = $campus_assignments->getListIterator(); // $assignArray = $assignList->getDataList(); // // // echo 'campus assignments = <pre>'.print_r($assignArray,true).'</pre>'; // // reset($assignArray); // foreach (array_keys($assignArray) as $key) // { // $record = current($assignArray); // $campus_id = $record['campus_id']; // // /** Create campus-admin entry **/ // $campusAdminManager = new RowManager_CampusAdminManager(); // $values2 = array(); // $values2['admin_id'] = $newAdminID; // $values2['campus_id'] = $campus_id; // $campusAdminManager->loadFromArray( $values2 ); // $campusAdminManager->createNewEntry(); // // next($assignArray); // } return true; } else { return false; } } else { return false; } }
/** * function isBasicAdmin * <pre> * a simple check to determine if viewer is admin for *some* campus and *some* event * </pre> * @return [BOOL] */ function isBasicAdmin($eventID = 'DEFAULT') { // check if viewer is a super-admin if (isset($this->isCampusAdmin[PrivilegeManager::ALL_EVENTS]) && $this->isCampusAdmin[PrivilegeManager::ALL_EVENTS] == PrivilegeManager::ALL_CAMPUSES) { return true; } if (isset($this->isCampusAdmin)) { // if no event ID passed in (i.e. very basic check) or eventID is valid for this admin if ($eventID == 'DEFAULT' || isset($this->isCampusAdmin[$eventID])) { // *some* campus should have been stored in campus admin array // echo "<pre>".print_r($this->isCampusAdmin[$evebt=true)."</pre>"; if (count($this->isCampusAdmin) > 0) { return true; } } } // otherwise check if viewer is staff at some campus // $viewers = new RowManager_ViewerManager(); // $viewers->set($this->viewer_id); $access = new RowManager_AccessManager(); $access->setViewerID($this->viewer_id); $person = new RowManager_PersonManager(); $staff = new RowManager_StaffManager(); $staff->setIsActive('1'); $assign = new RowManager_AssignmentsManager(); $assign->setAssignmentStatus(CA_STAFF); $campus = new RowManager_CampusManager(); $multiTables = new MultiTableManager(); $multiTables->addRowManager($access); $multiTables->addRowManager($person, new JoinPair($access->getJoinOnPersonID(), $person->getJoinOnPersonID())); $multiTables->addRowManager($staff, new JoinPair($person->getJoinOnPersonID(), $staff->getJoinOnPersonID())); $multiTables->addRowManager($assign, new JoinPair($assign->getJoinOnPersonID(), $person->getJoinOnPersonID())); $multiTables->addRowManager($campus, new JoinPair($assign->getJoinOnCampusID(), $campus->getJoinOnCampusID())); $campusList = $multiTables->getListIterator(); $campusArray = $campusList->getDataList(); // echo 'campus array for user: <pre>'.print_r($campusArray, true).'</pre><br>'; // some campus was found, so viewer is admin for this campus (for all events) if (isset($campusArray) && count($campusArray) > 0) { // store the viewer in the database as a campus id assigned to the current campus /*** TODO: low priority because it is an optimization ***/ return true; } return false; }