Anzeigen/Ausblenden von "DitaMAP erstellen"im Ordnerkontextmenü im Webditor

In diesem Artikel erfahren Sie, wie Sie den Guides-Web-Editor anpassen können, um die Option "DitaMap erstellen"im Ordner-Kontextmenü auszublenden oder anzuzeigen, basierend auf Benutzer-/Gruppenberechtigungen.
In diesem Anwendungsfall wird diese Option für alle Benutzer ohne Autorenberechtigung ausgeblendet.

Voraussetzungen

Wir nutzen das AEM Guides Extension-Paket, mit dem Sie die Benutzeroberfläche Ihrer App gemäß Ihren Anforderungen anpassen können.
In dieser Dokumentation erhalten Sie weitere Einblicke in die Funktionsweise des Guides Extension Framework.

Jetzt erfahren Sie, wie Sie das Kontextmenü des Ordners anpassen, um diese Option für alle Benutzer ohne Autorenberechtigung auszublenden.

Wie Sie im folgenden Snippet sehen können, ist die Option "DitaMap erstellen"für einen Autor-Benutzer sichtbar.

Option DitaMap erstellenanzeigen

Lassen Sie uns nun sehen, wie wir diese Option mithilfe des Guides Extension Framework ausblenden können.

Implementierungsschritte

Die Implementierung ist in folgende Teile unterteilt:

  • Änderungen im Ordner_options-Controller

    Jedem Kontextmenü ist eine Controller-ID zugeordnet. Dieser Controller verarbeitet die On-Event-Funktionalität für die verschiedenen Kontextmenüoptionen.

    In diesem Beispiel passen wir das Ordner-Kontextmenü an, um die Option "DitaMap erstellen"für Nicht-Autoren auszublenden. Dazu nehmen wir Änderungen an der Datei folder_options.ts vor, die unter /src im Handbücher-Framework-Repository für Erweiterungen vorhanden ist.

    Wir verwenden "viewState"als "ERSETZEN", um diese Option im Kontextmenü auszublenden.
    Wir rufen ein neues Widget in diesem Ordner_options über den Schlüssel 'id' auf.

const folderOptions = {
  id: "folder_options",
  contextMenuWidget: "repository_panel",
  view: {
    items: [
      {
        component: "widget",
        id: "customditamap",
        target: {
          key: "displayName",
          value: "DITA Map",
          viewState: VIEW_STATE.REPLACE,
        },
      },
    ],
  },
};
  • Erstellung eines neuen Widgets zur Verarbeitung der Logik

    Eine neue Widget-Erstellung (customoptions.ts) ist erforderlich, um die Logik zu schreiben, um diese Option nur für Benutzer ohne Autorenberechtigung auszublenden. Um dies zu erreichen, haben wir den 'show'-Schlüssel verwendet, der als Umschalter in unserer JSON-Struktur fungiert.

    Sie können Ihr eigenes externes Servlet schreiben, um die Gruppendetails zu überprüfen. Auf diese Weise können Sie auch Ordnermenüoptionen für Ihre benutzerspezifische Gruppe anpassen.
    In diesem Beispiel haben wir den OOTB-AEM "rolesapi"-Aufruf genutzt, um die Benutzerdetails abzurufen und die Antwort in "isAuthor"festzulegen, wie in den oben genannten Snippets gezeigt.

const folderOptions = {
  id: "customditamap",
  view: {
    component: "button",
    quiet: true,
    icon: "breakdownAdd",
    label: "DITA Map",
    "on-click": "createNewDitaMap",
    show: "@extraProps.isAuthor",
  },
};

Dadurch können wir die Schaltfläche mit dem Titel "Dita Map", basierend auf dem Wert von 'show', ausblenden.

Wir haben einen Controller hinzugefügt, um das Attribut 'isAuthor' im Modell festzulegen. Dies kann mit der folgenden Syntax im Controller erfolgen.

this.model.extraProps.set("key", value);

Hier ist der Schlüssel "isAuthor"und der Wert ist die Antwort vom rolesapi-Aufruf.
Wir haben auch das Ereignis "createNewDitaMap"definiert, um die Option "DitaMap erstellen"zu aktivieren (für Autor-Benutzer).

controller: {
    init: function () {
      this.model.extraProps.set("isAuthor", false);

      rolesApiResponse.then((result) => {
        console.log(result);
        this.model.extraProps.set(
          "isAuthor",
          result["/content/dam"].roles.authors
        );

        console.log("testresult" + result["/content/dam"].roles.authors);
      });
    },
    createNewDitaMap() {
      repositoryController && repositoryController.next("create_new.map");
    },
  },
  • Hinzufügen des angepassten Codes

    Importieren Sie die Dateien folder_options.ts und customoptions.ts in die Datei index.ts unter /src.

Testen

  • Melden Sie sich bei AEM mit einem Benutzer an, der nicht zur Gruppe der Autoren gehört. Die Option DitaMap erstellen würde im Kontextmenü eines jeden Ordners ausgeblendet, wie unten dargestellt.
    Dieser Anwendungsfall wurde zu GIT hinzugefügt. Bitte finden Sie die entsprechenden Ressourcen unten.

DitaMap-Option ausblenden

Verwandte Ressourcen

recommendation-more-help
11125c99-e1a1-4369-b5d7-fb3098b9b178