* pricerules_value [STRING] A value that is used to determine when the price rule is applied (i.e. a date or a volume total, etc.) * pricerules_discount [INTEGER] The actual discount to be applied to the price based on this price rule. */ $PriceRule = new RowManager_PriceRuleManager(); $PriceRule->dropTable(); $PriceRule->createTable(); /* * EventAdminCampusAssignment Table * * Assigns the event admin privileges of some user to a particular campus. * * campusaccess_id [INTEGER] Identifier for a particular campus assignment to some event admin * eventadmin_id [INTEGER] Identifier of the event admin who will be assigned a campus * campus_id [INTEGER] The unique identifier that describes a particular university campus */ $EventAdminCampusAssignment = new RowManager_EventAdminCampusAssignmentManager(); $EventAdminCampusAssignment->dropTable(); $EventAdminCampusAssignment->createTable(); /* * CashTransaction Table * * Manages financial data pertaining to cash transactions between some registrant and the event host. * * cashtransaction_id [INTEGER] Unique identifier of a particular cash transaction from some registrant to event host * reg_id [INTEGER] Value identifying the registrant from which the cash originates (if value is positive) * cashtransaction_staffName [STRING] The name of the staff member receiving the cash (or dispersing if cash value is negative). * cashtransaction_recd [INTEGER] Whether or not payment was received (1 or 0 for true/false). * cashtransaction_amtPaid [INTEGER] Dollar amount of cash transaction. * cashtransaction_moddate [DATE] Modification timestamp for cash transaction record. */ $CashTransaction = new RowManager_CashTransactionManager();
function __construct($viewerID) { $this->viewer_id = $viewerID; // set defaults $this->isSuperAdmin = false; $this->isFinanceAdmin = array(); $this->isEventAdmin = array(); $this->isCampusAdmin = array(); $superAdminManager = new RowManager_SuperAdminAssignmentManager(); // the permissions are scaled if you have n permission you all have any permission < n $this->isSuperAdmin = $superAdminManager->loadByViewer($viewerID); if ($this->isSuperAdmin == true) { $this->isFinanceAdmin[PrivilegeManager::ALL_EVENTS] = 1; $this->isEventAdmin[PrivilegeManager::ALL_EVENTS] = 1; $this->isCampusAdmin[PrivilegeManager::ALL_EVENTS] = PrivilegeManager::ALL_CAMPUSES; } // determine for which events the viewer is an finance, event, or campus admin $eventPrivManager = new RowManager_EventAdminAssignmentManager(); $eventPrivManager->setViewerID($this->viewer_id); $privList = $eventPrivManager->getListIterator(); $privArray = $privList->getDataList(); $isEventAdmin = array(); reset($privArray); foreach (array_keys($privArray) as $k) { $record = current($privArray); $eventID = $record['event_id']; $priv = $record['priv_id']; $adminID = $record['eventadmin_id']; // set admin flags based on records found in eventadmin table (SUPER_ADMIN has its own table) switch ($priv) { case PrivilegeManager::FINANCE_ADMIN: $this->isFinanceAdmin[$eventID] = 1; // set value to true (1) $this->isEventAdmin[$eventID] = 1; // set value to true (1) $this->isCampusAdmin[$eventID] = PrivilegeManager::ALL_CAMPUSES; // set value to represent all campuses break; case PrivilegeManager::EVENT_ADMIN: $this->isEventAdmin[$eventID] = 1; // set value to true (1) $this->isCampusAdmin[$eventID] = PrivilegeManager::ALL_CAMPUSES; // set value to represent all campuses break; case PrivilegeManager::CAMPUS_ADMIN: $adminCampuses = new RowManager_EventAdminCampusAssignmentManager(); $adminCampuses->setEventAdminID($adminID); $campusList = $adminCampuses->getListIterator(); $campusArray = $campusList->getDataList(); // echo "campuslist = <pre>".print_r($campusArray,true)."</pre>"; $adminCampusList = ''; reset($campusArray); foreach (array_keys($campusArray) as $k) { $row = current($campusArray); $campus_id = $row['campus_id']; $adminCampusList .= $campus_id . '|'; next($campusArray); } $adminCampusList = substr($adminCampusList, 0, -1); // remove last '|' $this->isCampusAdmin[$eventID] = $adminCampusList; // set value to list of campus IDs break; default: break; } next($privArray); } // if no privileges found, then check if viewer is C4C staff with associated campus(es) if (count($this->isCampusAdmin) < 1) { $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())); // $multiTables->addSearchCondition("cim_hrdb_assignment.assignmentstatus_id = ".PrivilegeManager::STATUS_STAFF); $campusList = $multiTables->getListIterator(); $campusArray = $campusList->getDataList(); reset($campusArray); // 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) { $listOfCampuses = ''; foreach (array_keys($campusArray) as $k) { $record = current($campusArray); $campus_id = $record['campus_id']; $listOfCampuses = $campus_id . '|'; next($campusArray); } $listOfCampuses = substr($listOfCampuses, 0, -1); // remove last '|' $this->isCampusAdmin[PrivilegeManager::ALL_EVENTS] = $listOfCampuses; // echo 'pre campus list = <pre>'.print_r($this->isCampusAdmin,true).'</pre>'; } } // echo '<br>super admin = '.$this->isSuperAdmin; // echo '<br>event admin = <pre>'.print_r($this->isEventAdmin,true).'</pre>'; // echo '<br>campus admin = <pre>'.print_r($this->isCampusAdmin, true).'</pre>'; // echo '<br>finance admin = <pre>'.print_r($this->isFinanceAdmin, true).'</pre>'; $this->isStudent = true; // all users have at least student-level access }