* campus_id [INTEGER] ID of a campus */ $CampusGroup = new RowManager_CampusGroupManager(); $CampusGroup->dropTable(); $CampusGroup->createTable(); /* * Group Table * * Contains the meta data for each of the groups * * group_id [INTEGER] ID of the group * groupType_id [INTEGER] ID of the group type * group_name [STRING] The name of the group * group_desc [STRING] The description of the group */ $Group = new RowManager_GroupManager(); $Group->dropTable(); $Group->createTable(); /* * GroupAssociation Table * * Contains the relationship between the group and the person. * * groupAssocation_id [INTEGER] ID of the association between group and person * group_id [INTEGER] ID of the group * person_id [INTEGER] ID of the person */ $GroupAssociation = new RowManager_GroupAssociationManager(); $GroupAssociation->dropTable(); $GroupAssociation->createTable(); /*
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); }