8.3 Description des groupes d'utilisateurs
8.3.1 Caractéristiques des groupes d'utilisateurs
Les principaux attributs de la famille Groupe d'utilisateurs sont :
- Nom
grp_name
- Dénomination du groupe.
- Identifiant
us_login
-
Identifiant système.
Il doit être unique sur l'ensemble des comptes (utilisateurs, rôles et groupe).
Note : L'identifiant doit toujours être en minuscules. S'il comporte des majuscules elle seront transformées en minuscules lors de l'enregistrement.
- Mail
grp_mail
-
adresse mail du groupe.
Elle est constituée de la concaténation des mails des membres du groupe.
- Sans adresse mail de groupe
grp_hasmail
-
Permet de désactiver la génération du mail.
Les valeurs possibles sont :
-
yes
(valeur par défaut): génère l'adresse du groupe. -
no
: ne génère pas l'adresse du groupe.
Cette option peut être intéressante pour les groupes possédant un très grand nombre de membres. En effet, dans ce cas, le temps de calcul et notamment le temps d'écriture en base sont élevés.
En contrepartie, il sera impossible d'envoyer un mail à ce groupe. -
- Rôles associés
grp_roles
-
Tableau indiquant les rôles joués par les utilisateurs membres du groupes.
Les rôles sont des éléments déterminants pour la mise en place des droits
- Fonction
grp_type
- Permet de caractériser le groupe
- Identifiant système
us_whatid
-
Identifiant numérique système unique.
Cet identifiant est donné par le système lors de l'enregistrement. Il sert d'identifiant pour l'objet système associé au document. Voir Account.
8.3.2 Création d'un groupe
Il est possible de créer manuellement un groupe en créant un document de la
famille IGROUP
depuis l'interface, à condition de bénéficier des privilèges
suffisants.
Par programmation il suffit de créer un document de la famille groupe IGROUP
.
$dg = createDoc("","IGROUP"); if ($dg) { $dg->setValue("us_login","driver"); $dg->setValue("grp_name","Conducteurs"); $err = $dg->store(); if (!$err) { print "nouveau groupe n°".$dg->getValue("us_whatid"); // affichage de l'identifiant numérique système } else { print "erreur:$err"; } }
La méthode _IGROUP::getAccount() permet de récupérer l'objet système "Account". Voir le paragraphe AccountAjouter le lien vers le chapitre de la classe Account.
8.3.3 Ajout d'un groupe à un utilisateur
L'ajout direct d'un groupe à un utilisateur se fait depuis le groupe au moyen de
la méthode _IGROUP::insertDocument()
.
$g = new_Doc($dbaccess,"GADMIN"); $u = new_Doc($dbaccess,1075); // 1075 est la référence documentaire de l'utilisateur if ( $g->isAlive() && $u->isAlive() ) { printf("ajout de l'utilisateur %s [%d] au groupe %s [%d]\n", $u->getTitle(),$u->id,$g->getTitle(),$g->id); printf("Liste des groupes avant\n"); print_r($u->getAllUserGroups()); $err = $g->insertDocument($u->initid); if ($err) { print "Error:$err\n"; } else { printf("Liste des groupes après\n"); print_r($u->getAllUserGroups()); } }