+ list($alias, $alias_fqdn) = explode('@', $redir);
+ if ($get_forlife) {
+ // It might happen that the "secondary" forlife alias (the one
+ // based on the secondary domaine name) is used as a target; we
+ // then need to canonicalize it to the main domain.
+ if ($alias_fqdn == $globals->mail->domain2) {
+ return $alias . "@" . $globals->mail->domain;
+ }
+ return $redir;
+ }
+
+ // We now have a valid alias, which has to be translated to an hruid.
+ $res = XDB::query("SELECT u.hruid
+ FROM auth_user_md5 AS u
+ LEFT JOIN aliases AS a ON (a.id = u.user_id AND a.type IN ('alias', 'a_vie'))
+ WHERE a.alias = {?}", $alias);
+ if ($res->numRows()) {
+ return $res->fetchOneCell();
+ }
+ }
+
+ call_user_func($callback, $data);
+ return false;
+
+ // Otherwise, we do suppose $data is an email redirection.
+ } else {
+ $res = XDB::query("SELECT $field
+ FROM auth_user_md5 AS u
+ LEFT JOIN aliases AS a ON (a.id = u.user_id AND a.type = 'a_vie')
+ LEFT JOIN emails AS e ON (e.uid = u.user_id)
+ WHERE e.email = {?}", $data);
+ if ($res->numRows() == 1) {
+ return $res->fetchOneCell();
+ } else if ($res->numRows() > 0) {
+ if (S::has_perms()) {
+ Platal::page()->trigError("Il y a $user_count utilisateurs avec cette adresse mail : " . join(', ', $res->fetchColumn()));
+ } else {
+ $res->free();
+ }