PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigene Benutzergruppenrechte


Andreas
09.08.2007, 17:40
vBulletin 3.5 verwendet XML Dateien um Benutzergruppenrechte zu verwalten.

Wenn man eigene Benutzergruppenrechte erstellen möchte, so muss als erstes die Tabelle usergroup angepasst werden (wenn ein Präfix wie z.B. vb3_ verwendet wird, so ist dieser usergroup voranzustellen):

CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Sofern auch Felder mit Zahlenwerten benötigt werden (anstatt nur Ja/Nein), so werde diese folgendermaßen erstellt:

CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Als nächstes muss eine Datei bitfield_meinhack.xml im Verzeichnis includes/xml erstellt werden, welche folgendermaßen aufgebaut ist:

CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Wie man der Datei entnehmen kann, muss eine neue Gruppe innerhalb der Gruppe ugp (steht für Usergroup-Permissions) erstellt werden.

Der Parameter product des Tags bitfields muss dabei der Bezeichner des zugehörigen Produkts sein, oder vbulletin falls keinem Produkt zugeordnet.

Paramater name des Tag group muss dem dem Spaltennemen in Tabelle usergroup entsprechen.

Die Paramete des Tags bitfield sind:


name ist der Bezeichner der Berechtigung. Diesser kann im Code (z.B. $permissions['myhackpermissions'] & $vbulletin->bf_ugp['myhackpermissions']['canfoo']) verwendet werden, um diese Berechtigung zu prüfen.
Für Zahlenwerte muss name dem Spaltennamen in Tabelle usergroup entsprechen.
intperm gibt an ob es sich um einen Zahlenwert handelt (0=Nein,1=Ja)
group ist der Variablenname der Phrase, welche als Gruppenbezeichner verwendet werden soll.
Man kann somit ein Feld der Usergroup-Tabelle für Rechte unterschiedlicher Kategorien verweden (z.B. eine Einstellung in Private Nachrichten Rechte und eine Einstellung in einer neuen Gruppe)
phrase ist der Variablenname der Phrase für diese Einstellung.
install definiert eine durch Komma getrennte Liste an Benutzergruppen, für diese Einstellung beim Installieren aktivierr werden soll.
Für Hacks ist dies nicht von Bedeutung.
Ist der Parameter leer oder nicht definiert, so gilt die Einstellung für alle Benutzergruppen.


Der Wert <bitfield> ist der Dezimalwert des jeweiligen Bits (also 1 für das erste, 2 für das zweite, 4 für das dritte, usw.).
Im Fall eines Zahlenwertes (intperm) ist dies der Defaultwert.

Um einen Eintrag für bestimmte Gruppen (z.B. weil es für Gäste keinen Sinn macht) auszublenden kann man folgende Code in das XML mit aufnehmen;

CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Parameter name ist dabei der Name der jeweiligen Gruppe, die ausgebeldet werden soll, ignoregroups definiert eine durch Komma getrennte Liste von Benutzergruppen für welche die Rechte ausgeblendet werden sollen.
Dieser Code muss innerhalb von <bitfielddefs> eingefügt werden.

Ist das XML erstellt, so müssen als nächstes die benötigten Phrasen (Phrasentyp Berechtigungen) erstellt werden.

vBulletin cached Bitfelder im Datastore, daher muss dieser Cache aktualisiert werden damit neue Rechte wirksam werden können:

Hierzu muss im Browser admincp/index.php?do=buildbitfields aufgerufen werden.

Ohne Cache-Aktualisierung werden die neuen Rechte zwar im Benutzergruppen-Manager angezeigt, können aber nicht gespeichert werden.

Aktuelle vBulletin-Versionen aktualisieren den Cache bei Produktinstallation selbstständig, für ältere Versionen kann man folgenden Code dem Installationscode des Produkts hinzufügen um auch hier eine automatische Aktualisierung zu erreichen:
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Ahriman
07.04.2008, 09:04
Moin! ;)

Eine Frage hätte ich dazu:

install="1,2,3,4,5,6,7"

Sehe ich es richtig, daß sich diese Werte ausschließlich auf den Import auswirken? Sprich, alles automatisch auf no gesetzt ist, wenn ich die Rechte gerade entwickel?

Andreas
07.04.2008, 09:06
Nein, das siehst du falsch ;)
Das install bezieht wirkt sich nur bei einer Neuinstallation von vBulletin aus - ansonsten besitzt es keinerlei Wirkung.

Ahriman
07.04.2008, 09:58
So ein Mist. :D

