Groupes de contributeurs en base de données personnalisée

Dans le processus d'intégration du CMS Ametys, il est nécessaire de définir de quelle manière seront gérés les groupes de contributeurs.

Le CMS Ametys propose un certains de gestionnaires de groupes prédéfinis. Il est cependant possible de définir son propre gestionnaire pour utiliser une base de groupes déjà existante dans votre système d'information.

Le gestionnaire pouvant être utilisés dans ce cas est le gestionnaire relatifs à une base de données: org.ametys.runtime.plugins.core.group.jdbc.ModifiableJdbcGroupsManager

Connexion à la base de données

Si la base de données n'est pas la base de données par défaut du CMS, il faut tout d'abord définir un nouveau pool de connexion à cette base de données ou "data source".

Rendez-vous sur la page Création d'une source de données SQL (data source) et suivez la procédure pour créer un nouveau pool de connexion.

Déclaration d'une nouvelle base de groupes d'utilisateurs

Le nouveau gestionnaire de groupes d'utilisateurs est déclaré dans le fichier plugin.xml d'un plugin.

Vous aurez peut-être besoin de créer un nouveau plugin; pour cela suivez  les instructions de la page Architecture d'un plugin Ametys

Exemple de déclaration d'une base de groupes

<extension point="org.ametys.runtime.group.GroupsManager"
            id="org.ametys.custom.CustomJdbcGroupsManager"
            class="org.ametys.runtime.plugins.core.group.jdbc.ModifiableJdbcGroupsManager">
	<pool>custom.datasource.jdbc.pool</pool>
    <list>
    	<table>Groups</table> 	<!-- Nom de la table SQL portant les groupes -->
        <id>Id</id>				<!-- Nom de la colonne contenant l'identifiant du groupe -->
        <label>Label</label>    <!-- Nom de la colonne contenant le libellé du groupe -->
    </list>
    <composition>
    	<table>Groups_Users</table> <!-- Nom de la table SQL reliant un groupe aux utilisateurs -->
        <group>Group_Id</group>		<!-- Nom de la colonne contenant l'identifiant du groupe -->
        <user>Login</user>			<!-- Nom de la colonne contenant l'identifiant de l'utilisateur -->
    </composition>
</extension>            

Il est de votre ressort de modifier et maintenir le script SQL correspondant à votre table de groupes.

Utilisation

Vous pourrez ensuite sélectionner ce nouveau point d'extension soit via l'outil "Plugins et Workspaces" accessible depuis l'interface d'administration ou modifier directement le fichier WEB-INF/param/runtime.xml (voir Fichier runtime.xml) .

Extrait du fichier runtime.xml

<extensions>
    <org.ametys.runtime.group.GroupsManager>org.ametys.custom.CustomJdbcGroupsManager</org.ametys.runtime.group.GroupsManager>
    ...
</extensions>