Verwendung der Benutzer einer vorhandenen Joomla-Installation

Achtung! Die Verbindung zwischen Joomla und DokuWiki bzw. dem Einsatzleiterwiki ist bis dato nur bis Joomla 1.5 möglich. Für neuere Joomla-Versionen existiert noch keine Lösung.

Falls Sie bereits das beliebte CMS Joomla einsetzen und die Benutzer nicht im Einsatzleiterwiki neu anlegen möchten, besteht die Möglichkeit, anstatt der Benutzerverwaltung des Wikis die Datenbank von Joomla zu benutzen. Dies ist in der beschriebenen Form für Joomla ab Version 1.5 möglich. Installieren Sie dafür das Wiki wie in der Anleitung beschrieben und führen Sie danach die hier genannten Schritte durch:

Die Einrichtung ist recht unkompliziert; laden Sie durch einen Klick auf das PHP-Symbol bzw. den Dateinamen die folgende Datei herunter und speichern Sie diese in den Unterordner inc/auth/ Ihrer Einsatzleiterwiki-Installation.

<?php /** * auth/joomla.class.php * * @author Nicolas Ruflin <dev@ruflin.com> */ class auth_joomla extends auth_basic { function auth_joomla() { global $conf; $conf['superuser'] = "admin"; //hier den Usernamen des Admins eintragen include_once("/pfad/auf/dem/webserver/joomla/configuration.php"); $configuration = new JConfig; $mosConfig_host = $configuration->host; $mosConfig_user = $configuration->user; $mosConfig_password = $configuration->password; $mosConfig_db = $configuration->db; $conn = mysql_connect($mosConfig_host,$mosConfig_user,$mosConfig_password); mysql_select_db($mosConfig_db, $conn); } function checkPass($user,$pass){ $sql = "SELECT password FROM jos_users WHERE username = '$user'"; $res = mysql_fetch_array(mysql_query($sql)); return $this->checkJoomlaPassword($pass,$res['password']); } /** checks the password with salt */ function checkJoomlaPassword($pass,$dbpass) { //Splittet den String auf list($hash, $salt) = explode(':', $dbpass); //setzt salt-wert mit dem eingegebenen Passwort zusammen und gibt den md5 Wert zurück $cryptpass = md5($pass.$salt); //überprüft ob Doppelpunkt vorhanden und vergleich hash-Wert mit den cryptpass if( (strpos($dbpass,':') == true) && $hash == $cryptpass) { return true; } return false; } /** * Returns info about the given user needs to contain * at least these fields: * * name string full name of the user * mail string email addres of the user * grps array list of groups the user is in * * @return array containing user data or false */ function getUserData($user) { global $conf; if(isset($user) && $user == $conf['superuser']) { $groups = array("admin","user"); } else { $groups = array("user"); } $sql = "SELECT name, email FROM jos_users WHERE username = '$user' ;"; $u = mysql_fetch_array(mysql_query($sql)); if($u != null) { $email = $u['email']; $name = $u['name']; } else { $name = $user; $email = ""; } $user = array('name' => $name, 'mail' => $email ,'grps' => $groups ); return $user; } }

Ändern Sie nun in der Datei die Zeile

$conf['superuser'] = "admin"; //hier den Usernamen des Admins eintragen

auf den Benutzernamen des Joomla-Benutzers ab, der der Administrator des Einsatzleiterwikis sein soll.

Außerdem muss der Pfad zur Joomla-Konfigurationsdatei configuration.php angegeben werden, dies kann absolut oder relativ geschehen (im Beispiel ist der Pfad absolut angegeben):

include_once("/pfad/auf/dem/webserver/joomla/configuration.php");

Als letztes muss nun noch in der Konfiguration des Wikis festgelegt werden, dass die Joomla-Benutzer verwendet werden sollen. Melden Sie sich dafür mit dem bei der Wiki-Installation festgelegten Administrator-Konto im Wiki an, klicken Sie oben rechts auf Admin und dann in der Mitte auf Konfiguration. Im Abschnitt Authentifizierungs-Konfiguration wählen Sie beim Punkt Authentifizierungsmechanismus aus der Liste den Eintrag joomla aus wie auf folgendem Bild zu sehen:

Joomla-Benutzer zur Authentifizierung nutzen

Gehen Sie nun ein Stück weiter, gegen Ende des Abschnitts Authentifizierungs-Konfiguration finden Sie einen Block Dokuwiki-Aktionen deaktivieren. Setzen Sie dort Haken bei Registrieren, Benutzerprofil und Sende neues Passwort:

Joomla-Aktionen deaktivieren

Nun ist die Einrichtung abgeschlossen und Ihre Nutzer sollten sich mit ihren Joomla-Zugangsdaten auch im Wiki anmelden können.

Hinweis:

Sollte aus welchen Gründen auch immer die Einrichtung fehlschlagen und Sie sich nicht mehr am Wiki anmelden können, so öffnen Sie einfach im Unterverzeichnis conf des Wikis die Datei local.php und löschen Sie die Zeile

$conf['authtype'] = 'joomla';

Dadurch wird wieder die Benutzerverwaltung des Wikis verwendet.

weiterführende Informationen

Wenn Sie Ihr Wiki im Internet betreiben, ist die korrekte Einrichtung der Nutzerrechte wichtig.

Tracedump:

newBaseSize: 16pt
newBaseSizeInPt: 16