function getHandler($nsname)
 {
     if (!array_key_exists($nsname, $this->fieldset_types)) {
         // unfortunately, we need to do a bit more spelunking here.
         // if its conditional, we use a different item.  ns is unsufficient.
         //
         // FIXME this is slightly wasteful from a performance POV, though DB caching should make it OK.
         $oFieldset =& KTFieldset::getByNamespace($nsname);
         if (PEAR::isError($oFieldset)) {
             global $default;
             $default->log->error('Could not resolve Fieldset by namespace: ' . $nsname . '. Error: ' . $oFieldset->getMessage());
             return 'SimpleFieldsetDisplay';
         }
         if (is_a($oFieldset, 'KTEntityNoObjects')) {
             global $default;
             $default->log->error('Could not resolve Fieldset by namespace: ' . $nsname . '. Error: KTEntityNoObjects returned.');
             return 'SimpleFieldsetDisplay';
         }
         if ($oFieldset->getIsConditional() && KTMetadataUtil::validateCompleteness($oFieldset)) {
             return 'ConditionalFieldsetDisplay';
         } else {
             return 'SimpleFieldsetDisplay';
         }
     } else {
         return $this->fieldset_types[$nsname];
     }
 }
Ejemplo n.º 2
0
$sFieldName = "synctest";
$sSearch = "(objectClass=organizationalPerson)";
$sAttribute = "cn";
$sRootDN = null;
$aAuthenticationSources =& KTAuthenticationSource::getList();
$oSource = null;
foreach ($aAuthenticationSources as $oPotentialSource) {
    if ($oPotentialSource->getName() == $sSourceName) {
        $oSource =& $oPotentialSource;
    }
}
if (empty($oSource)) {
    printf("No authentication source named %s found\n", $sSourceName);
    exit(1);
}
$oFieldset =& KTFieldset::getByNamespace($sFieldsetNamespace);
if (PEAR::isError($oFieldset)) {
    printf("No fieldset named %s found\n", $sFieldsetNamespace);
    exit(1);
}
$oField = DocumentField::getByFieldsetAndName($oFieldset, $sFieldName);
if (PEAR::isError($oField)) {
    printf("No field named %s found in fieldset %s\n", $sFieldName, $sFieldsetNamespace);
    exit(1);
}
$oAuthenticator =& KTAuthenticationUtil::getAuthenticatorForSource($oSource);
$oLdap =& $oAuthenticator->oLdap;
$aParams = array('scope' => 'sub', 'attributes' => array($sAttribute));
$aResults = $oLdap->search($sRootDn, $sSearch, $aParams);
$aValues = array();
foreach ($aResults->entries() as $oEntry) {
Ejemplo n.º 3
0
 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()));
 }