10 years ago
1
Topic

Bonjour,

Je suis toujours (comme d'autres) à la recherche d'une solution pour que je puisse affecter un utilisateur à un groupe existant lors de sa création sans passer par l'arbre affiché par le champ "user_groups" par sécurité.

En effet j'ai créé un formulaire user (Seblod 3.3.5) qui est utilisé par un administrateur (pas un super admin), et cet administrateur gère des adhérents et peut les affecter à certains groupes (1 ou 2) selon les besoins.

Donc j'ai créé un champ "Liste de sélection multiple" (avec les valeurs correspondant aux groupes) et les éléments de stockage sont "Standard | Utilisateur | groups" comme le champ "user_groups" et comme cela a été expliqué plusieurs fois sur le forum.

Mais ça ne marche pas.

J'ai essayé d'ajouter aussi un champ "SD Concat" pour récupérer une chaîne depuis la liste de sélection multiple mais pas mieux.

J'ai essayé aussi manuellement avec un champ texte et des numéros de groupes séparés par des virgules et le même stockage et cela ne marche pas non plus.

Le mot "groups" n'étant pas un champ de la table users les méthodes essayées causent en plus un problème avec un module annexe qui lui l’interprète comme un champ, mais peu importe pour l'instant.

De plus je pense que les nouvelles versions de Seblod ne fonctionnent peut-être plus de la même façon que les anciennes pour les groupes utilisateurs puisque les explications que j'ai récupéré sur le forum (et l'ancien) n'aboutissent à rien.

Donc comment faire si cela est possible (ça doit l'être) ?

Merci d'avance.

Get a Book for SEBLOD
10 years ago
0
Level 1

Bon je me réponds à moi-même.

Comme je tournais en rond et que ça me gonflais j'ai utilisé une autre méthode.

D'abord j'utilise maintenant des cases à cocher pour sélectionner les groupes que je veux affecter (ça marche aussi avec des boutons radio).

J'utilise quand même l'arbre du champ "user_groups" mais je le place en position hidden pour que l'utilisateur ne le voit pas (mon administrateur de site) et ne fasse pas de bêtise en sélectionnant n'importe quoi.

Dans mes champs case à cocher j'utilise jquery pour savoir si la case est cochée et en fonction de ça j'active ou pas la case à cocher correspondante dans l'arbre du champ user_groups (caché en position hidden).

Exemple :

si ma case à cocher "Groupe A" est cochée alors :

jQuery('#ID_de_la_case_dans_l_arbre_user_groups').get(0).checked = true;

sinon

jQuery('#ID_de_la_case_dans_l_arbre_user_groups').get(0).checked = false;

Ainsi de suite pour ma case à cocher "Groupe B", etc.

De cette façon seuls les groupes souhaités apparaissent sur le formulaire, il ne peut donc pas y avoir de "mauvais" groupe (admin par exemple) ou d'abus.

Cette solution peut-être utilisé dans le cas ou des membres devraient choisir eux-même leur affectation.

Si ça peut aider en attendant mieux... Je ne marque pas le sujet comme résolu car j'estime qu'il doit y avoir une solution plus simple et plus "Seblod" pour ce problème.

(autre détail c'est un peu ch... de se retaper un message dans le forum parce qu'on a mis un peu trop longtemps à le saisir. Y a t'il un moyen de rallonger le délai de session ?)

A+

Get a Book for SEBLOD