Seite 1 von 1

group_single_user & individuelle Benutzerrechte

Verfasst: 10.10.2006 14:35
von maRvin06
Hallo zusammen,

ich nutze das phpBB in der Version .20 und möchte bestimmten Usern bestimmte Rechte geben. Da ich jedoch nicht die Benutzertabelle des phpBB nutze, sondern meine eigene, die an ein komplettes System angepasst ist, hab ich das ganze also ein wenig modifiziert (Registrierung läuft auch nicht über das phpBB)! Nun habe ich festgestellt das ich keine individuellen Rechte vergeben kann, weil die entsprechende "single user group" fehlt. Bin ich richtig in der Annahme, das für jeden User des phpBBs ein eigener Eintrag in der Tabelle "*_groups", sowie "*_user_group" existieren muss?

Habe zum Problem

Code: Alles auswählen

Couldn't update private forum permissions

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1)' at line 2

INSERT INTO forum_auth_access (forum_id, group_id, auth_mod) VALUES (28, , 1)

Line : 396
File : admin_ug_auth.php
zwar viel im Forum gefunden, aber im Quelltext nun herausbekommen das es anscheinend so aussehen muss.

Kann mir wer das bestätigen?

Grüße,

Marvin

Verfasst: 10.10.2006 17:25
von Miriam
Genau so ist es:
Die Tabellen *_users, *_user_groups und *_groups stehen in einem Zusammen hang und deshalb kann Dein Script die $group_id nicht mit einem Wert belegen....
Irgendwo in diesem Forum habe ich mich genau zu dieser Problematik geäussert... weiss aber nicht mehr wo exakt.

Verfasst: 10.10.2006 17:40
von maRvin06
Das sie in einem Zusammenhang stehen erklärt sich von selbst.. Meine Frage ist nur, ob auch zu jedem User ein Datensatz in *_group und in *_user_group angelegt wird..

Verfasst: 10.10.2006 18:33
von Miriam
maRvin06 hat geschrieben:Das sie in einem Zusammenhang stehen erklärt sich von selbst...
Ach so? :o
maRvin06 hat geschrieben:...Meine Frage ist nur, ob auch zu jedem User ein Datensatz in *_group und in *_user_group angelegt wird..
Welcher selbsterklärende Zusammenhang wäre naheliegender?

Verfasst: 10.10.2006 19:00
von maRvin06
Entweder wir reden aneinander vorbei oder.. oder oder.. ich weiss auch nich :)

Ich meinte eigentlich ob direkt ein Datensatz angelegt wird, wenn sich ein User normal registriert. Laut Quellcode scheint das so zu sein.. Ich kann und wills eigentlich nicht testen, da hier bestimmt genug Leute rumschwirren die ihr System nicht modifiziert haben und mir bestimmt schneller eine Auskunft darüber geben können...

Verfasst: 10.10.2006 19:28
von Miriam
maRvin06 hat geschrieben:...Ich meinte eigentlich ob direkt ein Datensatz angelegt wird, wenn sich ein User normal registriert. Laut Quellcode scheint das so zu sein...
Das ist eine gewagte Aussage und ein Blick in die usercp_register.php wird Dir sicher Klarheit bringen.

Aber gut, weil heute Dienstag ist, werde ich mal Deine Faulheit unterstützen und Dir die Benutzung der Suche ersparen --->

Wenn ein User angelegt wird, werden die Einträge in die *_users geschrieben, der User bekommt eine ID (Variablenname $user_id).

Dann wird eine neue Gruppe in der Tabelle *_groups eingetragen, deren Inhalt aus group_name, group_description, group_single_user, group_moderator besteht.
Die Eintragswerte sind group_name = '', group_description = 'Personal User', group_single_user = 1, group_moderator = 0.

Code: Alles auswählen

$sql = "INSERT INTO " . GROUPS_TABLE . " (group_name, group_description, group_single_user, group_moderator)
                                VALUES ('', 'Personal User', 1, 0)";
Die Gruppen ID ist autoinkrement und somit die nächste folgene ID (Variablenname $group_id).

Code: Alles auswählen

$group_id = $db->sql_nextid();
Hernach wird in der Tabelle *_user_group ein neuer Eintrag generiert, der folgendes enthält:
user_id = $user_id, group_id = $group_id, user_pending = 0.

Code: Alles auswählen

$sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
                                VALUES ($user_id, $group_id, 0)";
Wie Du siehst gibt es in phpBB eigentlich keine Userverwaltung im eigentlichen Sinne.... Es sind alles Gruppen.....

Verfasst: 11.10.2006 09:10
von maRvin06
Ahhhh... Genau das wollte ich wissen ;) Jetzt msus ich nämlich für jeden User so einen Datensatz anlegen, damit ich denen individuelle Rechte geben kann..

Übrigens ich bin nicht faul, aber die Frage ob zu jedem registrierten User ein Datensatz in _user_group und _group erfolgt, hätte man leichter beantworten können, als das ich im Quelltext nachsehe und spekuliere ob, und wenn, warum, wie... blaaa..

Nunja, vielen lieben Dank für Deine ausführliche Erläuterung :)