Le type abstrait "Utilisateur" a changé.
Il apporte maintenant la donnée "user" qui est de type "user".
Pour les projets qui ont défini leur propre type de contenu "utilisateur" qui étend "org.ametys.plugins.userdirectory.Content.user", il faudra changer les metadataset du contenu pour prendre en compte la donnée "user" :
Si les utilisateurs de votre annuaire sont liés aux utilisateurs du CMS :
Lorsque vous allez changer le type de la SCC, certains paramètres vont se réinitialiser. Pour voir les anciens paramètres, vous pouvez regarder le fichier "synchronizable-collection.xml" dans le dossier /data/config.
Ce fichier sera écrasé au moment où vous sauvegardez.
var contentType = "org.ametys.plugin.defaultud.Content.uduser"; // TODO set this field
var sccId = "utilisateurs"; // TODO set this field
var fieldId = "login"; // TODO set this field
var unlock = function(node)
{
var lockToken = node.getProperty(RepositoryConstants.METADATA_LOCKTOKEN).getString();
var lockManager = node.getSession().getWorkspace().getLockManager();
lockManager.addLockToken(lockToken);
lockManager.unlock(node.getPath());
// Remove residual properties
node["setProperty(java.lang.String,javax.jcr.Value)"](RepositoryConstants.METADATA_LOCKTOKEN, null);
node["setProperty(java.lang.String,javax.jcr.Value)"](RepositoryConstants.METADATA_LOCKOWNER, null);
node.getSession().save();
}
var qm = session.getWorkspace().getQueryManager();
var query = qm.createQuery("//element(*, ametys:content)[@ametys-internal:contentType='" + contentType + "' "
+ "and @ametys-internal:scc = '" + sccId + "']", javax.jcr.query.Query.XPATH);
var nodes = query.execute().getNodes();
var nbContent = 0;
while (nodes.hasNext())
{
var content = nodes.next();
if (content.isLocked())
{
unlock(content);
}
content.setProperty("ametys:uniqueId", content.getProperty("ametys:" + fieldId).getString());
content.save();
nbContent++;
}
print(nbContent + " contenu(s) changé(s)");
queryPage = qm.createQuery("//element(*, ametys:defaultPage)[@ametys-internal:virtual ='org.ametys.plugins.userdirectory.page.VirtualUserDirectoryPageFactory']", javax.jcr.query.Query.XPATH);
var nodePages = queryPage.execute().getNodes();
var nbPage = 0;
while (nodePages.hasNext())
{
var page = nodePages.next();
var metadata = page.getProperty("ametys:user-directory-root-classification-metadata").getString();
if (metadata == fieldId)
{
page.setProperty("ametys:user-directory-root-classification-metadata", "uniqueId");
page.save();
nbPage++;
}
}
print(nbPage + " page(s) changée(s)");
Il est fort probable que dans vos projet, vous ayez créé votre propre helper XSLT pour surcharger la méthode getCurrentUserContent.
Vous pouvez maintenant supprimer cette surcharge et utiliser la méthode noyau getCurrentUserContent du helper org.ametys.plugins.userdirectory.transformation.xslt.UserXSLTHelper.
Il faudra aussi bien penser à remettre ce helper noyau dans vos XSL à la place du helper projet
De plus, il y a surement une condition de workflow qui a été créé dans votre projet pour faire appel à votre Helper personnalisé (cette condition est souvent appelée CheckCurrentUserContentCondition)
Elle n'est plus utile non plus, vous pouvez la supprimer (avec sa déclaration dans le plugin.xml)
Et vous pouvez à nouveau appeler la condition noyau org.ametys.plugins.userdirectory.workflow.CheckCurrentUserContentCondition.