From: Pierre Habouzit (MadCoder Date: Mon, 10 Jan 2005 15:33:03 +0000 (+0000) Subject: cleaning, need to write the page that does marketing ops for ONE user X-Git-Tag: xorg/old~489 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=026b6101de5264e2c738635440c75415327ceb91;p=platal.git cleaning, need to write the page that does marketing ops for ONE user git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-262 --- diff --git a/htdocs/marketing/search.php b/htdocs/marketing/search.php deleted file mode 100644 index b5d4db9..0000000 --- a/htdocs/marketing/search.php +++ /dev/null @@ -1,119 +0,0 @@ -xdb->query("SELECT user_id FROM auth_user_md5 where matricule={?} AND perms!='pending'", Env::getInt('xmat')); - if ($row = $res->fetchOneAssoc()) { - exit_error("Le matricule existe déjà dans la table auth_user_md5."); - } - - $res = $globals->xdb->query('SELECT * FROM auth_user_md5 WHERE matricule={?}', Env::getInt('xmat')); - $row = $res->fetchOneAssoc(); - - new_admin_page('marketing/search.tpl'); - - $page->assign('row', $myrow); - - $prenom = $myrow["prenom"]; - $nom = $myrow["nom"]; - $promo = $myrow["promo"]; - $from = "Equipe Polytechnique.org "; - - $page->run(); - break; - - case "Envoyer le mail": - require_once('xorg.misc.inc.php'); - - $res = $globals->xdb->query("SELECT user_id FROM auth_user_md5 where matricule={?} AND perms!='pending'", Env::getInt('xmat')); - if ($row = $res->fetchOneAssoc()) { - exit_error("Le matricule existe déjà dans la table auth_user_md5."); - } - - if (!isvalid_email_redirection(Env::get('mail'))) { - exit_error("L'email n'est pas valide."); - } - - $res = $globals->xdb->query( - "SELECT prenom,nom,promo,FIND_IN_SET('femme', flags) FROM auth_user_md5 WHERE matricule={?}", - $_REQUEST['xmat']); - if (!list($prenom,$nom,$promo,$femme) = $res->fetchOneRow()) { - exit_error("Le matricule n'a pas été trouvé dans table auth_user_md5."); - } - - // calcul de l'envoyeur - list($envoyeur) = explode('@', $_REQUEST["from"]); - - $prenom_envoyeur=strtok($envoyeur,"."); - $prenom_envoyeur=ucfirst($prenom_envoyeur); - $nom_envoyeur=strtok(" "); - $nom_env1=strtok($nom_envoyeur,"-"); - $nom_env2=strtok(" "); - if($nom_env2) { - $envoyeur=$prenom_envoyeur." ".$nom_env1." ".ucfirst($nom_env2); - } else { - $envoyeur=$prenom_envoyeur." ".ucfirst($nom_env1); - } - - $nom_envoyeur=ucfirst($nom_envoyeur); - - // tirage aléatoire de UID et mot de passe - $user_id = rand_url_id(12); - $date = date("Y-m-j"); - - // decompte du nombre d'utilisateurs; - $res = $globals->xdb->query("SELECT COUNT(*) FROM auth_user_md5"); - $num_users = $res->fetchOneCell(); - - // calcul du login - $mailorg = make_forlife($prenom,$nom,$promo); - - $globals->xdb->execute("UPDATE auth_user_md5 SET last_known_email={?} WHERE matricule={?}", Env::get('mail'), Env::get('xmat')); - $globals->xdb->execute("INSERT INTO envoidirect SET matricule={?}, uid={?}, email={?}, sender={?},date_envoi={?}", - Env::get('xmat'), $user_id, Env::get('mail'), Env::get('sender'), $date); - // pas d'erreur pour l'insert - - // envoi du mail à l'utilisateur - require_once('xorg.mailer.inc.php'); - $mymail = new XOrgMailer('marketing.utilisateur.tpl'); - - $mymail->assign('from', $_REQUEST["from"]); - $mymail->assign('to', $_REQUEST["mail"]); - $mymail->assign('femme', $femme); - $mymail->assign('baseurl', $globals->baseurl); - $mymail->assign('user_id', $user_id); - $mymail->assign('num_users', $num_users); - $mymail->assign('mailorg', $mailorg); - $mymail->assign('envoyeur', $envoyeur); - $mymail->send(); - - new_admin_page('marketing/utilisateurs_marketing.tpl'); - $page->run(); - break; -} - -?> diff --git a/htdocs/marketing/volontaire.php b/htdocs/marketing/volontaire.php index 2aac200..bcc9c7b 100644 --- a/htdocs/marketing/volontaire.php +++ b/htdocs/marketing/volontaire.php @@ -22,46 +22,23 @@ require_once("xorg.inc.php"); new_admin_page('marketing/volontaire.tpl'); -// traitement des paramètres éventuels -if (!empty($_GET["del"])) { - $globals->xdb->execute("DELETE FROM marketing WHERE id ={?}" , Get::get('del')); - $page->trig("Entrée effacée"); -} -if (!empty($_GET["done"])) { - $globals->xdb->execute("UPDATE marketing SET flags = CONCAT(flags,',envoye') WHERE id = {?}", Get::get('done')); - $page->trig("Entrée mise à jour"); -} - -$sql = "SELECT m.id, m.expe, m.dest, m.email, - i.promo, i.nom, i.prenom, i.last_known_email, - u.promo AS spromo, u.nom AS snom, u.prenom AS sprenom, a.alias AS forlife, - FIND_IN_SET('mail_perso', m.flags) AS mailperso - FROM marketing AS m - INNER JOIN auth_user_md5 AS i ON i.matricule = m.dest - INNER JOIN auth_user_md5 AS u ON u.user_id = m.expe - INNER JOIN aliases AS a ON (u.user_id = a.id AND a.type='a_vie') - WHERE NOT FIND_IN_SET('envoye', m.flags)"; -$page->assign('neuves', $globals->xdb->iterator($sql)); - -$sql = "SELECT a.promo, a.nom, a.prenom, - m.email, a.perms!='pending' AS inscrit, - sa.promo AS spromo, sa.nom AS snom, sa.prenom AS sprenom - FROM marketing AS m - INNER JOIN auth_user_md5 AS a ON a.matricule = m.dest - INNER JOIN auth_user_md5 AS sa ON sa.user_id = m.expe - WHERE FIND_IN_SET('envoye', m.flags)"; -$page->assign('used', $globals->xdb->iterator($sql)); - $res = $globals->xdb->query( - "SELECT COUNT(a.perms != 'pending') AS j, - COUNT(i.matricule) AS i, - 100 * COUNT(a.nom) / COUNT(i.matricule) as rate - FROM marketing AS m - INNER JOIN auth_user_md5 AS i ON i.matricule = m.dest - INNER JOIN auth_user_md5 AS sa ON sa.user_id = m.expe - LEFT JOIN auth_user_md5 AS a ON (a.matricule = m.dest AND a.perms!='pending') - WHERE FIND_IN_SET('envoye', m.flags)"); -$page->assign('rate', $res->fetchOneAssoc()); + "SELECT + DISTINCT a.promo + FROM register_marketing AS m + INNER JOIN auth_user_md5 AS a ON a.user_id = m.uid + ORDER BY a.promo"); +$page->assign('promos', $res->fetchColumn()); + +if (Env::has('promo')) { + $sql = "SELECT a.nom, a.prenom, + m.email, sa.alias AS forlife + FROM register_marketing AS m + INNER JOIN auth_user_md5 AS a ON a.user_id = m.uid AND a.promo = {?} + INNER JOIN aliases AS sa ON (m.sender = sa.id AND sa.type='a_vie') + ORDER BY a.nom"; + $page->assign('addr', $globals->xdb->iterator($sql, Env::get('promo'))); +} $page->run(); ?> diff --git a/htdocs/search.php b/htdocs/search.php index da10360..15d0d97 100644 --- a/htdocs/search.php +++ b/htdocs/search.php @@ -35,6 +35,7 @@ if (Env::has('quick')) { $qSearch = new QuickSearch('quick'); $fields = new SFieldGroup(true, array($qSearch)); + $offset = new NumericSField('offset'); if ($qSearch->isempty()) { @@ -53,7 +54,7 @@ if (Env::has('quick')) { LEFT JOIN contacts AS c ON (c.uid='.Session::getInt('uid').' AND c.contact=u.user_id) LEFT JOIN watch_nonins AS w ON (w.ni_id=u.user_id AND w.uid='.Session::getInt('uid').') '.$globals->search->result_where_statement.' - WHERE '.$fields->get_where_statement().' + WHERE '.$fields->get_where_statement().(logged() && Env::has('nonins') ? ' AND u.perms="pending" AND u.deces=0' : '').' HAVING mark>0 ORDER BY '.(logged() && Env::has('mod_date_sort') ? 'date DESC,' :'') .implode(',',array_filter(array($fields->get_order_statement(), 'u.promo DESC, NomSortKey, prenom'))).' diff --git a/include/select_user.inc.php b/include/select_user.inc.php deleted file mode 100644 index 0afcfc2..0000000 --- a/include/select_user.inc.php +++ /dev/null @@ -1,61 +0,0 @@ -run(); - } - - if (Env::has("xmat")) { - $where = "matricule=".Env::getInt('xmat'); - } else { - $nom = Env::get('nomR'); - $prenom = Env::get('prenomR'); - - // calcul de la plus longue chaine servant à l'identification - $chaine1 = strtok($nom," -'"); - $chaine2 = strtok(" -'"); - $chaine = ( strlen($chaine2) > strlen($chaine1) ) ? $chaine2 : $chaine1; - - $rq = strlen(Env::get("promoR"))==4 ? "AND promo=".Env::getInt("promoR") : ""; - - $where = "prenom LIKE '%".addslashes($prenom)."%' AND nom LIKE '%".addslashes($chaine)."%' $rq ORDER BY promo,nom"; - } - - $res = $globals->xdb->query( - "SELECT matricule,matricule_ax,promo,nom,prenom,comment,appli,flags,last_known_email,deces,user_id - FROM auth_user_md5 - WHERE perms NOT IN ('admin','user') AND deces=0 AND $where"); - - new_admin_page('marketing/utilisateurs_select.tpl'); - $page->assign('nonins', $res->fetchAllAssoc()); - $page->assign('id_actions', $id_actions); - $page->run(); -} - -function exit_error($err) { - global $page; - new_admin_page('marketing/utilisateurs_recherche.tpl'); - $page->assign('err', $err); - $page->run(); -} -?> diff --git a/templates/marketing/index.tpl b/templates/marketing/index.tpl index 18674b8..fa883eb 100644 --- a/templates/marketing/index.tpl +++ b/templates/marketing/index.tpl @@ -30,16 +30,11 @@ - Premier contact : - Chercher un non inscrit   |   - Marketing promo   |   - Sollicitations faites - - - - - Emails : - Utiliser les adresses données par les inscrits + Chercher un non inscrit +   |   + Marketing promo +   |   + Addresses données par les inscrits diff --git a/templates/marketing/recap.tpl b/templates/marketing/recap.tpl deleted file mode 100644 index 9e33da2..0000000 --- a/templates/marketing/recap.tpl +++ /dev/null @@ -1,82 +0,0 @@ -{*************************************************************************** - * Copyright (C) 2003-2004 Polytechnique.org * - * http://opensource.polytechnique.org/ * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software * - * Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ***************************************************************************} - - -

- Liste des sollicités inscrits récemment -

- - - - - - - - - - {iterate from=$recents item=it} - - - - - - - {/iterate} -
Date Ins.ParNominscription
{$it.success|date_format}{$it.sender|lower} - {$it.prenom} {$it.nom} - ({$it.promo}) - {$it.date_succes|date_format}
-

-{$recents->total()} Polytechniciens ont été sollicités et se sont inscrits. -

- -

- Liste des sollicités non inscrits -

- - - - - - - - - {iterate from=$notsub item=x} - - - - - - - {/iterate} -
Dernier envoiParNomNb mails testés
- {if $x.last != '0000-00-00'}{$x.last|date_format:"%d %b %y"}{else}-{/if} - {$x.sender|lower} - {$x.promo} {$x.nom} {$x.prenom} - - {$x.nb} -
- -

-{$notsub->total()} Polytechniciens ont été sollicités et ne se sont toujours pas inscrits. -

- - -{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/marketing/search.tpl b/templates/marketing/search.tpl deleted file mode 100644 index 7d38a99..0000000 --- a/templates/marketing/search.tpl +++ /dev/null @@ -1,90 +0,0 @@ -{*************************************************************************** - * Copyright (C) 2003-2004 Polytechnique.org * - * http://opensource.polytechnique.org/ * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software * - * Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ***************************************************************************} - - - -

Envoyer un mail de pré-inscription

- -

-Le nom, prénom et promotion sont pris dans la table d'identification. Le login sera automatiquement -calculé à partir de ces données. -

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Envoyer un mail -
- Prénom : - - {$row.prenom} -
- Nom : - - {$row.nom} -
- Promo : - - {$row.promo} -
- From du mail : - - -
- Adresse e-mail devinée : - - -
- - - -
-
- - -{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/marketing/utilisateurs_edit.tpl b/templates/marketing/utilisateurs_edit.tpl deleted file mode 100644 index ba9b91c..0000000 --- a/templates/marketing/utilisateurs_edit.tpl +++ /dev/null @@ -1,90 +0,0 @@ -{*************************************************************************** - * Copyright (C) 2003-2004 Polytechnique.org * - * http://opensource.polytechnique.org/ * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software * - * Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ***************************************************************************} - - -

- Editer la base de tous les X -

-{if $success eq "1"} -

-La modification de la table identification a été effectuée. -

-

-Retour -

-{else} -

-Attention la table d'identification contenant la liste des polytechniciens sera -modifiée !! (aucune vérification n'est faite) -

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Editer -
Prénom : - -
Nom : - -
Femme : - -
Promo : - -
Décés : - -
- Voir sa fiche sur le site de l'AX -
- - -
-
-
-{/if} -{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/marketing/utilisateurs_inscrire.tpl b/templates/marketing/utilisateurs_inscrire.tpl deleted file mode 100644 index 95cba42..0000000 --- a/templates/marketing/utilisateurs_inscrire.tpl +++ /dev/null @@ -1,89 +0,0 @@ -{*************************************************************************** - * Copyright (C) 2003-2004 Polytechnique.org * - * http://opensource.polytechnique.org/ * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software * - * Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ***************************************************************************} - - -

- Inscrire manuellement un X -

-{if $success eq "1"} -

-Paramètres à transmettre:
-Login={$mailorg}
-Password={$pass_clair} -

-

-Pour éditer le profil, -clique sur ce lien. -

-{else} -

-Les prénom, nom, promo sont pré-remplis suivant la table d'identification. -Modifie-les comme tu le souhaites. Une autre solution consiste à éditer -d'abord la table d'identification (écran précédent) avant d'inscrire cet X. -

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Créer un login -
Prénom d'inscription - -
Nom d'inscription - -
Promotion - -
Login - -
Date de naissance - -
- - -
-
-{/if} - -{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/marketing/utilisateurs_marketing.tpl b/templates/marketing/utilisateurs_marketing.tpl deleted file mode 100644 index fa486b8..0000000 --- a/templates/marketing/utilisateurs_marketing.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{*************************************************************************** - * Copyright (C) 2003-2004 Polytechnique.org * - * http://opensource.polytechnique.org/ * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software * - * Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ***************************************************************************} - - - -

- E-mail de préinscription -

-

-L'e-mail a été envoyé et la pré-inscription a -été insérée en attente de confirmation. -

- - -{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/marketing/utilisateurs_recherche.tpl b/templates/marketing/utilisateurs_recherche.tpl deleted file mode 100644 index e6c482a..0000000 --- a/templates/marketing/utilisateurs_recherche.tpl +++ /dev/null @@ -1,79 +0,0 @@ -{*************************************************************************** - * Copyright (C) 2003-2004 Polytechnique.org * - * http://opensource.polytechnique.org/ * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software * - * Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ***************************************************************************} - - -

- Chercher un X non inscrit -

- -{if $err} -

{$err}

-{/if} - -

-Bien remplir tous les champs pour passer à la page suivante. -

- -

-Si un champ est inconnu ou incertain, le remplir quand même avec -le caractère % (pourcent). La promo peut rester vide. -

- -
- - - - - - - - - - - - - - - - - - - -
- Recherche marketing -
- Prénom : - - -
- Nom : - - -
- Promo : - - -
- -
-
- - -{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/marketing/utilisateurs_select.tpl b/templates/marketing/utilisateurs_select.tpl deleted file mode 100644 index 4480646..0000000 --- a/templates/marketing/utilisateurs_select.tpl +++ /dev/null @@ -1,58 +0,0 @@ -{*************************************************************************** - * Copyright (C) 2003-2004 Polytechnique.org * - * http://opensource.polytechnique.org/ * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software * - * Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ***************************************************************************} - - - -

- Selectionner un X non inscrit -

- -

-Sélectionne l'X que tu veux inscrire ou à qui tu veux envoyer le mail de pré-inscription. -

- -
- - - - - - - - - - -
- Sélection de l'X non inscrit -
- -
- {foreach from=$id_actions item=id_action} -    - {/foreach} -
-
- - -{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/marketing/volontaire.tpl b/templates/marketing/volontaire.tpl index 5e6c3a1..09a2be5 100644 --- a/templates/marketing/volontaire.tpl +++ b/templates/marketing/volontaire.tpl @@ -18,66 +18,43 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************} +

Marketing volontaire

+

+Choix de la promo : +

+

+{foreach from=$promos item=p} +{$p} +{cycle values=",,,,,,,,,,,,,,
"} +{/foreach} +

-

- Marketing volontaire -

- -

Adresses neuves

- - - - - - - - - - {iterate from=$neuves item=it} - - - - - - - - {/iterate} -
Camarade concernéAdresse emailCamarade "informateur"Dernière adresse connueLui écrire ?
{$it.nom} {$it.prenom} (X{$it.promo}){$it.email}{$it.snom} {$it.sprenom} (X{$it.spromo}){$it.last_known_email} - {if $it.mailperso} - Perso - {else} - Equipe - {/if} - Fait ! - Del -
- -
-
+{if $addr} -

Adresses déjà utilisées

+

[Marketing promo pour la promo {$smarty.get.promo}]

+{if $addr->total()} +

Marketing volontaire

- - + - {iterate from=$used item=it} + {iterate from=$addr item=it} - + - - + {/iterate}
Camarade concerné Adresse emailCamarade "informateur"inscrit?"informateur"
{$it.nom} {$it.prenom} (X{$it.promo}){$it.nom} {$it.prenom} {$it.email}{$it.snom} {$it.sprenom} (X{$it.spromo}){if $it.inscrit}OUI{else}NON{/if}{$it.forlife}
- +{else}

-{$rate.j} inscrits sur {$rate.i} sollicités, soit {$rate.rate}% de succès. +pas d'informations pour les gens de cette promo

+{/if} +{/if} {* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/search.quick.form.tpl b/templates/search.quick.form.tpl index bf20bd4..838476f 100644 --- a/templates/search.quick.form.tpl +++ b/templates/search.quick.form.tpl @@ -28,6 +28,9 @@ {min_auth level='cookie'} mettre les fiches modifiées récemment en premier + {if $smarty.request.nonins} +
Chercher uniquement des non inscrits + {/if} {/min_auth}