Anlegen neuer Zugriffsgruppe über AdminAccessService nicht möglich

Thema wurde von WinHelp GmbH, 2. September 2021 erstellt.

  1. WinHelp GmbH

    WinHelp GmbH Erfahrener Benutzer

    Registriert seit:
    2. April 2019
    Beiträge:
    79
    Danke erhalten:
    26
    Danke vergeben:
    20
    Hallo Zusammen,

    wir wollten eine Zugriffsgruppe auf höchster Ebene einfügen und haben hierzu den folgenden Artikel aus der Entwicklerdoku verwendet: https://developers.gambio.de/tutorials.html?v=4.5.1.0_beta1&p=verwendung-der-zugriffsverwaltung

    Das Code Beispiel aus der Doku einmal kopiert und versucht auszuführen. Nur leider kann man als parentGroup 0 nicht verwenden, sobald ich eine existierende parentGroup (z.B. 1) angebe wird der Code ohne Fehler ausgeführt.

    Code:
    PHP:
    $adminAccessService StaticGXCoreLoader::getService('AdminAccess');

    # Create new admin access group
    $name = new KeyValueCollection([
        
    'EN' => 'Example group',
        
    'DE' => 'Beispiel-Gruppe',
    ]);
    $description = new KeyValueCollection([
        
    'EN' => 'A new example group',
        
    'DE' => 'Eine neue Beispiel-Gruppe',
    ]);
    $parentGroup = new IdType(0);
    $sortOrder = new IntType(100);
    $createdGroup $adminAccessService->createNewGroup(
        
    $name,
        
    $description,
        
    $parentGroup,
        
    $sortOrder
    );
    Die Fehlermeldung lautet:
    Code:
    Uncaught GroupNotFoundException: Group by page identifier: ID 0 not found. in GXMainComponents/Services/System/AdminAccess/Repositories/Readers/AdminAccessGroupReader.inc.php:181
    Gemäß Doku:
    Hinweis: Die Variable parentGroup enthält die ID der übergeordneten Zugriffsgruppe. Standardmäßig sollte diese 0 sein. Sollte eine übergeordnete Zugriffsgruppe größer 0 angegeben werden, dann gilt, dass ein Admin nur dann für die erstellte Gruppe berechtigt ist, wenn er auch die Berechtigung für die übergeordnete Gruppe besitzt. Eine Verschachtelung ist momentan nur bis zur zweiten Ebene möglich. Im Gambio Admin werden Untergruppen bei der Verwaltung der Berechtigungen entsprechend eingerückt dargestellt.

    Achtung: Desweiteren stimmt das Codebeispiel in der Doku nicht. Die Sprachen müssen groß geschrieben werden also z.B. EN oder DE und nicht en / de wie in der Doku. Denn sonst erhalte ich den Fehler:
    Code:
    Uncaught InvalidArgumentException: Given keyName not found: EN in /GXEngine/Shared/KeyValueCollection.inc.php:45
     
  2. Mirko (Gambio)

    Mirko (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    27. März 2017
    Beiträge:
    41
    Danke erhalten:
    22
    Danke vergeben:
    5
    Moin

    Das ist wirklich ärgerlich und scheint, so wie ich das gerade im Quellcode nachgeprüft habe, auch ein Fehler in der Service-Klasse zu sein. Leider kann ich daher nun keine schnelle Lösung bieten und muss dich damit vertrösten, dass ich ein Bugticket eröffnet habe. Wenn sich deine Anpassungen auf die 4.5 beschränken steht dir aber ein neuer Service offen, der auf der neuen Architektur basiert: https://developers.gambio.de/docs/4...4/framework/business-components/admin-access/

    Wichtiger Hinweis: In der aktuellen Dokumentation wird dort noch die Language ID für die sprachabhängigen Werte verwendet, dies ändert sich noch mit der kommenden Beta2 (oder spätestens zu finalen Version)!


    Danke für den Hinweis, dass werden wir nachbessern.
     
  3. WinHelp GmbH

    WinHelp GmbH Erfahrener Benutzer

    Registriert seit:
    2. April 2019
    Beiträge:
    79
    Danke erhalten:
    26
    Danke vergeben:
    20
    Hallo Mirko,

    danke für die Antwort ;-)

    Aktuelle Anfragen entwickeln wir noch auf Basis der 4.4 somit, benötigen wir noch die alte Architektur. Ich werde mich aber ohnehin demnächst mit der neuen Architektur in 4.5 Auseinandersetzen müssen und werde das dann mit dem neuen mal ausprobieren, denke da wird der Service dasselbe verhalten zeigen.