[GX 3.9.x] Neue Adminrechte: Eigene Scripte einfügen?

Thema wurde von Manni_HB, 11. März 2018 erstellt.

  1. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Gibt es eine Anleitung wie man eigene Scripte in das neue Adminrechte-System einfügt?
     
  2. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Zusatzfrage:
    Wie ist in einem Script, dass nicht im Adminmenü aufgeführt ist, die Abfrage, ob Admin "Mustermann" die Berechtigung zum Modul "dingsbumms.php" hat?
     
  3. Mirko (Gambio)
    Mirko (Gambio) Administrator
    Mitarbeiter
    Registriert seit:
    27. März 2017
    Beiträge:
    41
    Danke erhalten:
    22
    Danke vergeben:
    5
    Generell kann für das Überprüfen, Anlegen etc. von Berechtigungen, Rollen und Gruppen (auf letzteres gehe ich gleich genauer ein) der AdminAccessService verwendet werden. Man erhält den Services (wie auch alle anderen) über den StaticGXCoreLoader:

    Code:
    $adminAccessService = StaticGXCoreLoader::getService('AdminAccess');
    Eine richtige Auflistung der Möglichkeiten in Form eines Tutorials gibt es derzeit noch nicht, aber ggf. hilft es erst einmal, wenn man sich das dazugehörige Interface AdminAccessServiceInterface einmal anschaut. (Ein Tutorial werden wird wohl demnächst einmal nachreichen.)

    Wichtig für das Verständnis und die Nutzung des Service ist es, dass man die Begriffe AdminAccessUser (Admin), AdminAccessRole (Rolle), AdminAccessPermisison (Berechtigung) und AdminAccessGroup (Zugriffsgruppe) richtig versteht und somit auch richtig verwendet.

    Die Begriffe AdminAccessUser und AdminAccessRole sollte recht einleuchtend sein:
    - Beim ersten handelt es sich um einen Adminaccount, welche über die CustomerId referenziert wird.
    - Beim zweiten handelt es sich um eine Zugriffsrolle, welche einem AdminAccessUser zugeordnet werden kann. Ein AdminAccessUser kann dabei mehrere Rollen besitzen.

    Der Begriff AdminAccessGroup umfasst eine Sammlung von Seiten, Controllern und AjaxHandlern des Shops. Dies haben wir gemacht, um die Verwaltung der Rechte möglichst komfortabel zu gestalten, so dass ein Admin nicht für jeden Controller etc. sagen muss, ob die Nutzung erlaubt ist. Die Gruppen sind dabei so aufgebaut, dass alle Gruppen nur zusammengehörige Seiten, Controller und AjaxHandler enthalten.

    Eine AdminAccessPermission ist eine Kombination aus AdminAccessGroup und AdminAccessRole, welche bestimmte Merkmale (ist Lesen/Schreiben/Löschen erlaubt) besitzt. Im AdminAccess wird zwar bereits zwischen Lese-, Sschreib- und Lösch-Berechtigungen unterschieden, dies macht der Shop jedoch noch nicht. Innerhalb des Shops wird bisher nur die Lese-Berechtigung ausgewertet. Für die eigene Verwendung kann dies aber theoretisch schon genutzt werden.

    Ich hoffe, dass sich damit schon mal die wichtigsten Fragen beantworten lassen. Wenn nicht, dann kann ich auf Nachfrage noch auf weitere Einzelheiten genauer eingehen.
     
  4. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Die Einträge in TB "admin_access" sind mit der neuen Rechteverwaltung ohne Bedeutung => richtig?
    Den Array "$admin_access" gibbet nicht mehr bzw. ist leer => richtig?
     
  5. Mirko (Gambio)
    Mirko (Gambio) Administrator
    Mitarbeiter
    Registriert seit:
    27. März 2017
    Beiträge:
    41
    Danke erhalten:
    22
    Danke vergeben:
    5
    Genau die alten Einträge aus der Tabelle admin_access werden nicht mehr verwendet. Wir haben diese mit dem Update aber noch nicht gelöscht, um sicherzustellen, dass andere Module, die diese Tabelle verwenden auch weiterhin funktionieren.
     
  6. Dennis (MotivMonster.de)
    Dennis (MotivMonster.de) G-WARD 2013/14/15/16
    Registriert seit:
    22. September 2011
    Beiträge:
    31.303
    Danke erhalten:
    6.268
    Danke vergeben:
    1.118
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Mannis Modul sagt mir aber das ich keine Admin Rechte hätte, daher is er ja nu am basteln. Scheint mit der übernahme / weiternutzung nicht zu stimmen
     
  7. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Bei guter Führung bekommst Du sie wieder :D
    Forum_AdminRechte_New.png
     
  8. Dennis (MotivMonster.de)
    Dennis (MotivMonster.de) G-WARD 2013/14/15/16
    Registriert seit:
    22. September 2011
    Beiträge:
    31.303
    Danke erhalten:
    6.268
    Danke vergeben:
    1.118
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Na hoff ich doch. hab einige neue Status wegen Shipcloud Sendungsverfolgung bekommen.
    Wobei ich es für andere Modul EXTREM hinderlich finde das über den Bestellstatus zu lösen statt über ein extra Feld wie z.B. den LKW der ja eh schon in der Übersicht war. Alle Module die auf Status Basis arbeiten musst un anpassen
     
  9. Mirko (Gambio)
    Mirko (Gambio) Administrator
    Mitarbeiter
    Registriert seit:
    27. März 2017
    Beiträge:
    41
    Danke erhalten:
    22
    Danke vergeben:
    5
    Weiß hier nun nicht, wie genau die alte Tabelle verwendet wurde, aber ggf. hilft es auch die Berechtigung "Unbekannte Module" zu aktivieren. Dies ist unsere Fallback-Berechtigung für Module, Pages und AjaxHandler, die keiner AdminAccessGroup zugeordnet sind.
     
  10. Dennis (MotivMonster.de)
    Dennis (MotivMonster.de) G-WARD 2013/14/15/16
    Registriert seit:
    22. September 2011
    Beiträge:
    31.303
    Danke erhalten:
    6.268
    Danke vergeben:
    1.118
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Manni hats ja gerichtet mit neuen Rechtesystem. VIelleicht kann er euch dazu was sagen wie es vorher war und warum das fallback nicht funktionierte