Mitgliedsbeitrag: Einstellungen für andere Rollen freigeben

Hast du Probleme oder Fragen bei der Einrichtung bestimmter Plugins ? Diese kannst du hier loswerden.
Antworten
PKV
Beiträge: 12
Registriert: 15. Nov 2017, 14:20

Mitgliedsbeitrag: Einstellungen für andere Rollen freigeben

Beitrag von PKV »

Hallo alle zusammen,

mit den letzten Aktualisierungen des Plugins Mitgliedsbeitrag sind irgendwann einige Einstellungen in einen Bereich gewandert, der nur von Administratoren erreichbar ist und bearbeitet werden kann. Das macht die Arbeit für unseren Kassenwart etwas umständlich, da er für gewissen Dinge dann erst zu einem Administrator gehen muss.
Leider ist das im Code auch so hart verdrahtet, dass hier ohne direkt im Code zu patchen keine Änderung möglich ist.

Code: Alles auswählen

if (!$gCurrentUser->isAdministrator())
jeweils in den Files mitgliedsbeitrag.php und preferences.php
Kann man das vielleicht irgendwie konfigurierbar machen, dass man weiteren Rollen die Rechte an den Einstellungen des Plugins geben kann? Ich möchte ungern darauf angewiesen sein, jeden Kassenwart immer auch gleich zum Admin machen zu müssen, da nicht jeder so IT-affin ist wie unser derzeitiger Kassenwart.

Mit besten Grüßen,
PKV



Über

Code: Alles auswählen

$gCurrentUser->getRoleMemberships()
bekommt man die Rollenzugehörigkeit, oder über

Code: Alles auswählen

$gCurrentUser->isMemberOfRole($roleId)
kann man direkt die Zugehörigkeit zu einer Rolle prüfen. Das irgendwie in die Prüfung mit reinpfrimeln und konfigurierbar machen, welche Rollen in die Einstellungen dürfen.
rmb
Plugin-Developer
Beiträge: 625
Registriert: 10. Mai 2011, 19:56
Wohnort: 86856

Re: Mitgliedsbeitrag: Einstellungen für andere Rollen freigeben

Beitrag von rmb »

Hallo PKV,

arbeitet nur der Kassenwart mit dem Plugin oder gibt es noch andere Personen (außer Administratoren)?

Gruß
rmb
PKV
Beiträge: 12
Registriert: 15. Nov 2017, 14:20

Re: Mitgliedsbeitrag: Einstellungen für andere Rollen freigeben

Beitrag von PKV »

Hallo rmb,

im Moment ist das außer den Administratoren nur der Kassenwart. Es ist aber nicht ausgeschlossen, dass das in Zukunft anders wird. Im Moment sind z.B. beide Administratoren bei uns auch im Vorstand, aber es ist durchaus wahrscheinlich, dass es in Zukunft Vorstände geben wird, die mit dem Plugin arbeiten müssen, aber keine Administratoren sind.

Falls es also darum geht, dass es einfacher ist, den Kassenwart zusätzlich fest zu verdrahten, anstatt die erlaubten Rollen konfigurierbar zu machen, dann wäre uns in unserem Fall eine nachhaltige Lösung mit konfigurierbaren Rollen lieber, als ein fester Einbau der Rolle Kassenwart. Auch dann, wenn die konfigurierbare Lösung wesentlich länger dauert, weil wir ja einen schnell durchzuführenden Workaround durch die Anpassung des Quellcodes haben, der erstmal funktioniert, aber eben auf Dauer hässlich ist und ein potentielles Sicherheitsrisiko darstellt, falls sich aus irgendeinem Grund die Rollen-ID-Zuordnung ändert.

Grüße,
PKV
rmb
Plugin-Developer
Beiträge: 625
Registriert: 10. Mai 2011, 19:56
Wohnort: 86856

Re: Mitgliedsbeitrag: Einstellungen für andere Rollen freigeben

Beitrag von rmb »

Hallo PKV,

in Deinem Fall ist es ein überschaubarer Kreis der Zugriff auf das Plugin benötigt. Ich würde deshalb die Berechtigungen so abändern, dass alle, die das Plugin aufrufen dürfen, gleichzeitig auch Zugriff auf das Modul Einstellungen erhalten.

Im Endergebnis heißt das, dass alle Angehörigen der Rolle die unter "Sichtbar für" im Menü eingetragen sind, auch das Modul Einstellungen aufrufen können. Die Einschränkung auf die Rolle Administrator fällt weg.

Dazu musst Du folgende Änderungen im Code durchführen (alle Zeilenangaben beziehen sich auf Mitgliedsbeitrag Version 4.3.2):

in preferences.php Zeile 25

Code: Alles auswählen

if (!$gCurrentUser->isAdministrator())
ändern in

Code: Alles auswählen

if (!isUserAuthorized($_SESSION['pMembershipFee']['script_name']))
in mitgliedsbeitrag.php Zeile 243

Code: Alles auswählen

if ($gCurrentUser->isAdministrator())
ändern in

Code: Alles auswählen

if (isUserAuthorized($_SESSION['pMembershipFee']['script_name']))
Gruß
rmb
PKV
Beiträge: 12
Registriert: 15. Nov 2017, 14:20

Re: Mitgliedsbeitrag: Einstellungen für andere Rollen freigeben

Beitrag von PKV »

Hallo rmb,

ersmal danke für Deine Rückmeldung.

Ich bin selbst seit über 10 Jahren Softwareentwickler und habe in der Zeit auch einige Jahre in PHP entwickelt. Was ich tun kann, um die installierte Version entsprechend zurechtzupatchen, weiß ich. Das ist kein Problem.

Ich habe aber keine Lust, das jedes Mal bei der Aktualisierung nachzuziehen. Außerdem könnte ich mir vorstellen, dass andere das Problem auch haben, weswegen ich es hier im Forum angesprochen habe.

Letztlich wäre für mich auch ein einfaches Häkchen als Konfigurationsmöglichkeit valide, über das ein Administrator einfach umschalten kann, ob jeder in die Einstellungen kommt, für den das Modul sichtbar ist, oder nur Administratoren, also den Änderungsvorschlag von Dir konfigurierbar zu machen.

Mal schauen, vielleicht schaffe ich es ja mal, das direkt in Code zu gießen. Dann könnt Ihr es einfach übernehmen, fals Ihr die Ressourcen dafür nicht habt.
Antworten