function store() { $st = new LDAP_Lehrer(); $info = array_keys($this->mapping); $d = array(); foreach ($info as $k) { $d[$k] = trim(stripslashes(core_get_param($k, $this->argv['prefix']))); } $mode = array_key_exists('mode', $this->argv) ? $this->argv['mode'] : "create"; switch ($mode) { case "modify": if (!($dn = core_get_param('__schulv_record_dn', $this->argv['prefix']))) { user_error("RecordDN not set. Cannot modify database entry"); return false; } $st->setDN($dn, true); break; case "create": default: $uid = sprintf("%s%d", stripslashes($d['nachname']), Schulv::nextUid()); $st->setDN($uid); $st->setValue("uid", $uid); break; } $cn = sprintf("%s %s", $d['vorname'], $d['nachname']); $st->setValue("cn", $cn); $st->setValue("kuerzel", $d['kuerzel']); $st->setValue("givenname", $d['vorname']); $st->setValue("surname", $d['nachname']); $st->setValue("geschlecht", $d['geschlecht']); $st->setValue("telephonenumber", $d['telefonnummer']); $st->setValue("geburtsdatum", $d['geburtsdatum']); $st->setValue("lehramt", $d['lehramt']); $st->addMultiValue("lehrbefaehigung", split(",", $d['lehrbefaehigung'])); $st->addMultiValue("postaladdress", $d['adresse']); $ldap = Schulv::ldapConnect(); switch ($mode) { case "modify": if (!$ldap->attr_replace($st)) { print "LDAP Error: " . sprintf("%d: %s", $ldap->errno(), $ldap->error()); return false; } break; case "create": default: if (!$ldap->add($st)) { print "LDAP Error: " . sprintf("%d: %s", $ldap->errno(), $ldap->error()); return false; } break; } if (array_key_exists("onsuccess", $this->argv)) { header("Location: " . $this->argv['onsuccess']); exit; } return true; }