WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 25.05.2020 14:52:57

wb_user82
Member

Dokuwiki: WBCE-Authentifikation verwenden

Hallo allerseits,

für einen internen Bereich einer Webseite, der bereits in WBCE gestaltet ist, möchte ich ein Wiki erstellen. Deshalb fiel mein Blick auf Dokuwiki, welches ich soweit ganz passend finde. Nun würde ich es gerne so haben wollen, dass die Nutzer sich optimalerweise nur einmal (im WBCE) anzumelden brauchen und dann automatisch auch für Dokuwiki authentifiziert sind.

Ich bin in der Dokumentation schon auf die Funktion trustExternal gestolpert, die wohl genau solche Probleme löst... Allerdings frage ich mich, wie ich hierbei die Infos aus WBCE bekommen kann. Wie kann ich den aktuell angemeldeten Nutzernamen etc. abgreifen?

Vielen Dank schon mal für die Antworten!

Offline

#2 25.05.2020 15:53:21

bernd
Developer

Re: Dokuwiki: WBCE-Authentifikation verwenden

Weiß nicht ob das weiterhilft, aber Username, -id, und noch etliches mehr sind ja in $_SESSION vorhanden...
Leg dir einfach mal 'ne Seite mit einem Code2 Abschnitt an:

echo '<pre>';
print_r($_SESSION);
echo '</pre>';

Da siehst du was alles vorhanden ist und wie du drauf zugreifen könntest.


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Online

#3 25.05.2020 16:29:36

wb_user82
Member

Re: Dokuwiki: WBCE-Authentifikation verwenden

Vielen Dank für die Antwort, Bernd! Ich habe jetzt eine andere Möglichkeit gefunden, die funktioniert. Man braucht gar nichts mit PHP zu skripten, sondern kann das Dokuwiki-Plugin Authpdo verwenden, welches lediglich die SQL-Befehle zur Abfrage aus der WBCE-Datenbank benötigt.

Wenn man einen reinen Lesezugriff haben möchte (Benutzer werden in WBCE verwaltet, in Dokuwiki kann man sich damit anmelden, aber keine persönlichen Daten ändern), muss man folgende SQL-Anweisungen in den Einstellungen hinterlegen (unter "Admin/Konfiguration/Authpdo):

DSN:

mysql:host=Datenbankserver;dbname=Datenbankname;charset=utf8

plugin»authpdo»select-user:

SELECT user_id as "uid", username as "user", display_name as "name", email as "mail", password as "hash"
FROM wbce_users
WHERE username = :user

plugin»authpdo»select-user-groups (hier wird vorausgesetzt, dass jeder Nutzer max. in vier Gruppen ist. Falls mehr erforderlich sind, muss die Abfrage angepasst werden. Das Problem ist, dass die Gruppen in der wbce_users kommasepariert aufgeführt sind, Dokuwiki aber einzelne Zeilen erwartet):

SELECT qq.group_id, name as "group" FROM
(SELECT
  SUBSTRING_INDEX(SUBSTRING_INDEX(groups_id, ',', n.digit+1), ',', -1) "group_id"
FROM
  wbce_users
  INNER JOIN
  (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n
  ON LENGTH(REPLACE(groups_id, ',' , '')) <= LENGTH(groups_id)-n.digit
WHERE username=:user) AS qq
INNER JOIN wbce_groups ON qq.group_id = wbce_groups.group_id

plugin»authpdo»select-groups:

Select group_id, name as "group"
FROM wbce_groups

Im Anschluss ist in der dokuwiki/conf/local.php folgende Zeile zu ergänzen:

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

Gegebenenfalls ändert man auch noch die Zeile mit "superuser" ab und ergänzt den WBCE-Adminnamen.

So einfach geht das, und man kann Dokuwiki und WBCE kombinieren. Großartig!

EDIT: Einziger, kleiner, Wehrmutstropfen: Man muss sich doppelt anmelden und wird nicht in Dokuwiki automatisch angemeldet, nachdem man sich in WBCE eingeloggt hat.

Last edited by wb_user82 (25.05.2020 16:34:20)

Offline

#4 25.05.2020 16:52:04

colinax
Administrator

Re: Dokuwiki: WBCE-Authentifikation verwenden

Hallo wb_user82,

theoretisch muss es auch unter Dokuwiki Variablen geben die den Usernamen und Password handhaben, da müsste man nur die jeweiligen Variablen mit denen von WBCE gleichschalten.

Das Adminer Modul macht es über die Modul eigene wrapper.php so, vielleicht hilft das weiter.

Offline

#5 26.05.2020 22:20:11

wb_user82
Member

Re: Dokuwiki: WBCE-Authentifikation verwenden

Hallo Colinax,

danke für den Hinweis! Das schaue ich mir mal in den nächsten Tagen genauer an und werde mich hier melden, sobald ich eine produktive Lösung gefunden habe  smile

Offline

Board footer

Powered by FluxBB

up