wiki:AdminHorde
close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

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);
};

Last modified 14 years ago Last modified on Sep 3, 2012, 1:05:29 PM
Note: See TracWiki for help on using the wiki.