*/ $PermissionsCampusAdmin = new RowManager_PermissionsCampusAdminManager(); $PermissionsCampusAdmin->dropTable(); $PermissionsCampusAdmin->createTable(); /* * PermissionsGroupAdmin Table * * Contains the relationship between viewer and group. Group admin can only access the group that they are assign to. * * permissionsGroupAdmin_id [INTEGER] ID of the group admin permissions * viewer_id [INTEGER] ID of the viewer * group_id [INTEGER] ID of the group * permissionsGroupAdmin_emailNotification [INTEGER] To send the email notification to the user? * permissionsGroupAdmin_admin [INTEGER] Indicate if the user is the admin for the group. */ $PermissionsGroupAdmin = new RowManager_PermissionsGroupAdminManager(); $PermissionsGroupAdmin->dropTable(); $PermissionsGroupAdmin->createTable(); /* * PermissionsSuperAdmin Table * * Contains all the super admins. Super Admin can access everything in the scheduler. * * permissionsSuperAdmin_id [INTEGER] ID of the Super Admin Permissions * viewer_id [INTEGER] ID of the viewer */ $PermissionsSuperAdmin = new RowManager_PermissionsSuperAdminManager(); $PermissionsSuperAdmin->dropTable(); $PermissionsSuperAdmin->createTable(); /*[RAD_DAOBJ_TABLE]*/ } else {
/** * function processData * <pre> * Processes the data for this form. * </pre> * @return [void] */ function processData() { // save the value of the Foriegn Key(s) // $this->formValues[ 'groupType_id' ] = $this->groupType_id; /*[RAD_ADMINBOX_FOREIGNKEY]*/ // store values in table manager object. $this->dataManager->loadFromArray($this->formValues); // now update the DB with the values if (!$this->dataManager->isLoaded()) { $this->dataManager->createNewEntry(); //also need to add the user to be a group admin $permissionsGroupAdminManager = new RowManager_PermissionsGroupAdminManager(); $permissionsGroupAdminManager->setViewerID($this->viewer->getViewerID()); $permissionsGroupAdminManager->setGroupID($this->dataManager->getGroupID()); $permissionsGroupAdminManager->createNewEntry(); } else { $this->dataManager->updateDBTable(); } // retrieve the ID of the newly created/updated group $this->newGroupID = $this->dataManager->getID(); // echo "The ID of the newly created group is [".$this->newGroupID."]<br/>"; $this->newGroupTypeID = $this->dataManager->getGroupTypeID(); // echo "The groupType ID of the newly created group is [".$this->newGroupTypeID."]<br/>"; }
function displayGroups() { // This array get passed back to the template multiple time $groupCollectionArray = array(); $multiTableManager = new MultiTableManager(); $groupManager = new RowManager_GroupManager(); $superAdminManager = new RowManager_PermissionsSuperAdminManager(); //SUPER ADMIN //Check if user's Viewer_id is in the PermissionSuperAdmin table //If the user is a super admin then show all gorups per campus including public groups if ($superAdminManager->loadByViewerID($this->viewer->getViewerID())) { // the viewer is a super admin echo "ViewerID[" . $this->viewer->getViewerID() . "] is a super admin<br/>"; $campusManager = new RowManager_CampusManager(); $campusArray = array(); $this->listIterator = $campusManager->getListIterator(); $this->listIterator->setFirst(); while ($this->listIterator->moveNext()) { $group = $this->listIterator->getCurrent(new RowManager_CampusManager()); $campusArray[] = $group->getCampusID(); } //echo "<pre>".print_r($campusArray)."</pre>"; foreach ($campusArray as $key => $campusID) { $campusManager = new RowManager_CampusManager($campusID); $campusGroupManager = new RowManager_CampusGroupManager(); $campusGroupManager->setCampusID($campusID); $groupManager = new RowManager_GroupManager(); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($groupManager); $multiTableManager->addRowManager($campusGroupManager, new JoinPair($campusGroupManager->getJoinOnGroupID(), $groupManager->getJoinOnGroupID(), JOIN_TYPE_RIGHT)); $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $campusGroupManager->getJoinOnCampusID(), JOIN_TYPE_RIGHT)); //Go through the result and save all the groups of that campus to an array $campusGroupArray = array(); $this->listIterator = $multiTableManager->getListIterator(); $this->listIterator->setFirst(); while ($this->listIterator->moveNext()) { $group = $this->listIterator->getCurrent(new RowManager_CampusGroupManager()); $campusGroupArray[] = $group; } //set the campusID and CampusDesc for the $campusGroupArray $groupCollectionArray[] = new GroupCollection($campusManager->getShortDesc(), $campusID, $campusGroupArray); } //TODO - not a correct join //TODO - get all campus ID and groups //TODO - get all public groups } else { //STAFF OR STUDENT //If the user is a student or staff then they should have campus assignmnets in cim_hrdb_assignment //Find all the campuses and save them in the $campusAssigment array $campusAssignments = array(); $statusArray = array(); $statusArray[] = CA_STAFF; $statusArray[] = CA_STUDENT; foreach ($statusArray as $key => $statusID) { // filter from the cim_hrdb_assignment table $assignmentManager = new RowManager_AssignmentsManager(); $assignmentManager->setPersonID($this->personID); $assignmentManager->setAssignmentStatus($statusID); $assignmentList = new ListIterator($assignmentManager); $assignmentList->setFirst(); while ($assignmentList->moveNext()) { $assManager = $assignmentList->getCurrent(new RowManager_AssignmentsManager()); $campusAssignments[] = $assManager->getCampusID(); } } //CAMPUS ADMIN //some users can be admin to a campus that they are neither a student or staff for //Check cim_sch_permissionsCampusAdmin for the viewer id of the user //for each found save the campusID in the $campusAssignments table $permissionsCampusAdmin = new RowManager_PermissionsCampusAdminManager(); $permissionsCampusAdmin->setViewerID($this->viewer->getViewerID()); $campusAdminList = new ListIterator($permissionsCampusAdmin); $campusAdminList->setFirst(); while ($campusAdminList->moveNext()) { $permCampus = $campusAdminList->getCurrent(new RowManager_PermissionsCampusAdminManager()); //for each campuses found, store in array $campusAssignments[] = $permCampus->getCampusID(); } //remove any duplicate campus ID in the array $campusAssignments = array_unique($campusAssignments); //After collection all the campusIDs lets go through each campusID and get the groups //for each campusID find all the groups in $campusGroupManager table //Save the groups in an array taged with the campusID, Shortdesc foreach ($campusAssignments as $key => $campusID) { //Set the campusID so we can get the shortDesc at the end $campusManager = new RowManager_CampusManager($campusID); //Join cim_sch_Group and cim_sch_campusgroup $campusGroupManager = new RowManager_CampusGroupManager(); $campusGroupManager->setCampusID($campusID); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($campusGroupManager); $groupManager = new RowManager_GroupManager(); $multiTableManager->addRowManager($groupManager, new JoinPair($campusGroupManager->getJoinOnGroupID(), $groupManager->getJoinOnGroupID())); //Go through the result and save all the groups of that campus to an array $campusGroupArray = array(); $this->listIterator = $multiTableManager->getListIterator(); $this->listIterator->setFirst(); while ($this->listIterator->moveNext()) { $group = $this->listIterator->getCurrent(new RowManager_GroupManager()); $campusGroupArray[] = $group; } //set the campusID and CampusDesc for the $campusGroupArray $groupCollectionArray[] = new GroupCollection($campusManager->getShortDesc(), $campusID, $campusGroupArray); } //GROUP ADMIN //The user might be a group admin so we should display that group as well //We have to find the which groups the user is admin for in cim_sch_permissionsGroupAdmin //For each of these gorups, look in cim_sch_campusGroup table and find and store the campusID in an array //Use the campusID array and for each campusID and only save the gorups with the same campusID //Save all the gorups in the $gorupCollectionArray //Set a fillter for only show results if its the user's ViewerID $permissionsGroupAdminManager = new RowManager_PermissionsGroupAdminManager(); $permissionsGroupAdminManager->setViewerID($this->viewer->getViewerID()); //Set Fillter to only show results that are a campus group $groupManager = new RowManager_GroupManager(); $groupManager->setGroupTypeID(1); //Make the join of tables cim_sch_group, cim_sch_campusGroup, cim_sch_permissionsGroupAdmin $campusGroupManager = new RowManager_CampusGroupManager(); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($groupManager); $multiTableManager->addRowManager($campusGroupManager, new JoinPair($campusGroupManager->getJoinOnGroupID(), $groupManager->getJoinOnGroupID(), JOIN_TYPE_RIGHT)); $multiTableManager->addRowManager($permissionsGroupAdminManager, new JoinPair($permissionsGroupAdminManager->getJoinOnGroupID(), $groupManager->getJoinOnGroupID(), JOIN_TYPE_RIGHT)); //Go through the results and save the campusID of that group $campusGroupArray = array(); $this->listIterator = $multiTableManager->getListIterator(); $this->listIterator->setFirst(); while ($this->listIterator->moveNext()) { $group = $this->listIterator->getCurrent(new RowManager_CampusGroupManager()); $campusGroupArray[] = $group->getCampusID(); } //For each campus found, go through the result again and fillter by campusID //Only the groups of the same campusID are saved together foreach ($campusGroupArray as $key => $campusID) { //This allows us to get the campus shortDesc at the end $campusManager = new RowManager_CampusManager($campusID); //same code as before to join the tables $permissionsGroupAdminManager = new RowManager_PermissionsGroupAdminManager(); $permissionsGroupAdminManager->setViewerID($this->viewer->getViewerID()); $campusGroupManager = new RowManager_CampusGroupManager(); $campusGroupManager->setCampusID($campusID); $groupManager = new RowManager_GroupManager(); $groupManager->setGroupTypeID(1); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($groupManager); $multiTableManager->addRowManager($campusGroupManager, new JoinPair($campusGroupManager->getJoinOnGroupID(), $groupManager->getJoinOnGroupID(), JOIN_TYPE_RIGHT)); $multiTableManager->addRowManager($permissionsGroupAdminManager, new JoinPair($permissionsGroupAdminManager->getJoinOnGroupID(), $groupManager->getJoinOnGroupID(), JOIN_TYPE_RIGHT)); //go through the results and save the gorups $campusGroupArray = array(); $this->listIterator = $multiTableManager->getListIterator(); $this->listIterator->setFirst(); while ($this->listIterator->moveNext()) { $group = $this->listIterator->getCurrent(new RowManager_GroupManager()); $campusGroupArray[] = $group; } //set the campusID and CampusDesc for the $campusGroupArray $groupCollectionArray[] = new GroupCollection($campusManager->getShortDesc(), $campusID, $campusGroupArray); } //PUBLIC Groups //Show all groups in cim_sch_group with the groupTypeID of 2 (public) //The public gorup does not have a campus assign $campusID = 0; //The public gorup desc is public, this is shown in the template $publicGroupDesc = "Public"; //Set the public gorup fillter $thisIsAPublicGroup = 2; $groupManager = new RowManager_GroupManager(); $groupManager->setGroupTypeID($thisIsAPublicGroup); //go through the results and save the groups $groupArray = array(); $this->listIterator = $groupManager->getListIterator(); $this->listIterator->setFirst(); while ($this->listIterator->moveNext()) { $group = $this->listIterator->getCurrent(new RowManager_GroupManager()); $groupArray[] = $group; } //save the public groups to the array $groupCollectionArray[] = new GroupCollection($publicGroupDesc, $campusID, $groupArray); } //END OF IF //KSL //NORMAL /* $campusAssignments = array(); $statusArray = array(); $statusArray[] = CA_STAFF; $statusArray[] = CA_STUDENT; foreach( $statusArray as $key=>$statusID ) { // filter from the cim_hrdb_assignment table $assignmentManager = new RowManager_AssignmentsManager(); $assignmentManager->setPersonID( $this->personID ); $assignmentManager->setAssignmentStatus( $statusID ); $assignmentList = new ListIterator( $assignmentManager ); $assignmentList->setFirst(); while ( $assignmentList->moveNext() ) { $assManager = $assignmentList->getCurrent( new RowManager_AssignmentsManager() ); $campusAssignments[] = $assManager->getCampusID(); } } // echo "<pre>".print_r($campusAssignments, true)."</pre>"; // STEP 2: get the appropriate groups foreach( $campusAssignments as $key=>$campusID ) { $campusManager = new RowManager_CampusManager( $campusID ); $campusGroupManager = new RowManager_CampusGroupManager(); $campusGroupManager->setCampusID( $campusID ); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($campusGroupManager); $groupManager = new RowManager_GroupManager(); $multiTableManager->addRowManager( $groupManager, new JoinPair( $campusGroupManager->getJoinOnGroupID(), $groupManager->getJoinOnGroupID() ) ); $campusGroupArray = array(); $this->listIterator = $multiTableManager->getListIterator(); $this->listIterator->setFirst(); while( $this->listIterator->moveNext() ) { $group = $this->listIterator->getCurrent(new RowManager_GroupManager()); $campusGroupArray[] = $group; } $groupCollectionArray[] = new GroupCollection( $campusManager->getShortDesc(), $campusID, $campusGroupArray ); }*/ return $this->template->set('groupCollectionArray', $groupCollectionArray); }