J’ai réussi à avoir une version qui marche, des fois que ça puisse en intéresser d’autres. J’utilise donc l’application user_sql pour nextcloud. J’ai commencé par renseigner l’hôte ainsi que les identifiants de votre base de données pour votre site wordpress de façon à ce que l’application puisse aller chercher dedans. La documentation de l’application user_sql donne une configuration pour wordpress, mais les commentaires mentionnés sur la page de l’application ne me donnaient pas confiance sur le fait qu’elle n’allait pas bousiller la base de wordpress. Du coup par sécurité, j’ai créé des vues sur les tables wordpress en utilisant ALGORITHM=TEMPTABLE
, ce qui d’après la doc de mariaDB rend la vus non éditable.
Pour les utilisateurs, j’ai utilisé la vue suivante :
CREATE
ALGORITHM = TEMPTABLE
VIEW `nc_users`
AS select ID, user_login, user_pass, display_name, user_email from wp_users;
Ensuite sur wordpress, nous avons un greffon qui gère les groupes. Avec ce greffon, pour récupérer la liste des groupes, j’utilise la vue suivante :
CREATE
ALGORITHM = TEMPTABLE
VIEW `nc_groups`
AS select t.name from wp_terms as t inner join wp_term_taxonomy as tt on tt.term_id = t.term_id where tt.taxonomy = "user-group";
Enfin pour déterminer quel utilisateur coller dans quel groupe, j’ai créé la vue suivante :
CREATE
ALGORITHM = TEMPTABLE
VIEW `nc_usergroups`
AS select u.user_login, t.name from wp_users as u inner join wp_term_relationships as tr on u.ID = tr.object_id inner join wp_term_taxonomy as tt on tr.term_taxonomy_id = tt.term_taxonomy_id inner join wp_terms as t on tt.term_id = t.term_id where tt.taxonomy = "user-group";
Une fois ces trois vues crées, j’ai renseigné les noms des vues et les colonnes à utiliser dans les paramètres de user_sql. À noter que pour moi, l’algorithme de hashage à configurer pour les pots de passe était Portable PHP password
Je ne suis absolument pas un spécialiste de SQL, j’ai suivi la doc, je n’ai aucune idée des performances donc si vous avez mieux je suis preneur.