MikeD
27.06.2008, 15:56
Hi Andreas :)
ich muss mich mal hier in Deinem Thema einklinken, da ich im Moment einige Fragen speziell dazu habe, wo ich nicht mit klar komme. Viele Fragen konnte ich mir im Laufe der Zeit durch Analysen andere Hacks bereits selbst beantworten, aber dieses Thema ist mir etwas zu komplex. Ich hoffe, das es auch im Interesse anderer Benutzer dient.

Benutzergruppen Rechte 'Install Code'
Ich hab in vielen Hacks gesehen, das man die Benutzergruppen Rechte auch per <installcode> installieren kann. Die spätere Auswertung dieser Rechte erfolgt dann per Hook "admin_usergroup_edit"

Frage: Was ist denn Deiner Meinung nach besser, ob man sich dieser Methode bedient oder aber die Gruppen-Rechte per "bitfield_xxx" setzt und dann ausliest? Weißt Du was ich meine? Es gibt doch hier zwei verschiedene Verfahren. Ist es egal, wie man dies macht? Oder aber gibt es hier doch Unterschiede? Oder bin ich wiedermal zu kompliziert in meinem Denken?

Benutzergruppen Rechte 'Auslesen & Setzen'
Viele Hacks benutzen für das setzen und auslesen dieser Rechte entweder das normale Eingabefeld oder aber die Checkboxen innerhalb des ACP's. Nehmen wir mal zum Beispiel den Hack vB Favoriten (http://www.vbulletin-germany.org/showthread.php?t=135) von Boothby. Doch seit Erscheinung der vB 3.7 Version scheint sich da einiges geändert zu haben, da ältere Hacks, die ebenfalls diese Option haben (Beispiel: Debug Hack von Surviver) hier nicht mehr funktionieren. Nun hab ich mir mal die neue Version des vB Favoriten Hacks angeschaut, der dies auch richtig macht und finde Anfangs diesen Code dafür...

PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Frage: Kann man dies so als Standard Schema nehmen (bis auf einige Ausnahmen obiger Variablen), um diese Benutzergruppen Rechte zu setzen? Ich hoffe Du verstehst, was ich mit dem ganzen hier meine. Ich hoffe auf einen Schubs in die richtige Richtung :)

Andreas
27.06.2008, 20:11
Ich hab in vielen Hacks gesehen, das man die Benutzergruppen Rechte auch per <installcode> installieren kann.

Jao. Wo würdest du sie sonst installieren wollen ? :-)

Die spätere Auswertung dieser Rechte erfolgt dann per Hook "admin_usergroup_edit"
Kann man machen, ist aber eher umständlich - zumal man sich auch selbst um das zusammenbauen kümmern müsste wenn keine Bitfelder verwendet werden.


Weißt Du was ich meine?

Ehrlich gesagt: Nein :-)


Viele Hacks benutzen für das setzen und auslesen dieser Rechte entweder das normale Eingabefeld oder aber die Checkboxen innerhalb des ACP's.

vBulletin Einstellungen haben nichts mit Benutzergruppen-Rechten zu tun!


Doch seit Erscheinung der vB 3.7 Version scheint sich da einiges geändert zu haben, da ältere Hacks, die ebenfalls diese Option haben (Beispiel: Debug Hack von Surviver) hier nicht mehr funktionieren.

Korrekt. Der Kontext hat sich etwas geändert. Bei 3.5 und 3.6 war das in der options.php, jetzt ist es in einer Funktion in adminfunctions_options.php


Frage: Kann man dies so als Standard Schema nehmen (bis auf einige Ausnahmen obiger Variablen), um diese Benutzergruppen Rechte zu setzen?

Die Unterscheidung in welchem Kontext Du bist (also $settings oder $vbulletin->GPC['settings']) - ja, alles andere - Nein

MikeD
27.06.2008, 23:00
So nen Mist. Ich dachte, mich klar ausgedrückt zu haben, aber vermutlich verwechsel ich da mal wieder etwas.

Viele Hacks benutzen für das setzen und auslesen dieser Rechte entweder das normale Eingabefeld oder aber die Checkboxen innerhalb des ACP's.vBulletin Einstellungen haben nichts mit Benutzergruppen-Rechten zu tun!

Korrekt. Aber ich meine auf Basis einiger Hacks. Ich zeig Dir morgen, was ich damit meine ;)

