La référence “système” des utilisateurs est la base anakeen (nom donnée à l'installation par défaut). Les utilisateurs et groupes d'utilisateurs sont définis dans la table users de la base anakeen. L'identifiant unique d'un utilisateur est le champ id de cette table. Cet identificateur est un nombre supérieur à 9. Les identifiants de 1 à 9 sont utilisés pour des comptes système.

  • Identifiant 1 : compte admin : le super administrateur
  • Identifiant 2 : le groupe all : le groupe dans lequel les nouveaux utilisateurs appartiennent par défaut
  • Identifiant 3 : compte anonymous : l'utilisateur utilisé pour les connexions anonymes.
  • Identifiant 4 à 9 : non utilisé.

Le login suivi du domaine de messagerie est une clé unique. Ainsi, il ne peut y avoir qu'un seul jean.martin dans le domaine extern (le domaine par défaut). Par contre, il peut y avoir un jean.martin@zoo.net et jean.martin@zoo.org si le module de gestion de la messagerie est installée avec la gestion des domaines zoo.net et zoo.org.

À partir de cette identifiant système, un document décrivant l'utilisateur est créé dans la base freedom. Ce document reprend les informations systèmes auquelles sont ajoutées des informations sur la personne tel que son adresse. La référence à ce document peut être obtenu à partir du champ fid (Freedom IDentificator) de la table users de la base anakeen.

Exemple :

Soit 13 l'identifiant de jean.martin.

// test.php
include_once("FDL/Class.Doc.php");
 
$dbaccess=GetParam("FREEDOM_DB");
$u = new User("",13);
 
if ($u->isAffected()) {
  $fid=$u->fid;
  printf(sprintf("\nmon login est %s",
		 $u->login));
  $du=new_doc($dbaccess,$fid);
  if ($du->isAlive()) {
    printf(sprintf("\nmon nom est %s %s\n",
		   $du->getValue("us_fname"),
		   $du->getValue("us_lname")));
  }
 }

Cela donne le résultat suivant :

[root@chewbacca ~]# wsh --api=test

mon login est jean.martin
mon nom est martin jean

À partir de l'identifiant documentaire on peut aussi récupérer l'identifiant système à l'aide de l'attribut us_whatid.

$wid=$du->getValue("us_whatid");

:!: L'identifiant documentaire n'est pas une référence. Si le document est supprimé (généralment par accident), un nouveau document serea créé avec une nouvelle référence. Par contre l'identificateur système ne peut pas être modifié.

contribution/cookbook/users/id.txt · Dernière modification: 03/04/2008 11:21 (édition externe)