Récupérer les utilisateurs d'un site Plone dans un autre site Plone
Si on souhaite reprendre des utilisateurs d'un site Plone d'origine vers un site Plone de destination en gardant tous les informations (utilisateurs/groupes/propriétés/mots de passe), voici la marche à suivre en utilisant CPUtils
Installer CPUtils
Récupérer la version courante sur http://svn.communesplone.org/svn/communesplone/CPUtils/trunk/ en l'ajoutant dans la section [svnproducts] de votre buildout. Ceci est à effectuer aussi bien dans l'instance Plone d'origine que dans l'instance Plone de destination
Démarrer/Redémarrer l'instance.
CPUtils est un produit très peu intrusif qui ne fait qu'ajouter des ExternalMethods à la racine de Zope.
Pour ajouter toutes les méthodes disponibles dans CPUtils d'une fois, ajoutez une ExternalMethod à la racine de Zope avec les paramètres suivants :
id: install Title: CPUtils install Module Name: Products.CPUtils.utils Function Name: install
Après l'avoir exécutée (en cliquant sur l'onglet "Test" de l'ExternalMethod), quelques ExternalMethods sont ajoutées, trois d'entre elles nous intéressent :
- cputils_store_user_properties : exporte les propriétés (portal_memberdata) des utilisateurs et les stocke dans un Document DTML
- cputils_recreate_users_groups : recrée les utilisateurs et groupes depuis un acl_users.zexp importé
- cputils_load_user_properties : rétablit les propriétés (portal_memberdata) depuis un Document DTML
Exporter depuis l'instance Plone d'origine
Exporter le dossier acl_users
Se positionner dans la ZMi à la racine du site Plone d'origine, sélectionner (cocher) le dossier acl_users et cliquer sur le bouton "Import/Export" au bas de la page. Le fichier acl_users.zexp est ainsi créé
Exporter les propriétés des utilisateurs (portal_memberdata)
Se positionner dans la ZMi à la racine du site Plone d'origine et appeler l'ExternalMethod "cputils_store_user_properties" dans l'url (par exemple : http://localhost:8080/monsiteorigine/cputils_store_user_properties). Ceci a pour effet de créer le Document DTML "users_properties" à la racine du site Plone d'origine. Exporter en .zexp cet élément comme cela a été le cas avec le dossier acl_users ci-dessus
L'export des données est terminé, importons le tout dans le site Plone de destination maintenant!
Auparavant il faut copier les 2 fichiers zexp vers le dossier "import" de l'instance Plone de destination
Importer dans l'instance Plone de destination
Récupération des .zexp
A la racine du site en Plone de destination, créer un dossier (un élément Folder dans Zope) appelé "oldacl". Y importer les éléments acl_users et users_properties exportés ci-dessus.
Exécution des ExternalMethods d'import des utilisateurs/groupes/propriétés
Se positionner dans la ZMi à la racine du site Plone de destination et appeler l'ExternalMethod "cputils_recreate_users_groups" dans l'url (par exemple : http://localhost:8080/monsitedestination/cputils_recreate_users_groups). Ceci a pour effet de recréer les utilisateurs et groupes dans le site Plone de destination. Pour terminer, appeler alors l'ExternalMethod "cputils_load_user_properties" dans l'url (par exemple : http://localhost:8080/monsitedestination/cputils_load_user_properties). Si le message de log affiché vous semble correct, appelez la même url en passant "?dochange=1" à la fin (par exemple : http://localhost:8080/monsitedestination/cputils_load_user_properties?dochange=1). Ceci appliquera la mise à jour des propriétés de l'utilisateur
Et voilà, les utilisateurs/groupes/propriétés sont maintenant les même qu'avant. Rien n'a été perdu, pas même les mots de passe...

