Récupérer uid utilisateur qui vient de créer un compte

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je cherche à récupérer l'uid d'un utilisateur qui vient de créer un nouveau compte. L'uid de ce dernier ne se retrouve pas dans l'objet global 'user'. Du fait que l'UID de la table 'users' n'est pas en autoincrément, je ne peux pas utiliser un LAST_INSERT_ID().

A l'heure actuelle, au niveau du formulaire 'user-register-form', je fais une redirection vers la création d'un contenu. Dans le hook_from_alter de ce dernier, je récupère l'uid de l'utilisateur dont le champ 'CREATED' est égal au 'timestamp' de l'objet global user :

global $user;
    
if($user->roles[1] == 'anonymous user')
  {
   $result = db_query('SELECT u.uid FROM {users} u WHERE u.created = :timestamp', array(':timestamp' => $user->timestamp));
   $_SESSION['uidUtilisateur'] = $result->fetchColumn(0);
  }

Cependant, je crains que deux (ou plusieurs) utilisateurs puissent être créés dans un même timestamp. D'ailleurs, ce champ n'est pas déclaré comme étant unique dans la table users.

Quelqu'un aurait une idée sur la manière de récupérer avec certitude l'uid de l'utilisateur qui vient de créer un compte?

Merci d'avance

Forum : 
Version de Drupal :