Show Menu
SUJETS×

SRP et UGC Essentials

Présentation

Si vous ne connaissez pas le fournisseur de ressources d’enregistrement (SRP) et sa relation avec le contenu généré par l’utilisateur (UGC), consultez la section Présentation de l’Enregistrement de contenu communautaire et du fournisseur de ressources d’ Enregistrement.
Cette section de la documentation contient des renseignements essentiels sur le PRS et le CU.

API StorageResourceProvider

L’API SocialResourceProvider (API SRP) est une extension de plusieurs API du fournisseur de ressources Sling. Il comprend la prise en charge de la pagination et de l’incrément atomique (utile pour le décompte et le score).
Les requêtes sont nécessaires pour les composants de la SCF, car il est nécessaire de trier par date, utilité, nombre de votes, etc. Toutes les options du PSR sont dotées de mécanismes de requête flexibles qui ne reposent pas sur le cumul.
L'emplacement de l'enregistrement SRP incorpore le chemin du composant. L'API SRP doit toujours être utilisée pour accéder à l'UGC car le chemin racine dépend de l'option SRP sélectionnée, telle que ASRP, MSRP ou JSRP.
L'API SRP n'est pas une classe abstraite, c'est une interface. Une mise en oeuvre personnalisée ne doit pas être entreprise à la légère, car les avantages des améliorations futures apportées aux implémentations internes seraient négligés lors de la mise à niveau vers une nouvelle version.
Les méthodes d’utilisation de l’API SRP sont les utilitaires fournis, tels que ceux qui se trouvent dans le package SocialResourceUtilities.
Lors de la mise à niveau à partir de AEM 6.0 ou d'une version antérieure, il sera nécessaire de migrer UGC pour tous les fichiers SRP, pour lesquels un outil Open Source est disponible. See Upgrading to AEM Communities 6.3 .
Historiquement, les utilitaires d’accès à l’UGC se trouvaient dans le package SocialUtils, qui n’existe plus.
Pour les utilitaires de remplacement, voir Refactorisation de SocialUtils.

Méthode d'utilitaire d'accès à l'UGC

Pour accéder à l’UGC, utilisez une méthode issue du package SocialResourceUtilities qui renvoie un chemin d’accès approprié pour accéder à l’UGC à partir de SRP et remplace la méthode déconseillée trouvée dans le package SocialUtils.
Voici un exemple minimal d'utilisation de la méthode resourceToUGCStoragePath() dans une servlet :
import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;

@Reference
private SocialResourceUtilities socialResourceUtilities;

@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
  String ugcPath = socialResourceUtilities.resourceToUGCStoragePath(request.getResource());
  // rest of servlet
}

Pour d’autres remplacements de SocialUtils, voir SocialUtils Refactoring .
Pour obtenir des instructions de codage, consultez Accès à l’UGC avec SRP .
La ressource de cheminToUGCStoragePath() renvoyée ne convient pas à la vérification de l'ACL.

Méthode d'utilitaire pour accéder aux listes ACL

Certaines implémentations SRP, telles que ASRP et MSRP, stockent le contenu de la communauté dans des bases de données qui ne fournissent aucune vérification ACL. Les noeuds d’ombre fournissent un emplacement dans le référentiel local auquel les ACL peuvent être appliquées.
A l’aide de l’API SRP, toutes les options SRP effectuent la même vérification de l’emplacement de l’ombre avant toutes les opérations CRUD.
Pour vérifier les listes de contrôle d'accès, utilisez une méthode qui renvoie un chemin approprié pour vérifier les autorisations appliquées à l'UGC de la ressource.
Voici un exemple simple d’utilisation de la méthode resourceToACLPath() dans une servlet :
import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;

@Reference
private SocialResourceUtilities socialResourceUtilities;

@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
  String aclPath = socialResourceUtilities.resourceToACLPath(request.getResource());
  // rest of servlet
}

Le chemin renvoyé par resourceToACLPath() ne convient pas pour accéder à l'UGC lui-même.