Kann man machen, ist aber eher umständlich - zumal man sich auch selbst um das zusammenbauen kümmern müsste wenn keine Bitfelder verwendet werden.Und genau darauf will ich hinaus, da ich bei einigen Hacks das Zusammenspiel nicht verstehe. Womit ich meine: Jeder macht solche Abfragen auf verschiedene Arten. Mal ohne Bitfelder (VB Favoriten) und mal mit Bitfelder (PhotoPlog). Und genau das versteh ich nicht :( Oder bleibt das jedem so überlassen, wie er es gerne machen möchte?

Lass uns doch bitte morgen darüber reden. Ich hoffe nur, das Du dann meine Gedankengänge etwas mehr ordnen kannst, denn dieses Thema interessiert mich wirklich sehr :)

MikeD
29.06.2008, 13:24
Etwas verspätet, aber ich bin wie versprochen, wieder da :)

vBulletin Einstellungen haben nichts mit Benutzergruppen-Rechten zu tun!Nun, was ich meinte, ist zum Beispiel aus dem 1. Bild ersichtlich. Kannst Du mir mal bitte erklären, warum manche Coder zum einen, solche Gruppenrechte so abfragen...
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

während andere Hacks sich der Bitfelder bedienen, was natürlich einfacher und vor allem übersichtlicher ist? Was diese Abfrage macht und was sie bedeutet, ist mir klar. Aber warum dies auf unterschiedlicher Art geschieht, versteh ich ehrlich gesagt, nicht. Oder aber liegt das im Ermessen des Coders, wie er das handhabt?

Nehmen wir mal als nächstes Beispiel den PM Suchfunktion (http://www.vbulletin-germany.org/showthread.php?t=866) Hack. Ein wirklich tolles, aber recht verwirrendes Teil bezüglich einiger Codestellen. Aber gut, das ist ne andere Sache.

Geh ich hier recht in der Annahme, das solche Plugins nur so erstellt werden können, wenn Hacks NICHT auf PHP Code basieren?
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

ragtek
29.06.2008, 13:29
Zur 1. Frage:

Weil sie zu faul sind, weil sie nicht wissen wie man das mit den vb-Gruppenrechten macht, weil sie nicht wegn einer Berechtigung jetzt die ganze XML Datei "zambasteln" wollen.

So das sind die Gründe die mir einfallen würde.

Andreas
29.06.2008, 13:42
Ragtek hat die Frage bereits beantwortet.

Rechte gehören in die Benutzergruppen und nicht in vBulletin Einstellungen.

MikeD
03.07.2008, 15:59
Erstmal vielen Dank für Eure Antworten :)

Zur 1. Frage:
Weil sie zu faul sind, weil sie nicht wissen wie man das mit den vb-Gruppenrechten macht, weil sie nicht wegn einer Berechtigung jetzt die ganze XML Datei "zambasteln" wollen.

So das sind die Gründe die mir einfallen würde.Hi Daniel,
da geb ich Dir Recht. Hab mich gestern Abend mal dran gegeben, einige Hacks, angefangen mit "PM Search", entsprechend auf die Benutzergruppen-Rechte anzupassen. Ehrlich gesagt hab ich mir da wirklich die Zähne ausgebissen und damit Stunden verbracht. Zuerst wollte es einfach nicht funktionieren, aber da ich hartnäckig in solchen Sachen bin, hab ich es letztendlich doch noch geschafft. Die größte Schwierigkeit war für mich das "bitfield". Und jetzt versteh ich auch, warum sich andere Coder nicht die Mühe machen, es so umzuschreiben, wie es uns hier im Thema nahe gelegt wird und dies einfach in den vB Einstellungen plaziert wird. Ist aber auch wirklich kein Wunder :)


Rechte gehören in die Benutzergruppen und nicht in vBulletin Einstellungen.Hi Andreas,
stimmt genau. Es ist wirklich viel übersichtlicher. Ich hab mir als Grundlage mal Stoebis Private Messages Attachments (http://www.vbulletin.org/forum/showthread.php?t=127113) Hack studiert und würde gerne von Dir mal wissen, was es eigentlich mit dem DEFAULT '3' Wert aufsich hat. Alles andere verstehe ich soweit. Nur kann ich mit diesem Wert nichts anfangen. Kannst Du mir bitte mal erklären, wofür der Wert '3' im unten stehendem Installations Code steht?

PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Andreas
03.07.2008, 18:38
Klaro: Das ist ein Bitfeld :D

1 => Kann Anhänge herunterladen
2 => Kann Anhänge hochladen

Somit 3: Kann Anhänge hoch- und herunterladen

Hättest Du aber auch selbst herausfinden könen wenn Du dir einfach mal die beiliegende bitfield-Datei angesehen hättest ;-)

