/** * function viewer_guid_conenct * <pre> * * If user has an exisitng intranet login ($new_viewer == false): * Given GUID and viewer_id, inject GUID into existing viewer * * If user never had an intranet login ($new_viewer == true): * Given a GUID, create new viewer, person, put into access group, etc. * * @param $guid [String] [user's GUID] * @param $viewer [Int] [user's view_id] * @param $new_viewer [BOO] [true when user never had an intranet login] * </pre> * @return [void] * * */ function viewer_guid_connect($guid, $viewer, $new_viewer) { if ($new_viewer) { // 1. create new viewer $viewerManager = new RowManager_ViewerManager(); $viewerManager->setGUID($guid); // GUID $viewerManager->setLanguageID(1); // english // TODO this value should not be hard-coded for the account group $viewerManager->setAccountGroupID(15); // the 'unknown' group $viewerManager->setIsActive(true); $viewerManager->createNewEntry(); $viewerID = $viewerManager->getID(); // get the ID of the newly created viewer // 2. put into the 'all' access group // PART A $viewerAccessGroupManager = new RowManager_ViewerAccessGroupManager(); $viewerAccessGroupManager->setViewerID($viewerID); $viewerAccessGroupManager->setAccessGroupID(ALL_ACCESS_GROUP); // add to the 'all' access group $viewerAccessGroupManager->createNewEntry(); // PART B $viewerAccessGroupManager = new RowManager_ViewerAccessGroupManager(); $viewerAccessGroupManager->setViewerID($viewerID); $viewerAccessGroupManager->setAccessGroupID(SPT_APPLICANT_ACCESS_GROUP); // add to the 'SPT-Student' access group $viewerAccessGroupManager->createNewEntry(); // 3. create new person (or grab person_id from existing record) $personManager = new RowManager_PersonManager(); $personManager->setFirstName(''); $personManager->setLastName(''); $personManager->setEmail(''); $personManager->setSortOrder('person_id'); $personManager->setAscDesc('DESC'); // sort by descending person IDs $personList = $personManager->getListIterator(); $personArray = $personList->getDataList(); //create new entry $personManager->createNewEntry(); $personID = $personManager->getID(); // get the ID of the newly created person // 4. create an access table entry for this (viewer,person) combo $accessManager = new RowManager_AccessManager(); $accessManager->setViewerID($viewerID); $accessManager->setPersonID($personID); $accessManager->createNewEntry(); } else { $viewerManager = new RowManager_ViewerManager($viewer); //echo ($viewerManager->getID()); $viewerManager->setGUID($guid); // GUID $viewerManager->updateDBTable(); } }
/** * function __construct * <pre> * Initialize the Class ... * </pre> * @param $accountgroup_id [INTEGER] value used to initialize the list. * @param $sortBy [STRING] the field name to sort list by * @return [void] */ function __construct($accountgroup_id = -1, $sortBy = '') { $searchManager = new RowManager_ViewerManager(); // NOTE: if you need to narrow the field of the search then uncommnet // the following and set the proper search criteria. $searchManager->setValueByFieldName("accountgroup_id", $accountgroup_id); //$searchManager->setValueByFieldName('module_isCommonLook', '1' ); $searchManager->setSortOrder($sortBy); $this->resultSet = $searchManager->find(); }
function process_Form($sqlResult, $template, $agID, $errorMessages) { $agID = $_REQUEST['agID']; $viewerM = new RowManager_ViewerManager(); $viewerAccessGroupM = new RowManager_ViewerAccessGroupManager(); $join = new JoinPair($viewerM->getJoinOnFieldX('viewer_id'), $viewerAccessGroupM->getJoinOnFieldX('viewer_id')); $MTM = new MultiTableManager(); $MTM->addRowManager($viewerAccessGroupM); $MTM->addRowManager($viewerM, $join); $MTM->constructSearchCondition('accessgroup_id', '=', $agID, true); $MTM->addSortField('viewer_userID'); $sqlResult = $MTM->find(); if (!isset($sqlResult)) { $errorMessages = 'Failed to join database to get label'; $template->set('sqlResult', null); } else { $template->set('sqlResult', $sqlResult); } }
* * staff_id [INTEGER] The id for the staff member. * person_id [INTEGER] The id of the person who is staff. */ $Staff = new RowManager_StaffManager(); $Staff->dropTable(); $Staff->createTable(); /* * Viewer Table * * This is to use the accountadmin_viewer table to add an admin to the hrdb module. * * viewer_userID [STRING] This stored the user id of the viewer. * viewer_id [INTEGER] This is the id number for the viewer. */ $Viewer = new RowManager_ViewerManager(); $Viewer->dropTable(); $Viewer->createTable(); /* * Staff Table * * DAObj to manage the staff table. * * staff_id [INTEGER] The id for the staff member. * person_id [INTEGER] The id of the person who is staff. */ $Staff = new RowManager_StaffManager(); $Staff->dropTable(); $Staff->createTable(); /* * Assignments Table
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: //$path = $this->pathModuleRoot.'templates/'; // Otherwise use the standard Templates for the site: $path = SITE_PATH_TEMPLATES; /* * store the link values */ // example: // $this->linkValues[ 'view' ] = 'add/new/href/data/here'; // store the link labels //$this->linkLabels[ 'edit' ] = $this->labels->getLabel( '[Edit]' ); $this->linkLabels['del'] = $this->labels->getLabel('[Delete]'); $this->linkLabels['cont'] = $this->labels->getLabel('[Continue]'); // $this->linkLabels[ 'view' ] = 'new link label here'; /* * store any additional link Columns */ // example: //$title = $this->labels->getLabel( '[title_groups]'); //$columnLabel = $this->labels->getLabel( '[groups]'); //$link = $this->linkValues[ 'groups' ]; //$fieldName = 'accessgroup_id'; //$this->addLinkColumn( $title, $columnLabel, $link, $fieldName); /* * Update any label tags ... */ // example: // $name = $user->getName(); // $this->labels->setLabelTag( '[Title]', '[userName]', $name); // NOTE: this parent method prepares the $this->template with the // common AdminBox data. $this->prepareTemplate($path); // store the statevar id to edit $this->template->set('editEntryID', $this->superadmin_id); // store all the fields to the template $this->setFormFieldsToTemplate(); /* * Form related Template variables: */ /* * Insert the date start/end values for the following date fields: */ // example: //$this->template->set( 'startYear_[fieldName]', 2000); //$this->template->set( 'endYear_[fieldName]', 2010); /* * List related Template variables : */ // Store the XML Node name for the Data Access Field List $xmlNodeName = RowManager_SuperAdminAssignmentManager::XML_NODE_NAME; $this->template->set('rowManagerXMLNodeName', $xmlNodeName); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'superadmin_id'); // store data list to the template // NOTE: we initialize it here to make sure we capture any new data // from a recent processData() call. $dataAccessManager = new RowManager_SuperAdminAssignmentManager(); $dataAccessManager->setSortOrder($this->sortBy); // $this->dataList = new SuperAdminAssignmentList( $this->sortBy ); $this->dataList = $dataAccessManager->getListIterator(); $this->template->setXML('dataList', $this->dataList->getXML()); /* * Add any additional data required by the template here */ // get a list of all viewer_id's $viewer = new RowManager_ViewerManager(); $viewer->setSortOrder('viewer_userID'); $viewerList = new ListIterator($viewer); $viewerArray = $viewerList->getDropListArray(); // set the two arrays (making sure they are properly fliped back to // normal) // $viewerArray = array(); // $viewerArray['812'] = "Russ"; // $viewerArray['2878'] = "Hobbe"; // $viewerArray['2931'] = "DC"; $this->template->set('list_viewer_id', $viewerArray); //array_flip( $templateName = 'siteAdminBox.php'; // if you are creating a custom template for this page then // replace $templateName with the following: //$templateName = 'page_AddSuperAdmin.php'; return $this->template->fetch($templateName); }
/** * function __construct * This is the class constructor for Viewer class * Initialize a Viewer and determine if they are properly authenticated. * <pre><code> * Save the DB connection Info * If no session ID is set then * set the Session ID to empty string * end if * Get current viewer ID from session ID * If viewer ID is empty then * if isDestroySession is set then * Destroy the Session * end if * initialize Empty UnAuthorized Viewer ID * else * User Credientials are valid so ... * Mark as Valid Authentication * * Prepare an SQL statement to lookup the viewer info from the DB * Now load the Data from the DB * end if * </pre> * @param $isDestroySession [BOOL] Should we destroy the session data if not authenticated? * @param $dbName [STRING] The name of the database the viewer info is stored in * @param $dbPath [STRING] The path of the database the viewer info is stored in * @param $dbUser [STRING] The login ID for the database the viewer info is stored in * @param $dbPassword [STRING] The password of the database the viewer info is stored in */ function __construct($isDestroySession = true, $dbName = SITE_DB_NAME, $dbPath = SITE_DB_PATH, $dbUser = SITE_DB_USER, $dbPassword = SITE_DB_PWORD) { // if no session ID is set then if (!isset($_SESSION[SESSION_ID_ID])) { // set the Session ID to empty string $_SESSION[SESSION_ID_ID] = ''; } if ($_SESSION[SESSION_ID_ID] == '') { $_SESSION[SESSION_ID_ID] = 0; } // Get current viewer ID from session ID $this->viewerID = $_SESSION[SESSION_ID_ID]; // attempt to load a viewerManager object with current viewerID $this->viewerManager = new RowManager_ViewerManager($this->viewerID); if ($this->viewerManager->isLoaded()) { // Update current Session ID with current ViewerID $_SESSION[SESSION_ID_ID] = $this->viewerID; if ($this->viewerManager->isActive()) { $this->isAuthenticated = true; } else { $this->isAuthenticated = false; } } else { // Info not stored in session, get from GCX $this->isAuthenticated = false; if (CASUser::checkAuth()) { if (!empty($_SESSION['phpCAS']['guid'])) { if ($this->validateLogin($_SESSION['phpCAS']['guid'])) { // a user with this GUID exists in our system $this->isAuthenticated = true; } else { // code added by Russ September 11, 2009 // a user with this GUID does not exist in our system - create them $guid = $_SESSION['phpCAS']['guid']; // echo "The GUID[".$guid."]<br/>"; $gcxUsername = $_SESSION['phpCAS']['user']; // echo "The gcxUsername[".$gcxUsername."]<br/>"; // the gcxUsername is (supposed to be) an email // check to see if there is a cim_hrdb_person record with this email // the comparison needs to be case insensitive (since mysql is insensitive by default, no special doctoring is needed) // search for person record $personManager = new RowManager_PersonManager(); $foundPerson = $personManager->loadByEmail($gcxUsername); // get the personID of the person that was searched $personID = $personManager->getID(); // if record does not exist // create one // update the personID if (!$foundPerson) { // create a new person record $newpersonManager = new RowManager_PersonManager(); $newpersonManager->setEmail($gcxUsername); $newpersonManager->createNewEntry(); $personID = $newpersonManager->getID(); } // link the personID to the GUID/viewer in the cim_hrdb_access table // first, check to see if any entry already exists in the access table // if foundPerson is true above, it's possible (may have been linked to old viewer/username but not promoted to GCX account yet) $accessManager = new RowManager_AccessManager(); $accessEntryFound = $accessManager->loadByPersonID($personID); $viewerID = -1; $createNewViewer = true; if ($accessEntryFound) { $viewerID = $accessManager->getViewerID(); $viewerManager = new RowManager_ViewerManager($viewerID); // double check to make sure the viewer referenced in the access table actually exists $viewerAlreadyExists = $viewerManager->isLoaded(); if ($viewerAlreadyExists) { // no need to create a new viewer $createNewViewer = false; // update the existing viewer with the GUID and gcxUsername $viewerManager->setGUID($guid); $viewerManager->setUserID($gcxUsername); $viewerManager->setLastLogin(); $viewerManager->updateDBTable(); } // viewerAlreadyExists } // accessEntryFound if ($createNewViewer) { // create new viewer (user) $newviewerManager = new RowManager_ViewerManager(); $newviewerManager->setPassWord('xxx'); $newviewerManager->setUserID($gcxUsername); $newviewerManager->setLanguageID(1); // english // TODO this value should not be hard-coded for the account group $newviewerManager->setAccountGroupID(15); // the 'unknown' group $newviewerManager->setIsActive(true); $newviewerManager->setGUID($guid); $newviewerManager->setLastLogin(); $newviewerManager->createNewEntry(); $viewerID = $newviewerManager->getID(); // get the ID of the newly created viewer if ($accessEntryFound) { // update the access table to reference the newly created viewer for the persoa // this is the case where an access table entry may have been orphaned due to the deletion of a viewer $accessManager->setViewerID($viewerID); $accessManager->updateDBTable(); } else { // create an access table entry $newaccessManager = new RowManager_AccessManager(); $newaccessManager->setViewerID($viewerID); $newaccessManager->setPersonID($personID); $newaccessManager->createNewEntry(); } } // put into the 'all' access group $viewerAccessGroupManager = new RowManager_ViewerAccessGroupManager(); $viewerAccessGroupManager->setViewerID($viewerID); $viewerAccessGroupManager->setAccessGroupID(ALL_ACCESS_GROUP); // add to the 'all' access group $viewerAccessGroupManager->createNewEntry(); // Debugging code added by Russ Martin // echo "validate login failed<br/>"; // echo "<pre>".print_r($_SESSION,true)."</pre>"; // try again to see if everything updated correctly if ($this->validateLogin($guid)) { // a user/viewer with this GUID now exists in our system $this->isAuthenticated = true; } else { echo "Something has gone wrong: gcxUsername[" . $gcxUsername . "], guid[" . $guid . "]<br/>"; } } } else { // Debugging code added by Russ Martin // echo "session variable for storing GUID is empty<br/>"; } } else { // Debugging code added by Russ Martin // echo "CASUser::checkAuth() failed<br/>"; } } // set hasSession $this->hasSession = $this->viewerID != ''; // if no session if (!$this->hasSession) { // User Credentials are invalid so // if they want me to destroy the session then if ($isDestroySession == true) { // Remove session // session_destroy(); } } }
protected function getConfirmEmailInfo($regID) { $infoArray = array(); $email = ''; $admEmail = ''; $confirmNum = ''; $person_fname = ''; $person_lname = ''; $campus_name = ''; $event_name = ''; $confirm_text = ''; // determine if parameter has been set if (isset($regID)) { // get admin's e-mail $viewers = new RowManager_ViewerManager(); $viewers->setID($this->viewer->getViewerID()); $view_person = new RowManager_AccessManager(); $person = new RowManager_PersonManager(); $viewerInfo = new MultiTableManager(); $viewerInfo->addRowManager($viewers); $viewerInfo->addRowManager($view_person, new JoinPair($viewers->getJoinOnViewerID(), $view_person->getJoinOnViewerID())); $viewerInfo->addRowManager($person, new JoinPair($person->getJoinOnPersonID(), $view_person->getJoinOnPersonID())); $personInfoList = $viewerInfo->getListIterator(); $personInfoArray = $personInfoList->getDataList(); // echo "<pre>".print_r($personInfoArray,true)."</pre>"; $person_id = ''; reset($personInfoArray); foreach (array_keys($personInfoArray) as $k) { $record = current($personInfoArray); $admEmail = $record['person_email']; // NOTE: should only be one person per viewer ID (ENFORCE??) next($personInfoArray); } $infoArray['adminEmail'] = $admEmail; // get registration info for in confirmation e-mail (and get registrant's e-mail address) $regs = new RowManager_RegistrationManager(); $regs->setRegID($regID); $people = new RowManager_PersonManager(); $assign = new RowManager_AssignmentsManager(); $campus = new RowManager_CampusManager(); $event = new RowManager_EventManager(); $personRegs = new MultiTableManager(); $personRegs->addRowManager($people); $personRegs->addRowManager($regs, new JoinPair($regs->getJoinOnPersonID(), $people->getJoinOnPersonID())); $personRegs->addRowManager($assign, new JoinPair($people->getJoinOnPersonID(), $assign->getJoinOnPersonID())); $personRegs->addRowManager($campus, new JoinPair($assign->getJoinOnCampusID(), $campus->getJoinOnCampusID())); $personRegs->addRowManager($event, new JoinPair($regs->getJoinOnEventID(), $event->getJoinOnEventID())); $personList = $personRegs->getListIterator(); $personArray = $personList->getDataList(); // echo "<pre>".print_r($personArray,true)."</pre>"; reset($personArray); foreach (array_keys($personArray) as $k) { $person = current($personArray); $email = $person['person_email']; $person_fname = $person['person_fname']; // NOTE: should only be one person per registration (ENFORCE??) $person_lname = $person['person_lname']; $campus_name = $person['campus_desc']; $confirmNum = $person['registration_confirmNum']; $event_name = $person['event_name']; $confirm_text = $person['event_emailConfirmText']; $event_basePrice = $person['event_basePrice']; $event_contactEmail = $person['event_contactEmail']; next($personArray); } $infoArray['event_email'] = $event_contactEmail; $infoArray['email'] = $email; $infoArray['person_fname'] = $person_fname; $infoArray['person_lname'] = $person_lname; $infoArray['campus_name'] = $campus_name; $infoArray['confirmNum'] = $confirmNum; $infoArray['event_name'] = $event_name; $infoArray['confirm_text'] = $confirm_text; $infoArray['event_basePrice'] = $event_basePrice; } return $infoArray; //$email.','.$event_name.','.$confirmNum.','.$event_basePrice.','.$person_fname.','.$person_lname.','.$campus_desc.','.$admEmail; }
/** * function getListViewerAccounts * <pre> * Returns a ListIterator for the list of web site accounts this viewer * has access to modify. * </pre> * @param $sortBy [STRING] the name of the field to sort by (can be a * comma seperated list). * @return [OBJECT] */ function getListViewerAccounts($sortBy = '') { $genViewer = new RowManager_ViewerManager(); // if the current viewer is limited to the Group Access scope then // filter list based on current group. if (!$this->hasSitePriv()) { $viewerMgr = $this->getViewerManager(); $genViewer->setAccountGroupID($viewerMgr->getAccountGroupID()); } return $genViewer->getListIterator($sortBy); }
function process_Form($sqlResult, $template, $errorMessages) { //get the names that are being searched $fName = $_REQUEST['fName']; $lName = $_REQUEST['lName']; //create the needed row managers $personM = new RowManager_PersonManager(); $accessM = new RowManager_AccessManager(); $viewerM = new RowManager_ViewerManager(); //setup the join pair needed $join = new JoinPair($personM->getJoinOnFieldX('person_id'), $accessM->getJoinOnFieldX('person_id')); //create the multi table manager and initialize it $MTM = new MultiTableManager(); $MTM->addRowManager($personM); $MTM->addRowManager($accessM, $join); //if there is a first name being searched - add that as a condition if ($fName != "") { $MTM->constructSearchCondition('person_fname', ' LIKE ', '%' . $fName . '%', true); $personM->constructSearchCondition('person_fname', ' LIKE ', '%' . $fName . '%', true); } //if there is a last name being searched - add that as a condition if ($lName != "") { $MTM->constructSearchCondition('person_lname', ' LIKE ', '%' . $lName . '%', true); $personM->constructSearchCondition('person_lname', ' LIKE ', '%' . $lName . '%', true); } //jump to a display function to show what was reteived from the person database //$sqlResult = $personM->find(); //$rows = showContents($sqlResult, $personM, $personM->getFields()); //jump to a display function to show what was reteived after joining the databases $sqlResult = $MTM->find(); //$rows = showContents($sqlResult, $personM, $personM->getFields()); $sqlResult->setFirst(); //create a new viewer manager to keep data pure $viewM = new RowManager_ViewerManager(); //loop through the results saving them to be displayed for ($i = 0; $i < $sqlResult->getRowCount(); $i++) { //get the next result and the values $sqlResult->getNext($personM); $f_name[] = $personM->getValueByFieldName('person_fname'); $l_name[] = $personM->getValueByFieldName('person_lname'); $person_id[] = $personM->getValueByFieldName('person_id'); //get the current accessManager values $sqlResult->getCurrent($accessM); //create the join for access table -> viewer table and search the database for the record $join = new JoinPair($accessM->getJoinOnFieldX('viewer_id'), $viewerM->getJoinOnFieldX('viewer_id')); $MTM = new MultiTableManager(); $MTM->addRowManager($accessM); $MTM->addRowManager($viewerM, $join); $MTM->constructSearchCondition('viewer_id', '=', $accessM->getValueByFieldName('viewer_id'), true); $sqlResult2 = $MTM->find(); //add the needed information to the arrays to be displayed in the template file $sqlResult2->getNext($viewM); $viewer_id[] = $viewM->getValueByFieldName('viewer_id'); $user_id[] = $viewM->getValueByFieldName('viewer_userID'); } //check if there was any result from the initial database query, if not add an error message if ($sqlResult->getRowCount() < 1) { $errorMessages = 'Failed to join database to get label'; $template->set('f_name', null); } else { //add the needed information to the template $template->set('f_name', $f_name); $template->set('l_name', $l_name); $template->set('viewer_id', $viewer_id); $template->set('person_id', $person_id); $template->set('user_id', $user_id); } }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: //$path = $this->pathModuleRoot.'templates/'; // Otherwise use the standard Templates for the site: $path = SITE_PATH_TEMPLATES; /* * store the link values */ // example: // $this->linkValues[ 'view' ] = 'add/new/href/data/here'; // store the link labels $this->linkLabels['edit'] = $this->labels->getLabel('[Edit]'); $this->linkLabels['del'] = $this->labels->getLabel('[Delete]'); $this->linkLabels['cont'] = $this->labels->getLabel('[Continue]'); // $this->linkLabels[ 'view' ] = 'new link label here'; /* * store any additional link Columns */ // example: //$title = $this->labels->getLabel( '[title_groups]'); //$columnLabel = $this->labels->getLabel( '[groups]'); //$link = $this->linkValues[ 'groups' ]; //$fieldName = 'accessgroup_id'; //$this->addLinkColumn( $title, $columnLabel, $link, $fieldName); /* * Update any label tags ... */ // example: $linkManager = new RowManager_NavBarLinksManager($this->navbarlink_id); $seriesKey = moduleNavBar::MULTILINGUAL_SERIES_KEY; $pageKey = $linkManager->getXMLNodeName(); $groupMultiLingual = new MultilingualManager($this->viewer->getLanguageID(), $seriesKey, $pageKey); $bridgeManager = $linkManager->getRowLabelBridge($groupMultiLingual); $name = $bridgeManager->getLabel(); $this->labels->setLabelTag('[Title]', '[linkName]', $name); // NOTE: this parent method prepares the $this->template with the // common AdminBox data. $this->prepareTemplate($path); // store the statevar id to edit $this->template->set('editEntryID', $this->navlinkviewer_id); // store all the fields to the template $this->setFormFieldsToTemplate(); /* * Form related Template variables: */ /* * Insert the date start/end values for the following date fields: */ // example: //$this->template->set( 'startYear_[fieldName]', 2000); //$this->template->set( 'endYear_[fieldName]', 2010); /* * List related Template variables : */ // Store the XML Node name for the Data Access Field List $xmlNodeName = RowManager_NavLinkViewerManager::XML_NODE_NAME; $this->template->set('rowManagerXMLNodeName', $xmlNodeName); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'navlinkviewer_id'); // store data list to the template // NOTE: we initialize it here to make sure we capture any new data // from a recent processData() call. // $this->dataList = new NavLinkViewerList( $this->navbarlink_id, $this->sortBy ); $viewerGroup = new RowManager_NavLinkViewerManager(); $this->dataList = $viewerGroup->getListIterator(); $this->template->setXML('dataList', $this->dataList->getXML()); /* * Add any additional data required by the template here */ $accountGroup = new RowManager_AccountGroupManager(); $multiLingual = new MultilingualManager($this->viewer->getLanguageID()); $rowLabelBridge = $accountGroup->getRowLabelBridge($multiLingual); $viewerMgr = new RowManager_ViewerManager(); $joinPair = new JoinPair($viewerMgr->getJoinOnAccountGroupID(), $accountGroup->getJoinOnAccountGroupID()); $rowLabelBridge->addRowManager($viewerMgr, $joinPair); $rowLabelBridge->setSortOrder('label_label,viewer_userID'); $rowLabelBridge->setLabelTemplate('viewer_userID,label_label', '[label_label]-[viewer_userID]'); $rowLabelBridge->setPrimaryKeyField($viewerMgr->getPrimaryKeyField()); $viewerList = $rowLabelBridge->getListIterator(); $this->template->set('list_viewer_id', $viewerList->getDropListArray()); $templateName = 'siteAdminBox.php'; // if you are creating a custom template for this page then // replace $templateName with the following: //$templateName = 'page_LinkViewer.php'; return $this->template->fetch($templateName); }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: $path = $this->pathModuleRoot . 'templates/'; $this->template = new Template($path); // store the form action information $this->template->set('formAction', $this->formAction); // store the page labels in XML format... // NOTE: use this location to update any label tags ... // example: $account = new RowManager_ViewerManager($this->viewer_id); $name = $account->getUserID(); $this->labels->setLabelTag('[Title]', '[viewerUserID]', $name); $this->labels->setLabelTag('[Instr]', '[viewerUserID]', $name); $this->template->setXML('pageLabels', $this->labels->getLabelXML()); /* * Form related Template variables: */ // compile list of Access Categories and Related Access Groups $categoryArray = array(); $categoryManager = new RowManager_AccessCategoryManager(); $seriesKey = moduleAccountAdmin::MULTILINGUAL_SERIES_KEY; $pageKey = $categoryManager->getXMLNodeName(); $multilingualContext = new MultilingualManager($this->viewer->getLanguageID(), $seriesKey, $pageKey); $bridgeManager = new RowLabelBridge($categoryManager, $multilingualContext); $groupMultiLingualContext = new MultilingualManager($this->viewer->getLanguageID(), $seriesKey, RowManager_AccessGroupManager::XML_NODE_NAME); $accessCategoryList = $bridgeManager->getListIterator(); // $accessCategoryList = new AccessCategoryList(); $accessCategoryList->setFirst(); while ($accessCategory = $accessCategoryList->getNext()) { // $accessGroupList = new AccessGroupList( $accessCategory->getID() ); $name = $accessCategory->getLabel(); $groupManager = new RowManager_AccessGroupManager(); $groupManager->setAccessCategoryID($accessCategory->getID()); $bridgeManager = $groupManager->getRowLabelBridge($groupMultiLingualContext); $accessGroupList = $bridgeManager->getListIterator(); $categoryArray[$name] = $accessGroupList->getDropListArray(); } $this->template->set('accessCategories', $categoryArray); // load the current Groups associated with this account $this->template->set('currentGroups', $this->currentGroupList); $this->template->set('buttonText', $this->labels->getLabel('[Update]')); // return the HTML content for this page $templateName = 'page_AccountAccess.php'; return $this->template->fetch($templateName); }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: //$path = $this->pathModuleRoot.'[RAD_PATH_TEMPLATES]'; // Otherwise use the standard Templates for the site: $path = SITE_PATH_TEMPLATES; $this->template = new Template($path); // store the form action information $this->template->set('formAction', $this->formAction); // store the link values // example: // $this->linkValues[ 'view' ] = 'add/new/href/data/here'; $this->template->set('linkValues', $this->linkValues); // store the link labels $this->linkLabels['edit'] = $this->labels->getLabel('[Edit]'); $this->linkLabels['del'] = $this->labels->getLabel('[Delete]'); $this->linkLabels['cont'] = $this->labels->getLabel('[Continue]'); // $this->linkLabels[ 'view' ] = 'new link label here'; $this->template->set('linkLabels', $this->linkLabels); // store any additional link Columns // example: //$title = $this->labels->getLabel( '[title_groups]'); //$columnLabel = $this->labels->getLabel( '[groups]'); //$link = $this->linkValues[ 'groups' ]; //$fieldName = 'accessgroup_id'; //$this->addLinkColumn( $title, $columnLabel, $link, $fieldName); $this->template->set('linkColumns', $this->linkColumns); // store the statevar id to edit $this->template->set('editEntryID', $this->accountadminaccess_id); // store the current op type $this->template->set('opType', $this->opType); // store the page labels in XML format... // NOTE: use this location to update any label tags ... // example: // $name = $user->getName(); // $this->labels->setLabelTag( '[Title]', '[userName]', $name); $this->template->setXML('pageLabels', $this->labels->getLabelXML()); // store all the fields to the template $this->setFormFieldsToTemplate(); /* * Form related Template variables: */ // save the list of form fields $this->template->set('formFieldList', $this->formFields); // store the field types being displayed $fieldTypes = explode(',', FormProcessor_AdminPriv::FORM_FIELD_TYPES); $this->template->set('formFieldType', $fieldTypes); // Insert the date start/end values for the following date fields: // example: //$this->template->set( 'startYear_[fieldName]', 2000); //$this->template->set( 'endYear_[fieldName]', 2010); /*[RAD_DAOBJ_FIELD_DATE_PARAM]*/ /* * List related Template variables : */ // Store the XML Node name for the Data Access Field List $this->dataList = $this->accessPrivilegeManager->getListAccountPriviledgeAccess($this->sortBy); $xmlNodeName = $this->dataList->getRowManagerXMLNodeName(); $this->template->set('rowManagerXMLNodeName', $xmlNodeName); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'accountadminaccess_id'); // store data list to the template // NOTE: we initialize it here to make sure we capture any new data // from a recent processData() call. $this->template->setXML('dataList', $this->dataList->getXML()); // store the field names being displayed $fieldNames = explode(',', FormProcessor_AdminPriv::DISPLAY_FIELDS); $this->template->set('dataFieldList', $fieldNames); /* * Add any additional data required by the template here */ // get a list of viewer_id's that are currently in the table $this->dataList = new AccountAdminAccessList($this->sortBy); $entryArray = $this->dataList->getDropListArray(); // get a list of all viewer_id's $viewer = new RowManager_ViewerManager(); $viewer->setSortOrder('viewer_userID'); $viewerList = $this->accessPrivilegeManager->getListViewerAccounts('viewer_userID'); $viewerArray = $viewerList->getDropListArray(); // since list from dataList has viewer_id as value we need to // flip the array from the viewerList so that viewer_id is also // in values (we'll return the resulting array's back to the // proper positions later) $flippedArray = array_flip($viewerArray); // The difference between the two arrays defines the droplist box // e.g. we remove the entries already in the table from the // whole list of viewers $dropListArray = array_diff($flippedArray, $entryArray); // The intersection of the 2 arrays defines the list for displaying // the account names for the entries in the list. $rowListArray = array_intersect($flippedArray, $entryArray); // set the two arrays (making sure they are properly fliped back to // normal) $this->template->set('list_viewer_id', array_flip($rowListArray)); // if there is an entry to edit/delete then if ($this->accountadminaccess_id != '') { // pass the row list for the dropList $this->template->set('list_account', array_flip($rowListArray)); } else { // else pass the dropList array $this->template->set('list_account', array_flip($dropListArray)); } // get Access Privilege List $privList = $this->dataManager->getAccessPrivilegeArray($this->labels, $this->accessPrivilegeManager->getAccessPrivilege()); $this->template->set('list_accountadminaccess_privilege', $privList); $templateName = 'siteAdminBox.php'; return $this->template->fetch($templateName); }
echo 'Primary Key after createNewEntry = ' . $viewer->getID() . '<br>'; /* * Using RowManager to update a row in the table */ echo '<br><br>Updating Row in Table<br>'; // Updating An entry in the Table: // get the ID of the entry we just created $viewerID = $viewer->getID(); // create a new ViewerManager with the viewerID as the primarykey of the row we // want to work with. $newViewer = new RowManager_ViewerManager($viewerID); echo 'languageID before update = ' . $newViewer->getLanguageID() . '<br>'; $newViewer->setLanguageID(1); $newViewer->updateDBTable(); // now reload the object to get the value from the DB $updatedViewer = new RowManager_ViewerManager($viewerID); echo 'languageID after update = ' . $updatedViewer->getLanguageID() . '<br>'; /* * Using a List iterator to step through a selection of rows */ // now lookup the MC region Access Group // first create a list iterator based on that table $groupManager = new RowManager_AccountGroupManager(); $accountGroups = $groupManager->getListIterator(); $accountGroups->setFirst(); $groupID = -1; while ($group = $accountGroups->getNext()) { if ($group->getLabel() == "MC") { echo '---> Found MC account group!<br>'; $groupID = $group->getID(); }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: $path = $this->pathModuleRoot . 'templates/'; // Otherwise use the standard Templates for the site: //$path = SITE_PATH_TEMPLATES; /* * Update any label tags ... */ // example: // $name = $user->getName(); // $this->labels->setLabelTag( '[Title]', '[userName]', $name); $this->dataManager = new RowManager_ViewerManager($this->viewer_id); $changedViewer = new RowManager_ViewerManager($this->changedViewerID); $userID = $changedViewer->getUserID(); $this->labels->setLabelTag('[Instr]', '[viewerUserID]', $userID); $this->linkLabels['cont'] = $this->labels->getLabel('[Continue]'); // NOTE: this parent method prepares the $this->template with the // common Display data. $this->prepareTemplate($path); // uncomment this line if you are creating a template for this page $templateName = 'page_PasswordChanged.php'; // otherwise use the generic site template //$templateName = ''; return $this->template->fetch($templateName); }
function process_Form($sqlResult, $template, $errorMessages) { //get the names that are being searched $fName = $_REQUEST['fName']; $lName = $_REQUEST['lName']; //create the needed row managers $personM = new RowManager_PersonManager(); $accessM = new RowManager_AccessManager(); $viewerM = new RowManager_ViewerManager(); //setup the join pair needed $join = new JoinPair($personM->getJoinOnFieldX('person_id'), $accessM->getJoinOnFieldX('person_id')); //create the multi table manager and initialize it $MTM = new MultiTableManager(); $MTM->addRowManager($personM); $MTM->addRowManager($accessM, $join); //if there is a first name being searched - add that as a condition if ($fName != "") { $MTM->constructSearchCondition('person_fname', ' LIKE ', '%' . $fName . '%', true); $personM->constructSearchCondition('person_fname', ' LIKE ', '%' . $fName . '%', true); } //if there is a last name being searched - add that as a condition if ($lName != "") { $MTM->constructSearchCondition('person_lname', ' LIKE ', '%' . $lName . '%', true); $personM->constructSearchCondition('person_lname', ' LIKE ', '%' . $lName . '%', true); } //jump to a display function to show what was reteived from the database $rows = showContents($personM->find(), $personM, $personM->getFields()); echo '<b>' . $rows . ' accounts found in the person table.</b><br><br>'; //jump to a display function to show what was reteived from the database $sqlResult = $MTM->find(); echo '<b>' . $sqlResult->getRowCount() . ' connections made between person table and access groups.</b><br>'; $rows = showContents($sqlResult, $personM, $personM->getFields()); $sqlResult->setFirst(); $viewM = new RowManager_ViewerManager(); for ($i = 0; $i < $sqlResult->getRowCount(); $i++) { $sqlResult->getNext($personM); $f_name[] = $personM->getValueByFieldName('person_fname'); $l_name[] = $personM->getValueByFieldName('person_lname'); $person_id[] = $personM->getValueByFieldName('person_id'); $sqlResult->getCurrent($accessM); $join = new JoinPair($accessM->getJoinOnFieldX('viewer_id'), $viewerM->getJoinOnFieldX('viewer_id')); $MTM = new MultiTableManager(); $MTM->addRowManager($accessM); $MTM->addRowManager($viewerM, $join); $MTM->constructSearchCondition('viewer_id', '=', $accessM->getValueByFieldName('viewer_id'), true); $sqlResult2 = $MTM->find(); $sqlResult2->getNext($viewM); $viewer_id[] = $viewM->getValueByFieldName('viewer_id'); $user_id[] = $viewM->getValueByFieldName('viewer_userID'); } if ($sqlResult->getRowCount() < 1) { $errorMessages = 'Failed to join database to get label'; $template->set('f_name', null); } else { $template->set('f_name', $f_name); $template->set('l_name', $l_name); $template->set('viewer_id', $viewer_id); $template->set('person_id', $person_id); $template->set('user_id', $user_id); } }