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());
    }
}
×