Ejemplo n.º 1
0
 /**
  * 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;
     }
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }