Automatisez le verrouillage des pages dans AEM Sites Cloud avec une extension personnalisée de l’éditeur universel

Cet article explique comment automatiser le verrouillage des pages dans Adobe Experience Manager (AEM) Sites as a Cloud Service en créant une extension d’éditeur universel personnalisée et un service AEM authentifié, en s’assurant que les pages sont verrouillées après la première modification de contenu par un auteur.

Description description

Environnement

Adobe Experience Manager as a Cloud Service (toutes versions)

Problème/Symptômes

  • Les entreprises peuvent souhaiter éviter les conflits de modification simultanée en verrouillant automatiquement une page AEM Sites après la première modification de contenu intentionnelle, au lieu de recourir à un verrouillage manuel ou à un verrouillage lors de l’ouverture de la page.
  • Les pages ne sont pas automatiquement verrouillées après la première modification, ce qui nécessite une action manuelle et augmente le risque de conflits de modification.

Cause

L’extension de verrouillage de page AEM standard dans l’éditeur universel ne fournit pas d’API publique pour l’automatisation ou l’extension. L’automatisation prise en charge nécessite une extension d’éditeur universel personnalisée et un service AEM détenu par le client ou la cliente qui utilise des API documentées pour verrouiller des pages après des modifications de contenu.

Résolution resolution

Suivez les étapes ci-dessous pour résoudre le problème.

  1. Créez une extension personnalisée de l’éditeur universel.

    • Utilisez les points d’extensibilité de l’éditeur universel pour écouter le premier événement de changement de contenu intentionnel ou persistant. Ne déclenchez pas de verrouillage lors de l’ouverture ou de la sélection de la page.
    • Exemple (pseudo-code) :
    code language-none
    editor.on('contentChanged', (event) => {
        if (!pageLocked) {
            lockPage(event.pagePath);
            pageLocked = true;
        }
    });
    
  2. Mettre en œuvre un service AEM détenu par le client.

    • Créez un service OSGi côté serveur ou une servlet Sling dans AEM qui expose les points d’entrée pour :
    • Vérification du statut du verrouillage actuel
    • Acquisition d’un verrou de page
    • Déverrouiller une page
    • Utilisez l’API AEM WCM PageManager pour les opérations de verrouillage et de déverrouillage. Exemple (Java) :
    code language-none
    PageManager pageManager = resourceResolver.adaptTo(PageManager.class);
    Page page = pageManager.getPage(pagePath);
    
    if (page != null && !page.isLocked()) {
        page.lock();
    }
    
  3. Authentifiez les requêtes avec l’identité de l’éditeur.

    • L’extension de l’éditeur universel doit transférer le jeton du porteur IMS de l’éditeur actuel vers le point d’entrée AEM en tant qu’en-tête d’autorisation.
    • Assurez-vous que le Gestionnaire d’authentification du porteur Granite AEM est activé et configuré pour accepter l’identifiant client OAuth présent dans le jeton.
    • Le service AEM doit utiliser le ResourceResolver de la requête (par exemple, request.getResourceResolver()) pour s’assurer que le verrouillage est attribué à l’éditeur et non à un utilisateur du service.
  4. Gérez les conflits de verrouillage et les autorisations.

    • Validez le chemin d’accès à la page et résolvez la page.
    • Vérifiez si la page est déjà verrouillée et par qui.
    • Renvoie une réponse claire si le verrouillage ne peut pas être acquis (par exemple, s’il est déjà verrouillé par un autre auteur).
    • Appliquez les autorisations AEM et les protections CSRF.
  5. Mettez à jour l’état de l’éditeur.

    • Après une opération de verrouillage réussie, mettez à jour l’interface utilisateur de l’éditeur universel pour refléter le nouvel état de verrouillage.
    • Afficher un message clair si la page est déjà verrouillée par un autre auteur.
  6. Déverrouillez la page avant de la publier.

    • Les auteurs doivent déverrouiller manuellement la page avant la publication pour permettre aux processus de workflow de continuer.

Pour vérifier, testez l’extension en modifiant une page dans l’éditeur universel. Vérifiez que la page est verrouillée après la première modification du contenu et que seul l’auteur de la modification peut la déverrouiller.

Lecture connexe

Présentation de l’éditeur universel

recommendation-more-help
experience-cloud-kcs-help-kbarticles