function do_saveSearch() { $this->startTransaction(); $iSearchId = KTUtil::arrayGet($_REQUEST, 'fSearchId', false); $sName = KTUtil::arrayGet($_REQUEST, 'name', false); $sSearch = KTUtil::arrayGet($_REQUEST, 'boolean_search'); if ($iSearchId === false && $sName === false) { $this->errorRedirectTo('performSearch', _kt('Please either enter a name, or select a search to save over'), sprintf('boolean_search_id=%s', $sSearch)); exit(0); } if ($this->oUser->isAnonymous()) { $this->errorRedirectTo('performSearch', _kt('Cannot save searches as anonymous user'), sprintf('boolean_search_id=%s', $sSearch)); exit(0); } $datavars = $_SESSION['boolean_search'][$sSearch]; if (!is_array($datavars)) { $datavars = unserialize($datavars); } if (empty($datavars)) { $this->errorRedirectToMain(_kt('You need to have at least 1 condition.')); } if ($iSearchId) { $oSearch = KTSavedSearch::get($iSearchId); if (PEAR::isError($oSearch) || $oSearch == false) { $this->errorRedirectToMain(_kt('No such search')); exit(0); } $oSearch->setSearch($datavars); $oSearch = $oSearch->update(); } else { $sName = $this->oValidator->validateEntityName('KTSavedSearch', KTUtil::arrayGet($_REQUEST, 'name'), array('extra_condition' => 'not is_condition', 'redirect_to' => array('new'))); $sNamespace = KTUtil::nameToLocalNamespace('Saved searches', $sName); $oSearch = KTSavedSearch::createFromArray(array('name' => $sName, 'namespace' => $sNamespace, 'iscondition' => false, 'iscomplete' => true, 'userid' => $this->oUser->getId(), 'search' => $datavars)); } $this->oValidator->notError($oSearch, array('redirect_to' => 'main', 'message' => _kt('Search not saved'))); $this->commitTransaction(); $this->successRedirectTo('performSearch', _kt('Search saved'), sprintf('boolean_search_id=%s', $sSearch)); }
function createLdapAuthenticationProvider() { if (!file_exists(KT_DIR . '/config/environment.php')) { return; } global $default; $new_default = $default; $default = null; require_once KT_DIR . '/config/environment.php'; $old_default = $default; $default = $new_default; if ($old_default->authenticationClass !== "LDAPAuthenticator") { return; } $sName = "Autocreated by upgrade"; $sNamespace = KTUtil::nameToLocalNamespace("authenticationsources", $sName); $aConfig = array('searchattributes' => split(',', 'cn,mail,sAMAccountName'), 'objectclasses' => split(',', 'user,inetOrgPerson,posixAccount'), 'servername' => $old_default->ldapServer, 'basedn' => $old_default->ldapRootDn, 'searchuser' => $old_default->ldapSearchUser, 'searchpassword' => $old_default->ldapSearchPassword); if ($old_default->ldapServerType == "ActiveDirectory") { $sProvider = "ktstandard.authentication.adprovider"; } else { $sProvider = "ktstandard.authentication.ldapprovider"; } require_once KT_LIB_DIR . '/authentication/authenticationsource.inc.php'; $oSource = KTAuthenticationSource::createFromArray(array('name' => $sName, 'namespace' => $sNamespace, 'config' => serialize($aConfig), 'authenticationprovider' => $sProvider)); if (PEAR::isError($oSource)) { return $oSource; } $sUsersTable = KTUtil::getTableName('users'); $sQuery = "UPDATE {$sUsersTable} SET authentication_source_id = ? WHERE authentication_source_id IS NULL AND LENGTH(authentication_details_s1)"; $aParams = array($oSource->getId()); $res = DBUtil::runQuery(array($sQuery, $aParams)); return $res; }
function do_create() { $oForm = $this->form_create(); $res = $oForm->validate(); $data = $res['results']; $errors = $res['errors']; $extra_errors = array(); if (!empty($data['name'])) { $oFieldset = KTFieldset::getByName($data['name']); if (!PEAR::isError($oFieldset)) { // means we're looking at an existing name $extra_errors['name'] = _kt("There is already a fieldset with that name."); } } $is_conditional = false; // FIXME this is inelegant. get it from somewhere else. if ($this->bHaveConditional && $data['fieldset_type'] == 'conditional') { $is_conditional = true; } if (!empty($errors) || !empty($extra_errors)) { return $oForm->handleError(null, $extra_errors); } // we also need a namespace. $temp_name = $data['name']; $namespace = KTUtil::nameToLocalNamespace('fieldsets', $temp_name); $oOldFieldset = KTFieldset::getByNamespace($namespace); while (!PEAR::isError($oOldFieldset)) { $temp_name .= '_'; $namespace = KTUtil::nameToLocalNamespace('fieldsets', $temp_name); $oOldFieldset = KTFieldset::getByNamespace($namespace); } // we now know its a non-conflicting one. // FIXME handle conditional fieldsets, which should be ... a different object. $oFieldset = KTFieldset::createFromArray(array("name" => $data['name'], "description" => $data['description'], "namespace" => $namespace, "mandatory" => false, "isConditional" => $is_conditional, "isGeneric" => $data['generic'], "isComplete" => false, "isComplex" => false, "isSystem" => false)); if (PEAR::isError($oFieldset)) { return $oForm->handleError(sprintf(_kt("Failed to create fieldset: %s"), $oFieldset->getMessage())); } $this->successRedirectTo('edit', _kt("Fieldset created."), sprintf('fFieldsetId=%d', $oFieldset->getId())); }
function do_newsource_final() { $aErrorOptions = array('redirect_to' => array('main')); $aErrorOptions['message'] = _kt("No name provided"); $sName = KTUtil::arrayGet($_REQUEST, 'name'); $sName = $this->oValidator->validateString($sName, $aErrorOptions); $aErrorOptions['message'] = _kt("No authentication provider chosen"); $sProvider = KTUtil::arrayGet($_REQUEST, 'authentication_provider'); $sProvider = $this->oValidator->validateString($sProvider, $aErrorOptions); $sNamespace = KTUtil::nameToLocalNamespace($sName, 'authentication/sources'); $sConfig = ""; $oSource =& KTAuthenticationSource::createFromArray(array('name' => $sName, 'namespace' => $sNamespace, 'authenticationprovider' => $sProvider)); $this->oValidator->notError($oSource); $this->successRedirectTo('editSourceProvider', _kt("Source created"), sprintf('source_id=%d', $oSource->getId())); }
function do_performSearch() { $datavars = KTUtil::arrayGet($_REQUEST, 'boolean_search'); $sName = $this->oValidator->validateEntityName('KTSavedSearch', KTUtil::arrayGet($_REQUEST, 'name'), array('extra_condition' => 'not is_condition', 'redirect_to' => array('new'))); if (!is_array($datavars)) { $datavars = unserialize($datavars); } if (empty($datavars)) { $this->errorRedirectToMain(_kt('You need to have at least 1 condition.')); } $sNamespace = KTUtil::nameToLocalNamespace('Saved searches', $sName); $oSearch = KTSavedSearch::createFromArray(array('name' => $sName, 'namespace' => $sNamespace, 'iscondition' => false, 'iscomplete' => true, 'userid' => null, 'search' => $datavars)); $this->oValidator->notError($oSearch, array('redirect_to' => 'main', 'message' => _kt('Search not saved'))); $this->successRedirectToMain(_kt('Search saved')); }
<?php require_once "../../../config/dmsDefaults.php"; require_once KT_LIB_DIR . "/util/ktutil.inc"; print KTUtil::nameToLocalNamespace("Saved Searches", "Neil's saved search");