Affecter un groupe par défaut à un nouvel utilisateur LDAP

More
2 weeks 2 days ago #239716 by MMAA68
Bonjour à tous,

Comme il n'est jamais trop, avant tout, bonne année à tous !

Une question pas trop compliquée pour la commencer ... 

Nous utilisons le plugin LDAP pour nous connecter à Limesurvey.
Lorsqu'un utilisateur LDAP (Windows AD) se connecte la première fois à Limesurvey, il est est inscrit automatiquement dans la base de données des utilisateurs de Limesurvey.
Est-il possible à ce moment-là de lui affecter un groupe automatiquement (par exemple le groupe 'tout le monde') ?
Je n'ai pas trouvé cette option dans les différents paramètres. 
Si cela n'existe pas, j'avais pensé créer un trigger ...

Merci

Cordialement

Denis

Please Log in to join the conversation.

More
2 weeks 2 days ago #239717 by MMAA68
Je viens de voir que la question a été posée sur le forum anglais il y a un mois.
Visiblement il n'y a pas de solution immédiate sauf créer un plugin ?
(english forum, question : Join Group via LDAP?)

Denis

Please Log in to join the conversation.

More
2 weeks 2 days ago #239720 by MMAA68
Pour contourner le problème, j'ai créé un trigger qui semble fonctionner   :

Après création d'un nouvel utilisateur dans la table lime_users, le trigger s'exécute. Si l'utilisateur n'est pas affecté au groupe 3 'Tout le monde' sur notre site  (3, nouvel uid n'existe pas dans lime_user_in_groups), alors on insère 3, le nouvel uid dans la table lime_user_in_groups.

A adapter sur le site (remplacer 3 par le groupe souhaité, voir table lime :

DELIMITER $$
CREATE  TRIGGER lime_users_after_insert 
 AFTER INSERT ON lime_users  FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM limedb.lime_user_in_groups WHERE uid=NEW.uid and guid = 3) = 0 THEN
    INSERT INTO limedb.lime_user_in_groups VALUES (3,NEW.uid);               
END IF;
END $$

Est-ce que çà vous semble correct ?

Cordialement

Denis

Please Log in to join the conversation.

More
1 week 5 days ago - 1 week 5 days ago #239794 by MMAA68
En fait, il y a une erreur dans la requête sql : Il faut remplacer guid par ugid. 
IF (SELECT COUNT(*) FROM limedb.lime_user_in_groups WHERE uid=NEW.uid and ugid = 3) = 0 THEN
Rappel : 3 est également à remplacer par le n° du groupe souhaité selon votre site.

 
Last edit: 1 week 5 days ago by MMAA68.

Please Log in to join the conversation.

More
1 week 5 days ago #239805 by DenisChenu
Salut,

De mon coté : j'aurais copié le plugin existant LDAP et ajoté une fonction pour le placer dans le bon groupe : github.com/LimeSurvey/LimeSurvey/blob/21...AP/AuthLDAP.php#L303

C'est le gros avantages des plugins : pourvooir être adapté à ses besoins.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.

Please Log in to join the conversation.

More
1 week 5 days ago #239814 by MMAA68
Salut Denis,

Je n'y connais pas grand chose au plugin de Limesurvey et je suis plutôt allergique au php avec les classes, mais avec tes explications sous gitub, je comprends mieux le principe et comment cela fonctionne.  . Effectivement ta solution est sans doute bien plus propre ...

En tout cas, merci pour ta réponse.

A+

Denis

Please Log in to join the conversation.

More
1 week 5 days ago #239816 by DenisChenu
Bah, le principe est que cela fonctionne :)

Je suis pas très trigger sur les tables SQL perso …

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The following user(s) said Thank You: MMAA68

Please Log in to join the conversation.

Moderators: Nickko

Start now!

Just create your account and start using Limesurvey today.

Register now