Principes de base de la SRP et du contenu généré par l’utilisateur srp-and-ugc-essentials
Présentation introduction
Si vous ne connaissez pas le fournisseur de ressources de stockage (SRP) et sa relation avec le contenu généré par l’utilisateur, consultez les sites Stockage de contenu de la communauté et Présentation du fournisseur de ressources de stockage.
Cette section de la documentation fournit des informations essentielles sur la SRP et le contenu généré par l’utilisateur.
API StorageResourceProvider storageresourceprovider-api
L’API SocialResourceProvider (API SRP) est une extension de diverses API Sling Resource Provider. Il comprend la prise en charge de la pagination et de l’incrément atomique (utile pour le décompte et la notation).
Les requêtes sont nécessaires pour les composants SCF, car il est nécessaire de trier par date, utilité, nombre de votes, etc. Toutes les options de SRP ont des mécanismes de requête flexibles qui ne reposent pas sur le regroupement.
L’emplacement de stockage SRP incorpore le chemin d’accès au composant. L’API SRP doit toujours être utilisée pour accéder au contenu généré par l’utilisateur, car le chemin racine dépend de l’option SRP sélectionnée, comme ASRP, MSRP ou JSRP.
L’API SRP n’est pas une classe abstraite, il s’agit d’une interface. Une implémentation 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 ignorés lors de la mise à niveau vers une nouvelle version.
Les moyens d’utilisation de l’API SRP sont les utilitaires fournis, tels que ceux trouvés dans le package SocialResourceUtilities.
Lors de la mise à niveau à partir d’AEM 6.0 ou d’une version antérieure, il sera nécessaire de migrer le contenu créé par l’utilisateur pour toutes les applications de sécurité (SRP), pour lesquelles un outil Open Source est disponible. Voir Mise à niveau vers AEM Communities 6.3.
Méthode utilitaire d’accès au contenu généré par l’utilisateur utility-method-to-access-ugc
Pour accéder au contenu généré par l’utilisateur, utilisez une méthode du package SocialResourceUtilities qui renvoie un chemin approprié pour accéder au contenu créé par l’utilisateur à partir de la SRP et remplace la méthode obsolète 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 Refactorisation de SocialUtils.
Pour obtenir des instructions de codage, consultez la page Accès au contenu créé par l’utilisateur avec SRP.
Méthode utilitaire d’accès aux listes de contrôle d’accès utility-method-to-access-acls
Certaines mises en oeuvre de la SRP, telles que ASRP et MSRP, stockent le contenu de la communauté dans des bases de données qui ne fournissent aucune vérification de l’ACL. Les noeuds fantômes fournissent un emplacement dans le référentiel local auquel les listes de contrôle d’accès peuvent être appliquées.
À l’aide de l’API SRP, toutes les options de SRP effectuent la même vérification de l’emplacement fantôme 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 au contenu créé par l’utilisateur de la ressource.
Voici un exemple simple d’utilisation de la méthode resourceToACLPath() dans un 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
}
Emplacements de stockage associés au contenu généré par l’utilisateur ugc-related-storage-locations
Les descriptions suivantes de l’emplacement de stockage peuvent s’avérer utiles lors du développement avec JSRP ou peut-être MSRP. Il n’existe actuellement aucune interface utilisateur pour accéder au contenu généré par l’utilisateur stocké dans ASRP, comme c’est le cas pour JSRP (CRXDE Lite) et MSRP (outils MongoDB).
Emplacement du composant
Lorsqu’un membre entre dans le contenu généré par l’utilisateur dans l’environnement de publication, il interagit avec un composant dans le cadre d’un site AEM.
Un exemple de ce type de composant est le composant de commentaires qui existe dans le site Community Components Guide. Le chemin d’accès au noeud de commentaire dans le référentiel local est le suivant :
- Chemin d’accès du composant =
/content/community-components/en/comments/jcr:content/content/includable/comments
Emplacement du noeud fantôme
La création du contenu créé par l’utilisateur crée également un noeud fantôme auquel les listes de contrôle d’accès nécessaires sont appliquées. Le chemin d’accès au noeud fantôme correspondant dans le référentiel local est le résultat de l’ajout du chemin racine du noeud fantôme au chemin d’accès du composant :
- Chemin racine =
/content/usergenerated
- Noeud fantôme de commentaire =
/content/usergenerated/content/community-components/en/comments/jcr:content/content/includable/comments
Emplacement UGC
Le contenu généré par l’utilisateur est créé dans aucun de ces emplacements et ne doit être accessible qu’à l’aide d’une méthode utilitaire qui appelle l’API SRP.
- Chemin racine =
/content/usergenerated/asi/srp-choice
- Noeud UGC pour JSRP =
/content/usergenerated/asi/jcr/content/community-components/en/comments/jcr:content/content/includable/comments/srzd-let_it_be_
Soyez conscient : pour JSRP, le noeud UGC est seul présent sur l’instance AEM (auteur ou publication) sur laquelle il a été saisi. Si elle est saisie sur une instance de publication, la modération ne sera pas possible dans la console de modération de l’instance de création.
Informations connexes related-information
- Présentation du fournisseur de ressources de stockage - Présentation et utilisation du référentiel.
- Accès au contenu créé par l’utilisateur avec SRP - Instructions de codage.
- Refactorisation de SocialUtils - Mappage de méthodes d’utilitaire obsolètes aux méthodes d’utilitaire SRP actuelles.