[[PageOutline]] = Anpassungen am Horde3 Framework = == Datenbankeintrag in der MySQL-Datenbank == Datenbank horde Tabelle horde_prefs pref_uid kürzel\\ pref_scope turba\\ pref_name addressbooks\\ pref_value schule == Adressbuch == In der Mysql-Datenbank Horde wurde die Tabelle Kepler_Adressbuch angelegt: * object_id * int(11) * auto_increment * object_name * varchar(255) * object_alias * varchar(32) * object_email * varchar(255) Per Script wird täglich die eMail-Verteiler-Liste aus /etc/aliases in die Datenbank übetragen. In /usr/share/horde3/turba/config/sources.php wurde die LDAP-Anbindung des Kepler-Adressbuchs gelöscht und dafür die Anbindung an die MySQL-Source eingefügt: {{{ $cfgSources['schule'] = array( 'title' => _("Kepler-Adressbuch"), 'type' => 'sql', // The default connection details are pulled from the Horde-wide // SQL connection configuration. // // The old example illustrates how to use an alternate database // configuration. // // New Example: 'params' => array_merge($conf['sql'], array('table' => 'Kepler_Adressbuch')), 'map' => array( '__key' => 'object_id', 'name' => 'object_name', 'email' => 'object_email', 'alias' => 'object_alias', ), 'search' => array( 'name', 'email' ), 'strict' => array( 'object_id', ), 'public' => true, 'readonly' => true, 'admin' => array(), 'export' => false ); }}} Noch besser: Zugriff auf das LDAP-Verzeichnis (ou=adressbook): {{{ /** * Schule */ $cfgSources['schule'] = array( 'title' => _("Kepler Adressbuch (ldap)"), 'type' => 'ldap', 'params' => array( 'server' => 'localhost', 'port' => 389, 'tls' => false, 'root' => 'ou=adressbook,dc=kg-fds,dc=de', 'dn' => array('cn'), 'objectclass' => 'inetOrgPerson', 'filter' => '', 'charset' => 'iso-8859-1' ), 'map' => array( '__key' => 'uid', 'name' => 'cn', 'email' => 'mail' ), 'search' => array( 'name', 'email' ), 'strict' => array( 'dn' ), 'public' => true, 'readonly' => true, 'export' => false ); }}} == Single-Sign-In in der /usr/share/horde3/imp/redirect.php == Damit der Single-Sign-IN aus dem Kepler-Login funktioniert muss die Datei /usr/share/horde3/imp/redirect.php angepasst werden. Übergeben wird eine SessionID als Passwort mit vorangestelletem KL_, der Patch ersetzt diese im Erfolgsfall durch das korrekte Kennwort, mit welchem das Framework weiterarbeitet. Ganz am Anfang einfügen: {{{ // Anpassung für Kepler_Login if (substr($_POST["pass"],0,3)=="KL_") { require("/var/www/interaktiv/kepler_login/config.inc.php"); $sess = substr($_POST["pass"],3); $qry=mysql_query("SELECT pwd FROM logindata WHERE LoginName='".$_POST["imapuser"]."' AND SID='$sess';"); if ($inhalt=mysql_fetch_assoc($qry)) { $_POST["pass"] = crypto($inhalt["pwd"]); }; mysql_close($qry); }; }}}