Und mal ehrlich: Bitfelder/Benutzergruppenrechte sind wirklich nicht kompliziert:
- XML anlegen
- Phrasen anlegen
- Datenbankfeld anlegen

=> Fertig zu Benutzung.

MikeD
03.07.2008, 19:05
Klaro: Das ist ein Bitfeld :D

1 => Kann Anhänge herunterladen
2 => Kann Anhänge hochladen

Somit 3: Kann Anhänge hoch- und herunterladenMoment mal bitte: Das hieße dann doch: 1 OR 2 = 3 !!! Korrekt? Ich hab komischerweise immer mit AND gerechnet: 1 AND 2 = 0!

Hättest Du aber auch selbst herausfinden könen wenn Du dir einfach mal die beiliegende bitfield-Datei angesehen hättest ;-)Tja, wenn ich da natürlich falsch rechne und OR mit AND verwechsle :o Na ja, alle Anfang ist bekanntlicherweise schwer.

Und mal ehrlich: Bitfelder/Benutzergruppenrechte sind wirklich nicht kompliziert:
- XML anlegen
- Phrasen anlegen
- Datenbankfeld anlegen

=> Fertig zu Benutzung.Korrekt! Da geb ich Dir wirklich Recht, wenn man erst einmal den Bogen raus hat so wie Du :) Gib mir noch eine Weile, bis ich das ganze richtig verstehe. Diese Vorgehen ist wirklich besser. Jedenfalls besser und vor allem übersichtlicher als das ganze Gedöns in die vB Einstellungen zu packen :D

Andreas
03.07.2008, 19:15
Moment mal bitte: Das hieße dann doch: 1 OR 2 = 3 !!! Korrekt? Ich hab komischerweise immer mit AND gerechnet: 1 AND 2 = 0!

Ja, 1 OR 2 = 3 sowie 1 AND 2 = 0.

Du musst dir das einfach Binär vorstellen (LSB rechts)

CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Machen wir nun eine OR-Verrknüpfung (d.h. das Ergebnis-Bit ist 1 wenn eines der Bits 1 ist) kommt 11 bei raus (und das ist 3), machen wir eine AND-Verknüpfung (d.h. das Ergebnis-Bit ist 1 wenn beide Bits 1 sind) kommt 00 dabei raus => 0

MikeD
03.07.2008, 19:46
Aber natürlich. Stimmt. Wenn ich mich noch recht erinnere, stellt das niedrigstwertige Bit (Low Significant Bit) jenes Bit dar, welches am weitesten rechts in einer Dual / Binärzahl steht, wobei das höchstwertigste Bit (Most Significant Bit) am weitesten links in einer Dual / Binärzahl steht. Schönes Gefühl, wieder in der Schule zu sein :)

Andreas
03.07.2008, 20:35
Least, nicht Low - aber ansonsten passt es :-)

http://de.wikipedia.org/wiki/Bitwertigkeit

Wobei das nicht zwigend rechts sein muss, es kommt darauf wie das gespeichert wird -> Little/Big Endian.

MikeD
12.07.2008, 22:55
Hallo Andreas,
ich möchte mich nochmals für Deine Beschreibung und Hilfestellung hier in diesem Thema ganz recht herzlich bedanken. Bin zwar noch etwas wackelig damit auf den Beinen, da noch einigen Fragen offen sind, aber im großen und ganzen funktioniert es bis jetzt soweit ganz gut und hab mit diesem Weg schon mal meinen Lieblings Hack "PM Search" erfolgreich damit angepasst. Ist zwar nur ein kleiner Schritt, aber die großen Schritte folgen dann automatisch :D

Rechte gehören in die Benutzergruppen und nicht in vBulletin Einstellungen.Dem kann ich mich nur anschließen und es jedem empfehlen, es genau so zu tun!!! Ist zwar (aus meiner Sicht) etwas aufwendiger, aber auf jeden Fall enorm übersichtlicher :)

MikeD
13.07.2008, 12:26
Vielleicht wäre diese Information für andere eventuell noch hilfreich, um die Benutzerrechte der Bitfelder (bf = bitfield / ugp = usergroup permissions) entsprechend auszulesen...

Das Auslesen der Benutzerrechte geschieht nach dem folgenden Schema...
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------


Beispiel für bitfield_meinhack.xml
CODE:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------


Gemäß obigem Beispiel gilt dann:
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Sollten sich versehentlich hier Fehler eingeschlichen haben, so bitte ich dies entsprechend hier im Beitrag zu korrigieren :)