Aufruf durch Benutzergruppen

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Antworten
vfrblue
Ehemaliges Teammitglied
Beiträge: 1993
Registriert: 22.11.2016 18:46

Aufruf durch Benutzergruppen

Beitrag von vfrblue »

Hallo,
ist es möglich, eine Erweiterung durch die Gruppen-ID der Benutzergruppen aufzurufen?
Im Klartext: Bestimmte Gruppen (Systemgruppen und benutzerdefinierte Gruppen) sollen eine Erweiterung nur sehen und benutzen können.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7859
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Aufruf durch Benutzergruppen

Beitrag von Kirk »

Hallo
Was für eine Erweiterung meinst du?
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Aufruf durch Benutzergruppen

Beitrag von Mahony »

Hallo
Du könntest mittels dieses Snippets --> Template Variable zur Prüfung der Gruppen Mitgliedschaft abfragen, ob der Benutzer in der betreffenden Gruppe ist.
Damit kannst du Dinge im Template (im Style) ausblenden.

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Aufruf durch Benutzergruppen

Beitrag von canonknipser »

Hier eine pauschale Antwort zu geben, fällt schwer.
Zuerst einmal ist die Beantwortung folgender Frage wichtig:
Kirk hat geschrieben:Was für eine Erweiterung meinst du?
Wenn du dich pauschal auf alle möglichen Extension beziehst, dann kann die Antwort nur lauten:
Das kommt darauf an
  • Einige Extensions bringen ihre eigene Berechtigungen mit, die du dann ggf. gezielt für die betreffenden Benutzergruppen im ACP vergeben kannst
  • bei einigen Extensions kannst du über Schalter mit Gruppen-IDs, wie von mahony mit dem Snipplet (ACHTUNG: Das sind Anpassungen im Code von phpBB, die du ggf. bei jedem Update erneut vornehmen musst!) vorgeschlagen oder mit dieser Extension -> https://www.phpbb.com/customise/db/exte ... _variables (die das gleiche macht) bestimmte Aktionen in den Templates steuern. Dazu musst du aber gewisse Grundkenntnisse in der Template-Bearbeitung haben und solltest immer über einen Child-Style arbeiten, nicht direkt auf den Original-Dateien deines Styles (ebenfalls weil du sonst die Anpassungen nach jedem Update des Styles neu vornehmen musst)
  • Bei anderen Extensions musst du ggf. Anpassungen im Code der jeweiligen Extension vornehmen (zu Codeanpassungen s.o.)
  • ...
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
vfrblue
Ehemaliges Teammitglied
Beiträge: 1993
Registriert: 22.11.2016 18:46

Re: Aufruf durch Benutzergruppen

Beitrag von vfrblue »

Vielen dank für die Antworten.
Es geht um diese Ext.:http://www.dmzx-web.net/viewtopic.php?f=49&t=1315
Die "overall_header_navigation_append.html" hat folgenden Inhalt:

Code: Alles auswählen

<!-- IF S_EDS_EXIST -->
<li <!-- IF not PHPBB_IS_32 -->class="small-icon icon-downloads"<!-- ENDIF --> data-last-responsive="true"><a href="{U_DM_EDS}" title="{L_EDS_DOWNLOADS}" role="menuitem"><!-- IF PHPBB_IS_32 --><i class="icon fa fa-download" aria-hidden="true"></i><!-- ENDIF --><span>{L_EDS_DOWNLOADS}</span></a></li>
<!-- IF DM_EDS_USE_UPLOAD --><li <!-- IF not PHPBB_IS_32 -->class="small-icon icon-upload"<!-- ENDIF --> data-last-responsive="true"><a href="{U_DM_EDS_UPLOAD}" title="{L_EDS_UPLOAD}" role="menuitem"><!-- IF PHPBB_IS_32 --><i class="icon fa fa-upload" aria-hidden="true"></i><!-- ENDIF --><span>{L_EDS_UPLOAD}</span></a></li><!-- ENDIF -->
<!-- ENDIF -->
Die Nav-Bar der User mit Rechten für die Ext. hat folgendes Bild:
[ externes Bild ]
Ohne Rechte sieht es so aus:
[ externes Bild ]
und das möchte ich weg haben für Gäste, kürzlich registrierte Benutzer und registrierte Benutzer.
Wir hatten ja die DL-Ext. von Oxpus installiert, aber viele User fanden die Handhabung umständlich und haben deswegen die Ext. nicht genutzt.
So suchen wir für eine einfache Lösung.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7859
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Aufruf durch Benutzergruppen

Beitrag von Kirk »

Du installierst dir diese Erweiterung
Dann öffnest du die Datei overall_header_navigation_append.html im Verzeichnis root/ext/dmzx/downloadsystem/styles/prosilver/template/event
Finde:

Code: Alles auswählen

<!-- IF S_EDS_EXIST -->
Ersetzen mit:

Code: Alles auswählen

<!-- IF S_EDS_EXIST and not S_GROUP_x -->
Wobei x mit der Gruppen ID zu ersetzen ist.
Danach den Foren und Browser Cache leeren.
vfrblue
Ehemaliges Teammitglied
Beiträge: 1993
Registriert: 22.11.2016 18:46

Re: Aufruf durch Benutzergruppen

Beitrag von vfrblue »

Hallo Udo,
ich habe deine Erweiterung installiert und die Benutzergruppen 2, 6 und 7 eingetragen, damit diese ausgeschlossen werden.
Da diese Gruppen die Erweiterung doch noch sehen konnten, habe ich das "not" vor "S_GROUP" entfernt. Danach konnten diese Gruppen nicht mehr den Button sehen.
Aber auch alle anderen, registrierten Gruppen wie Admins und Moderatoren haben jetzt keinen Zugriff.
Wenn ich jetzt die Anweisung für die registrierten User (6) rausnehme und dann die anderen Gruppen, wie Admins, Moderatoren und sonstige benutzerdefinierte Gruppen per " and not S_GRUOP_x" einbinde, bleiben dan die "normal" registrierten User aussen vor?
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Aufruf durch Benutzergruppen

Beitrag von canonknipser »

In der Gruppe 2 (Registrierte Benutzer) stecken alle Benutzer drin - auch Mods, Admins etc.

Durch die Extension wird für jede Gruppe, in der der der Benutzer ist, ein entsprechender Template-Switch (S_GROUP_x) erstellt, also z.B.
für "normale Benutzer"
  • S_GROUP_2
für Globale Moderatoren
  • S_GROUP_2 (weil er ja auch ein registrierter Benutzer ist)
    und
  • S_GROUP_4
für den Standard-Site-Adminstrator
  • S_GROUP_2 (weil er ja auch ein registrierter Benutzer ist)
    und
  • S_GROUP_4 (weil er ja per default auch ein globaler Moderator ist)
    und
  • S_GROUP_5
für einen normalen Moderator, der in einer von dir angelegten Gruppe Nummer 47 ist
  • S_GROUP_2 (weil er ja auch ein registrierter Benutzer ist)
    und
  • S_GROUP_47
Am besten ist es also, wenn du "Spezialgruppen" einschließt und nicht Standardgruppen ausschließt:
Also, wenn nur Globale Moderatoren und evtl. Moderatoren, die bspw. in der Gruppe 47 sind, zulassen willst:

Code: Alles auswählen

<!-- IF S_EDS_EXIST AND (S_GROUP_4 OR S_GROUP_47) -->
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
vfrblue
Ehemaliges Teammitglied
Beiträge: 1993
Registriert: 22.11.2016 18:46

Re: Aufruf durch Benutzergruppen

Beitrag von vfrblue »

Code: Alles auswählen

<!-- IF S_EDS_EXIST AND (S_GROUP_4 OR S_GROUP_47) -->
Danke, das war's. Jetzt ist es so, wie ich es haben wollte. 8)
(Ich und programmieren: 2 Welten treffen aufeinander ...)
Antworten

Zurück zu „Extension Bastelstube“