Please note that this commit invalidates existing requests.
Signed-off-by: Vincent Zanotti <vincent.zanotti@polytechnique.org>
if ($resRobot->total()) {
require_once('validations/homonymes.inc.php');
while ($old = $resRobot->next()) {
- $res = XDB::query("SELECT alias AS forlife FROM homonymes INNER JOIN aliases ON(user_id = id) WHERE homonyme_id = {?} AND type='a_vie'", $old['id']);
- $forlifes = $res->fetchColumn();
- $req = new HomonymeReq($old['id'], $old['alias'], $forlifes, $old['expire'] > date("Y-m-d"));
+ $res = XDB::query("SELECT alias AS forlife FROM homonymes INNER JOIN aliases ON(user_id = id) WHERE homonyme_id = {?} AND type='a_vie'", $old['id']);
+ $forlifes = $res->fetchColumn();
+
+ $user = User::getSilent($old['id']);
+ $req = new HomonymeReq($user, $old['alias'], $forlifes, $old['expire'] > date("Y-m-d"));
$req->submit();
}
}
exit;
}
+// Retrieves list parameters.
$promo = intval($opt['p']);
$owner = $opt['o'];
-$req = new ListeReq(0, false, "promo$promo", $globals->mail->domain, "Liste de la promotion $promo",
+$owner_user = User::getSilent($owner);
+if (!$owner_user) {
+ echo "Supplied owner is not valid, aborting.\n";
+ exit 1;
+}
+
+// Creates the list.
+$req = new ListeReq($owner_user, false, "promo$promo", $globals->mail->domain, "Liste de la promotion $promo",
1 /*private*/, 2 /*moderate*/, 0 /*free subscription*/,
array($owner), array());
$req->submit();
if (!$this->pending_update_suspension && !$this->pending_validation_unsuspend) {
require_once('validations.inc.php');
- $unsuspend = new GoogleAppsUnsuspendReq($this->user->id());
+ $unsuspend = new GoogleAppsUnsuspendReq($this->user);
$unsuspend->submit();
$this->pending_validation_unsuspend = true;
}
global $globals;
return array(
- 'id' => $user->id(),
- 'sexe' => $user->isFemale(),
- 'mail' => $email,
- 'forlife_email' => $user->login() . '@' . $globals->mail->domain,
+ 'user' => $user,
+ 'id' => $user->id(),
+ 'sexe' => $user->isFemale(),
+ 'mail' => $email,
+ 'to' => '"' . $user->fullName() . '" <' . $email . '>',
+ 'forlife_email' => $user->login() . '@' . $globals->mail->domain,
'forlife_email2' => $user->login() . '@' . $globals->mail->domain2,
- 'to' => '"' . $user->fullName() . '" <' . $email . '>',
);
}
if ($from == 'staff' || !($user = User::getSilent($sender))) {
return '"L\'équipe de Polytechnique.org" <register@' . $globals->mail->domain . '>';
}
- return sprintf('"%s" <%s>', $user->fullName(), $user->bestEmail());
+ return '"' . $user->fullName() . '" <' . $user->bestEmail() . '>';
}
private function &getEngine($type, $data, $from)
$this->engine->process($this->user);
if ($valid) {
require_once 'validations.inc.php';
- $valid = new MarkReq($this->sender, $this->user['id'], $this->user['mail'],
+ $valid = new MarkReq(User::getSilent($this->sender), $this->user['user'], $this->user['mail'],
$this->from == 'user', $this->type, $this->data);
$valid->submit();
}
{
// {{{ properties
- public $uid;
- public $prenom;
- public $nom;
- public $promo;
- public $sexe;
- public $bestalias;
- public $forlife;
+ public $user;
public $stamp;
public $unique;
// {{{ constructor
/** constructeur
- * @param $_uid user id
+ * @param $_user user object
* @param $_unique requête pouvant être multiple ou non
* @param $_type type de la donnée comme dans le champ type de x4dat.requests
*/
- public function __construct($_uid, $_unique, $_type)
+ public function __construct(User $_user, $_unique, $_type)
{
- $this->uid = $_uid;
+ $this->user = $_user;
$this->stamp = date('YmdHis');
$this->unique = $_unique;
$this->type = $_type;
- $res = XDB::query(
- "SELECT u.prenom, u.nom, u.promo, FIND_IN_SET('femme', u.flags) AS sexe, a.alias, b.alias
- FROM auth_user_md5 AS u
- INNER JOIN aliases AS a ON ( u.user_id=a.id AND a.type='a_vie' )
- INNER JOIN aliases AS b ON ( u.user_id=b.id AND b.type!='homonyme' AND FIND_IN_SET('bestalias', b.flags) )
- WHERE u.user_id={?}", $_uid);
- list($this->prenom, $this->nom, $this->promo, $this->sexe, $this->forlife, $this->bestalias) = $res->fetchOneRow();
}
// }}}
public function submit()
{
if ($this->unique) {
- XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?}', $this->uid, $this->type);
+ XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?}', $this->user->id(), $this->type);
}
$this->stamp = date('YmdHis');
XDB::execute('INSERT INTO requests (user_id, type, data, stamp) VALUES ({?}, {?}, {?}, {?})',
- $this->uid, $this->type, $this, $this->stamp);
+ $this->user->id(), $this->type, $this, $this->stamp);
global $globals;
$globals->updateNbValid();
{
XDB::execute('UPDATE requests SET data={?}, stamp=stamp
WHERE user_id={?} AND type={?} AND stamp={?}',
- $this, $this->uid, $this->type, $this->stamp);
+ $this, $this->user->id(), $this->type, $this->stamp);
return true;
}
if ($this->unique) {
$success = XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?}',
- $this->uid, $this->type);
+ $this->user->id(), $this->type);
} else {
$success = XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?} AND stamp={?}',
- $this->uid, $this->type, $this->stamp);
+ $this->user->id(), $this->type, $this->stamp);
}
$globals->updateNbValid();
return $success;
if (!strlen(trim(Env::v('comm')))) {
return true;
}
- $this->comments[] = Array(S::v('bestalias'), Env::v('comm'), $formid);
+ $this->comments[] = Array(S::user()->login(), Env::v('comm'), $formid);
// envoi d'un mail à hotliners
global $globals;
$mailer->setFrom("validation+{$this->type}@{$globals->mail->domain}");
$mailer->addTo($globals->core->admin_email);
- $body = "Validation {$this->type} pour {$this->prenom} {$this->nom}\n\n"
- . S::v('bestalias')." a ajouté le commentaire :\n\n"
- . Env::v('comm')."\n\n"
- . "cf la discussion sur : ".$globals->baseurl."/admin/validate";
+ $body = "Validation {$this->type} pour {$this->user->id()}\n\n"
+ . S::user()->login() . " a ajouté le commentaire :\n\n"
+ . Env::v('comm') . "\n\n"
+ . "cf la discussion sur : " . $globals->baseurl . "/admin/validate";
$mailer->setTxtBody(wordwrap($body));
$mailer->send();
$mailer = new PlMailer();
$mailer->setSubject($this->_mail_subj());
$mailer->setFrom("validation+{$this->type}@{$globals->mail->domain}");
- $mailer->addTo("\"{$this->prenom} {$this->nom}\" <{$this->bestalias}@{$globals->mail->domain}>");
+ $mailer->addTo("\"{$this->user->fullName()}\" <{$this->user->bestEmail()}>");
$mailer->addCc("validation+{$this->type}@{$globals->mail->domain}");
- $body = ($this->sexe ? "Chère camarade,\n\n" : "Cher camarade,\n\n")
+ $body = ($this->user->isFemale() ? "Chère camarade,\n\n" : "Cher camarade,\n\n")
. $this->_mail_body($isok)
. (Env::has('comm') ? "\n\n".Env::v('comm') : '')
. "\n\nCordialement,\n\n-- \nL'équipe de Polytechnique.org\n";
public function id()
{
- return $this->uid . '_' . $this->type . '_' . $this->stamp;
+ return $this->user->id() . '_' . $this->type . '_' . $this->stamp;
}
// }}}
// }}}
// {{{ constructor
- public function __construct($_uid, $_alias, $_raison, $_public, $_stamp=0)
+ public function __construct(User $_user, $_alias, $_raison, $_public, $_stamp=0)
{
global $globals;
- parent::__construct($_uid, true, 'alias', $_stamp);
+ parent::__construct($_user, true, 'alias', $_stamp);
$this->alias = $_alias.'@'.$globals->mail->alias_dom;
$this->raison = $_raison;
$this->public = $_public;
SELECT v.alias
FROM virtual_redirect AS vr
INNER JOIN virtual AS v ON (v.vid=vr.vid AND v.alias LIKE '%@{$globals->mail->alias_dom}')
- WHERE vr.redirect={?} OR vr.redirect={?}",
- "{$this->forlife}@{$globals->mail->domain}", "{$this->forlife}@{$globals->mail->domain2}");
+ WHERE vr.redirect = {?} OR vr.redirect = {?}",
+ $this->user->forlifeEmail(),
+ // TODO: remove this über-ugly hack. The issue is that you need
+ // to remove all @m4x.org addresses in virtual_redirect first.
+ $this->user->login() . '@' . $globals->mail->domain2);
$this->old = $res->fetchOneCell();
- if (empty($this->old)) { unset($this->old); }
+ if (empty($this->old)) {
+ unset($this->old);
+ }
}
// }}}
static public function get_request($uid)
{
- return parent::get_typed_request($uid,'alias');
+ return parent::get_typed_request($uid, 'alias');
}
// }}}
public function commit ()
{
XDB::execute("UPDATE auth_user_quick SET emails_alias_pub = {?} WHERE user_id = {?}",
- $this->public, $this->uid);
+ $this->public, $this->user->id());
if ($this->old) {
- return XDB::execute('UPDATE virtual SET alias={?} WHERE alias={?}',
+ return XDB::execute("UPDATE virtual SET alias = {?} WHERE alias = {?}",
$this->alias, $this->old);
} else {
- XDB::execute('INSERT INTO virtual SET alias={?},type="user"', $this->alias);
+ XDB::execute("INSERT INTO virtual SET alias = {?},type='user'", $this->alias);
$vid = XDB::insertId();
- $dom = $this->shorter_domain();
- return XDB::query('INSERT INTO virtual_redirect (vid,redirect) VALUES ({?}, {?})',
- $vid, $this->forlife.'@'.$dom);
+ return XDB::query("INSERT INTO virtual_redirect (vid,redirect) VALUES ({?}, {?})",
+ $vid, $this->user->forlifeEmail());
}
}
{
// {{{ properties
- public $m_forlife;
- public $m_bestalias;
- public $m_prenom;
- public $m_nom;
- public $m_promo;
- public $m_sexe;
- public $m_email;
- public $old_email;
+ public $m_user;
public $m_comment;
+ public $m_email;
private $m_reactive = false;
// }}}
// {{{ constructor
- public function __construct($sender, $user, $email, $comment = null)
+ public function __construct(User $sender, User $user, $email, $comment = null)
{
parent::__construct($sender, false, 'broken');
- $this->m_email = $email;
+ $this->m_user = $user;
$this->m_comment = trim($comment);
- $this->m_forlife = $user['forlife'];
- $this->m_bestalias = $user['bestalias'];
- $this->m_prenom = $user['prenom'];
- $this->m_nom = $user['nom'];
- $this->m_promo = $user['promo'];
- $this->m_sexe = $user['sexe'];
- $this->old_email = $user['email'];
+ $this->m_email = $email;
}
// }}}
protected function _mail_subj()
{
- return "[Polytechnique.org] Récupération de {$this->m_prenom} {$this->m_nom} ({$this->m_promo})";
+ return "[Polytechnique.org] Récupération de {$this->m_user->fullName()} ({$this->m_user->promo()})";
}
// }}}
protected function _mail_body($isok)
{
if ($isok && !$this->m_reactive) {
- return " Un email de contact vient d'être envoyé"
- ." à {$this->m_prenom} {$this->m_nom} ({$this->m_promo}) pour confirmer sa volonté de"
- ." mettre à jour sa redirection Polytechnique.org !\n\n"
- ."Merci de ta participation !\n";
+ return " Un email de contact vient d'être envoyé à {$this->m_user->fullName()}"
+ . " ({$this->m_user->promo()}) pour confirmer sa volonté de"
+ . " mettre à jour sa redirection Polytechnique.org !\n\n"
+ . "Merci de ta participation !\n";
} elseif ($isok) {
- return " L'adresse de redirection {$this->m_email} de {$this->m_prenom} {$this->m_nom} ({$this->m_promo}) "
+ return " L'adresse de redirection {$this->m_email} de {$this->m_user->fullName()} ({$this->m_user->promo()}) "
."vient d'être réactivée. Un email lui a été envoyé pour l'en informer.\n\n"
."Merci de ta participation !\n";
} else {
- return " Nous n'utiliserons pas cette adresse pour contacter {$this->m_prenom} {$this->m_nom} ({$this->m_promo}).";
+ return " Nous n'utiliserons pas cette adresse pour contacter {$this->m_user->fullName()} ({$this->m_user->promo()}).";
}
}
public function commit()
{
global $globals;
- $email = $this->m_bestalias . '@' . $globals->mail->domain;
+ $email = $this->m_user->bestEmail();
- XDB::execute("UPDATE emails AS e
- INNER JOIN aliases AS a ON (a.id = e.uid)
- SET e.flags = 'active', panne_level = 2
- WHERE a.alias = {?} AND e.email = {?}", $this->m_forlife, $this->m_email);
+ XDB::execute("UPDATE emails
+ SET flags = 'active', panne_level = 2
+ WHERE uid = {?} AND email = {?}", $this->m_user->id(), $this->m_email);
if (XDB::affectedRows() > 0) {
$this->m_reactive = true;
$mailer = new PlMailer();
$mailer->setFrom('"Association Polytechnique.org" <register@' . $globals->mail->domain . '>');
$mailer->addTo($email);
- $mailer->setSubject("Mise à jour de ton adresse $email");
+ $mailer->setSubject("Mise à jour de ton adresse {$email}");
$mailer->setTxtBody(wordwrap("Cher Camarade,\n\n"
- . "Ton adresse $email étant en panne et ayant été informés que ta redirection {$this->m_email}, jusqu'à présent inactive, "
- . "est fonctionnelle, nous venons de réactiver cette adresse.\n\n"
- . "N'hésite pas à aller gérer toi-même tes redirections en te rendant à la page :\n"
- . "https://www.polytechnique.org/emails/redirect\n"
- . "Si tu as perdu ton mot de passe d'accès au site, tu peux également effectuer la procédure de récupération à l'adresse :\n"
- . "https://www.polytechnique.org/recovery\n\n"
- . "-- \nTrès Cordialement,\nL'Équipe de Polytechnique.org\n"));
+ . "Ton adresse {$email} étant en panne et ayant été informés que ta redirection {$this->m_email}, jusqu'à présent inactive, "
+ . "est fonctionnelle, nous venons de réactiver cette adresse.\n\n"
+ . "N'hésite pas à aller gérer toi-même tes redirections en te rendant à la page :\n"
+ . "https://www.polytechnique.org/emails/redirect\n"
+ . "Si tu as perdu ton mot de passe d'accès au site, tu peux également effectuer la procédure de récupération à l'adresse :\n"
+ . "https://www.polytechnique.org/recovery\n\n"
+ . "-- \nTrès Cordialement,\nL'Équipe de Polytechnique.org\n"));
$mailer->send();
return true;
}
- $email = $this->m_bestalias . '@' . $globals->mail->domain;
- if ($this->old_email) {
+ if ($this->m_user->email) {
$subject = "Ton adresse $email semble ne plus fonctionner";
$reason = "Nous avons été informés que ton adresse $email ne fonctionne plus correctement par un camarade";
} else {
- $res = XDB::iterRow("SELECT email
- FROM emails AS e
- INNER JOIN aliases AS a ON (a.id = e.uid)
- WHERE a.alias = {?} AND e.flags = 'panne'", $this->m_forlife);
+ $res = XDB::iterRow("SELECT email FROM emails WHERE uid = {?} AND flags = 'panne'", $this->m_user->id());
$redirect = array();
while (list($red) = $res->next()) {
list(, $redirect[]) = explode('@', $red);
. ' sont hors-services depuis plusieurs mois.';
}
}
- $body = ($this->m_sexe ? 'Chère ' : 'Cher ') . $this->m_prenom . ",\n\n"
+ $body = ($this->m_user->isFemale() ? 'Chère ' : 'Cher ') . $this->m_user->displayName() . ",\n\n"
. $reason . "\n\n"
. "L'adresse {$this->m_email} nous a été communiquée, veux-tu que cette adresse devienne ta nouvelle "
. "adresse de redirection ? Si oui, envoie nous des informations qui "
// }}}
// {{{ constructor
- public function __construct($_titre, $_texte, $_pmin, $_pmax, $_peremption, $_comment, $_uid, PlUpload &$upload = null)
+ public function __construct($_titre, $_texte, $_pmin, $_pmax, $_peremption, $_comment, User $_user, PlUpload &$upload = null)
{
- parent::__construct($_uid, false, 'evts');
+ parent::__construct($_user, false, 'evts');
$this->titre = $_titre;
$this->texte = $_texte;
$this->pmin = $_pmin;
if (XDB::execute("INSERT INTO evenements
SET user_id = {?}, creation_date=NOW(), titre={?}, texte={?},
peremption={?}, promo_min={?}, promo_max={?}, flags=CONCAT(flags,',valide,wiki')",
- $this->uid, $this->titre, $this->texte,
+ $this->user->id(), $this->titre, $this->texte,
$this->peremption, $this->pmin, $this->pmax)) {
$eid = XDB::insertId();
if ($this->img) {
global $globals;
if ($globals->banana->event_forum) {
require_once 'banana/forum.inc.php';
- $banana = new ForumsBanana(User::getSilent($this->uid));
+ $banana = new ForumsBanana($this->user);
$post = $banana->post($globals->banana->event_forum,
$globals->banana->event_reply,
$this->titre, MiniWiki::wikiToText($this->texte, false, 0, 80));
alors la raison s'affichera (mais seulement 24-48h après la suspension).
Si l'utilisateur a désactivé lui-même son compte, la raison sera toujours vierge.";
- public function __construct($_uid)
+ public function __construct(User $_user)
{
- parent::__construct($_uid, true, 'gapps-unsuspend');
+ parent::__construct($_user, true, 'gapps-unsuspend');
}
public function sendmail($isok)
public function commit()
{
require_once dirname(__FILE__) . '/../googleapps.inc.php';
- $account = new GoogleAppsAccount(User::get($this->forlife));
+ $account = new GoogleAppsAccount($this->user);
return $account->do_unsuspend();
}
"SELECT g_suspension
FROM gapps_accounts
WHERE g_account_name = {?}",
- $this->forlife);
+ $this->user->login());
return $res->fetchOneCell();
}
}
// }}}
// {{{ constructor
- public function __construct($_uid, $_loginbis, $_homonymes_forlife, $warning=true)
+ public function __construct(User $_user, $_loginbis, $_homonymes_forlife, $warning=true)
{
$this->warning = $warning;
- parent::__construct($_uid, true, $this->title());
+ parent::__construct($_user, true, $this->title());
$this->refuse = false;
$this->loginbis = $_loginbis;
private function title()
{
- return $this->warning?'alerte alias':'robot répondeur';
+ return ($this->warning ? 'alerte alias' : 'robot répondeur');
}
// }}}
protected function _mail_subj()
{
global $globals;
- return "[Polytechnique.org/Support] ".($this->warning?"Dans une semaine : suppression de l'alias":"Mise en place du robot")." $loginbis@" . $globals->mail->domain;
+ return "[Polytechnique.org/Support] "
+ . ($this->warning ? "Dans une semaine : suppression de l'alias " : "Mise en place du robot")
+ . " $loginbis@" . $globals->mail->domain;
}
// }}}
Comme nous t'en avons informé par email il y a quelques temps,
pour respecter nos engagements en terme d'adresses email devinables,
tu te verras bientôt retirer l'alias ".$this->loginbis."@".$globals->mail->domain." pour
-ne garder que ".$this->forlife."@".$globals->mail->domain.".
+ne garder que " . $this->user->forlifeEmail() . ".
Toute personne qui écrira à ".$this->loginbis."@".$globals->mail->domain." recevra la
réponse d'un robot qui l'informera que ".$this->loginbis."@".$globals->mail->domain."
if (!$isok) return false;
global $globals;
$mailer = new PlMailer;
- $cc = "support+homonyme@".$globals->mail->domain;
- $FROM = "\"Support Polytechnique.org\" <$cc>";
+ $cc = "support+homonyme@" . $globals->mail->domain;
+ $from = "\"Support Polytechnique.org\" <$cc>";
$mailer->setSubject($this->_mail_subj());
- $mailer->setFrom($FROM);
- $mailer->addTo("\"{$this->prenom} {$this->nom}\" <{$this->bestalias}@{$globals->mail->domain}>");
+ $mailer->setFrom($from);
+ $mailer->addTo("\"{$this->user->fullName()}\" <{$this->user->bestEmail()}>");
$mailer->addCc($cc);
- $body = $this->prenom.",\n\n"
+ $body = $this->user->displayName() . ",\n\n"
. $this->_mail_body($isok)
. (Env::has('comm') ? "\n\n".Env::v('comm') : '')
. "\n\nCordialement,\n\n-- \nL'équipe de Polytechnique.org\n";
{
require_once('homonymes.inc.php');
- switch_bestalias($this->uid, $this->loginbis);
+ switch_bestalias($this->user->id(), $this->loginbis);
if (!$this->warning) {
- XDB::execute("UPDATE aliases SET type='homonyme',expire=NOW() WHERE alias={?}", $this->loginbis);
- XDB::execute("REPLACE INTO homonymes (homonyme_id,user_id) VALUES({?},{?})", $this->uid, $this->uid);
+ XDB::execute("UPDATE aliases SET type = 'homonyme', expire = NOW() WHERE alias = {?}", $this->loginbis);
+ XDB::execute("REPLACE INTO homonymes (homonyme_id, user_id) VALUES({?}, {?})", $this->user->id(), $this->user->id());
}
return true;
// }}}
// {{{ constructor
- public function __construct($_uid, $_asso, $_liste, $_domain, $_desc, $_advertise,
+ public function __construct(User $_user, $_asso, $_liste, $_domain, $_desc, $_advertise,
$_modlevel, $_inslevel, $_owners, $_members, $_stamp=0)
{
- parent::__construct($_uid, false, 'liste', $_stamp);
+ parent::__construct($_user, false, 'liste', $_stamp);
$this->asso = $_asso;
$this->liste = $_liste;
return 1;
}
- $list = new MMList(S::v('uid'), S::v('password'), $this->domain);
+ $list = new MMList(S::user()->id(), S::v('password'), $this->domain);
$ret = $list->create_list($this->liste, utf8_decode($this->desc), $this->advertise,
$this->modlevel, $this->inslevel,
$this->owners, $this->members);
public $perso;
- public $m_id;
+ public $m_user;
public $m_email;
- public $m_nom;
- public $m_prenom;
- public $m_promo;
public $m_relance;
public $m_type;
public $m_data;
// }}}
// {{{ constructor
- public function __construct($sender, $mark_id, $email, $perso, $type, $data)
+ public function __construct(User $sender, User $mark, $email, $perso, $type, $data)
{
parent::__construct($sender, false, 'marketing');
- $this->m_id = $mark_id;
+ $this->m_user = $mark;
$this->m_email = $email;
$this->perso = $perso;
$this->m_type = $type;
$this->m_data = $data;
-
- $res = XDB::query('SELECT u.nom, u.prenom, u.promo
- FROM auth_user_md5 AS u
- WHERE user_id = {?}
- GROUP BY u.user_id', $mark_id);
- list ($this->m_nom, $this->m_prenom, $this->m_promo) = $res->fetchOneRow();
}
// }}}
LEFT JOIN register_pending AS p ON p.uid = u.user_id
LEFT JOIN register_marketing AS m ON m.uid = u.user_id
WHERE user_id = {?}',
- $this->m_id);
+ $this->m_user->id());
$this->m_relance = $res->fetchOneCell();
return 'include/form.valid.mark.tpl';
}
protected function _mail_subj()
{
- return "[Polytechnique.org] Marketing de {$this->m_prenom} {$this->m_nom} ({$this->m_promo})";
+ return "[Polytechnique.org] Marketing de {$this->m_user->fullName()} ({$this->m_user->promo()})";
}
// }}}
{
if ($isok) {
return " Un email de marketing vient d'être envoyé "
- .($this->perso ? 'en ton nom' : 'en notre nom')
- ." à {$this->m_prenom} {$this->m_nom} ({$this->m_promo}) pour l'encourager à s'inscrire !\n\n"
- ."Merci de ta participation !\n";
+ . ($this->perso ? 'en ton nom' : 'en notre nom')
+ . " à {$this->m_user->fullName()} ({$this->m_user->promo()}) "
+ . "pour l'encourager à s'inscrire !\n\n"
+ . "Merci de ta participation !\n";
} else {
- return " Nous n'avons pas jugé bon d'envoyer d'email de marketing à {$this->m_prenom} {$this->m_nom} ({$this->m_promo}).";
+ return " Nous n'avons pas jugé bon d'envoyer d'email de marketing à "
+ . "{$this->m_user->fullName()} ({$this->m_user->promo()}).";
}
}
public function commit()
{
- $market = Marketing::get($this->m_id, $this->m_email);
+ $market = Marketing::get($this->m_user->id(), $this->m_email);
if ($market == null) {
return false;
}
// }}}
// {{{ constructor
- public function __construct($_uid, $_idmedal, $_subidmedal, $_stamp=0)
+ public function __construct(User $_user, $_idmedal, $_subidmedal, $_stamp=0)
{
- parent::__construct($_uid, false, 'medal', $_stamp);
- $this->mid = $_idmedal;
+ parent::__construct($_user, false, 'medal', $_stamp);
+ $this->mid = $_idmedal;
$this->gid = $_subidmedal;
}
public function commit ()
{
require_once 'notifs.inc.php';
- register_watch_op($this->uid, WATCH_FICHE, 'medals');
+ register_watch_op($this->user->id(), WATCH_FICHE, 'medals');
return XDB::execute('REPLACE INTO profile_medals_sub
VALUES ({?}, {?}, {?})',
- $this->uid, $this->mid, $this->gid);
+ $this->user->id(), $this->mid, $this->gid);
}
// }}}
// }}}
// {{{ constructor
- public function __construct($uid, $title, $body, $append)
+ public function __construct(User $_user, $_title, $_body, $_append)
{
- parent::__construct($uid, false, 'nl');
- $this->art = new NLArticle($title, $body, $append);
+ parent::__construct($_user, false, 'nl');
+ $this->art = new NLArticle($_title, $_body, $_append);
}
// }}}
// }}}
// {{{ constructor
- public function __construct($_uid, $_usage, $_reason)
+ public function __construct(User $_user, $_usage, $_reason)
{
- parent::__construct($_uid, true, 'usage');
- $this->nom_usage = $_usage;
+ parent::__construct($_user, true, 'usage');
+ $this->nom_usage = $_usage;
$this->reason = $_reason;
- $this->alias = make_username($this->prenom, $this->nom_usage);
- if (!$this->nom_usage) $this->alias = "";
+
+ $res = XDB::query("SELECT prenom FROM auth_user_md5 WHERE user_id = {?}", $this->user->id());
+ $this->alias = make_username($res->fetchOneCell(), $this->nom_usage);
+ if (!$this->nom_usage) {
+ $this->alias = "";
+ }
$res = XDB::query("
SELECT e.alias, u.nom_usage, a.id
}
if ($globals->mailstorage->googleapps_domain) {
require_once 'googleapps.inc.php';
- $account = new GoogleAppsAccount(User::get($this->uid));
+ $account = new GoogleAppsAccount($this->user);
if ($account->active()) {
$res .= "\n\n Si tu utilises Google Apps, tu peux changer ton nom d'usage sur https://mail.google.com/a/polytechnique.org/#settings/accounts";
}
public function commit()
{
require_once 'notifs.inc.php';
- register_watch_op($this->uid, WATCH_FICHE, 'nom');
+ register_watch_op($this->user->id(), WATCH_FICHE, 'nom');
require_once('user.func.inc.php');
- $this->bestalias = set_new_usage($this->uid, $this->nom_usage, $this->alias);
+ set_new_usage($this->user->id(), $this->nom_usage, $this->alias);
return true;
}
public $unique = true;
- public $promo;
public $promo_sortie;
public $rules = "A priori accepter (la validation sert à repousser les
// }}}
// {{{ constructor
- public function __construct($_uid, $_sortie)
+ public function __construct(User $_user, $_sortie)
{
- parent::__construct($_uid, true, 'orange');
+ parent::__construct($_user, true, 'orange');
$this->promo_sortie = $_sortie;
- $res = XDB::query("SELECT promo FROM auth_user_md5 WHERE user_id = {?}", $_uid);
- $this->promo = $res->fetchOneCell();
+ $res = XDB::query("SELECT promo FROM auth_user_md5 WHERE user_id = {?}", $_user->id());
}
// }}}
public function commit()
{
- XDB::execute("UPDATE auth_user_md5 set promo_sortie={?} WHERE user_id={?}",$this->promo_sortie ,$this->uid);
+ XDB::execute("UPDATE auth_user_md5 set promo_sortie = {?} WHERE user_id = {?}",$this->promo_sortie, $this->user->id());
return true;
}
// }}}
// {{{ constructor
- public function __construct($_uid, $_intitule, $_site, $_montant, $_msg,
+ public function __construct(User $_user, $_intitule, $_site, $_montant, $_msg,
$_montantmin=0, $_montantmax=999, $_asso_id = 0,
$_evt = 0, $_stamp=0)
{
- parent::__construct($_uid, false, 'paiements', $_stamp);
+ parent::__construct($_user, false, 'paiements', $_stamp);
$this->titre = $_intitule;
$this->site = $_site;
public function commit()
{
- global $globals;
$res = XDB::query("SELECT MAX(id) FROM paiement.paiements");
$id = $res->fetchOneCell()+1;
$ret = XDB::execute("INSERT INTO paiement.paiements VALUES
",
$id, $this->titre, $this->site,
$this->montant, $this->montant_min, $this->montant_max,
- $this->bestalias."@".$globals->mail->domain, $this->msg_reponse, $this->asso_id);
+ $this->user->bestEmail(), $this->msg_reponse, $this->asso_id);
if ($this->asso_id && $this->evt) {
XDB::execute("UPDATE groupex.evenements
SET paiement_id = {?}
// }}}
// {{{ constructor
- public function __construct($_uid, PlUpload &$upload, $_stamp=0)
+ public function __construct(User $_user, PlUpload &$upload, $_stamp=0)
{
- parent::__construct($_uid, true, 'photo', $_stamp);
+ parent::__construct($_user, true, 'photo', $_stamp);
$this->read($upload);
}
static public function get_request($uid)
{
- return parent::get_typed_request($uid,'photo');
+ return parent::get_typed_request($uid, 'photo');
}
// }}}
require_once 'notifs.inc.php';
XDB::execute('REPLACE INTO photo (uid, attachmime, attach, x, y)
VALUES ({?},{?},{?},{?},{?})',
- $this->uid, $this->mimetype, $this->data, $this->x, $this->y);
- register_watch_op($this->uid, WATCH_FICHE, 'photo');
+ $this->user->id(), $this->mimetype, $this->data, $this->x, $this->y);
+ register_watch_op($this->user->id(), WATCH_FICHE, 'photo');
return true;
}
// }}}
// {{{ constructor
- public function __construct($_title, $_description, $_end, $_mode, $_promos, $_questions, $_uid)
+ public function __construct($_title, $_description, $_end, $_mode, $_promos, $_questions, User $_user)
{
- parent::__construct($_uid, false, 'surveys');
+ parent::__construct($_user, false, 'surveys');
$this->title = $_title;
$this->description = $_description;
$this->end = $_end;
end={?},
mode={?},
promos={?}';
- return XDB::execute($sql, serialize($this->questions), $this->title, $this->description, $this->uid, $this->end, $this->mode, $this->promos);
+ return XDB::execute($sql, serialize($this->questions), $this->title, $this->description, $this->user->id(), $this->end, $this->mode, $this->promos);
}
// }}}
// Eventually adds the alias to the right domain.
if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) {
- $req = new AliasReq($user->id(), $alias, 'Admin request', false);
+ $req = new AliasReq($user, $alias, 'Admin request', false);
if ($req->commit()) {
$page->trigSuccess("Nouvel alias '$alias@$domain' attribué");
} else {
}
//Insertion de la demande dans la base, écrase les requêtes précédente
- $myalias = new AliasReq($uid, $alias, $raison, $public);
+ $myalias = new AliasReq(S::user(), $alias, $raison, $public);
$myalias->submit();
$page->assign('success',$alias);
return;
require_once 'validations.inc.php';
$evtreq = new EvtReq($titre, $texte, $promo_min, $promo_max,
- $peremption, $valid_mesg, S::v('uid'), $upload);
+ $peremption, $valid_mesg, S::user(), $upload);
$evtreq->submit();
$page->assign('ok', true);
} elseif (!Env::v('preview')) {
if (!$page->nb_errs()) {
$page->assign('created', true);
require_once 'validations.inc.php';
- $req = new ListeReq(S::v('uid'), $asso, $liste, $domain,
+ $req = new ListeReq(S::user(), $asso, $liste, $domain,
Post::v('desc'), Post::i('advertise'),
Post::i('modlevel'), Post::i('inslevel'),
$owners, $members);
pl_redirect('emails/redirect');
}
- $res = Xdb::query("SELECT u.nom, u.prenom, u.promo, FIND_IN_SET('femme', u.flags) AS sexe,
- u.deces = '0000-00-00' AS alive, u.hruid, a.alias AS forlife, b.alias AS bestalias,
- IF(e.email IS NOT NULL, e.email, IF(FIND_IN_SET('googleapps', u.mail_storage), 'googleapps', NULL)) AS email, e.last
- FROM auth_user_md5 AS u
- INNER JOIN aliases AS a ON (a.id = u.user_id AND a.type = 'a_vie')
- INNER JOIN aliases AS b ON (b.id = u.user_id AND FIND_IN_SET('bestalias', b.flags))
- LEFT JOIN emails AS e ON (e.flags = 'active' AND e.uid = u.user_id)
- WHERE u.hruid = {?}
- ORDER BY e.panne_level, e.last", $user->login());
+ $res = XDB::query(
+ "SELECT u.deces = '0000-00-00' AS alive, e.last,
+ IF(e.email IS NOT NULL, e.email, IF(FIND_IN_SET('googleapps', u.mail_storage), 'googleapps', NULL)) AS email
+ FROM auth_user_md5 AS u
+ LEFT JOIN emails AS e ON (e.flags = 'active' AND e.uid = u.user_id)
+ WHERE u.user_id = {?}
+ ORDER BY e.panne_level, e.last", $user->id());
if (!$res->numRows()) {
return PL_NOT_FOUND;
}
- $user_data = $res->fetchOneAssoc();
- $page->assign('user', $user_data);
+ $user->addProperties($res->fetchOneAssoc());
+ $page->assign('user', $user);
$email = null;
require_once 'emails.inc.php';
WHERE email = {?} AND uid = {?}", $email, $user->id());
$state = $res->numRows() ? $res->fetchOneCell() : null;
if ($state == 'panne') {
- $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user_data['prenom']} et est en panne.");
+ $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user->fullName()} et est en panne.");
} elseif ($state == 'active') {
- $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user_data['prenom']}");
- } elseif ($user_data['email'] && !trim(Post::v('comment'))) {
+ $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user->fullName()}");
+ } elseif ($user->email && !trim(Post::v('comment'))) {
$page->trigError("Il faut que tu ajoutes un commentaire à ta proposition pour justifier le "
- . "besoin de changer la redirection de " . $user_data['prenom']);
+ . "besoin de changer la redirection de {$user->fullName()}.");
} else {
require_once 'validations.inc.php';
- $valid = new BrokenReq(S::i('uid'), $user_data, $email, trim(Post::v('comment')));
+ $valid = new BrokenReq(S::user(), $user, $email, trim(Post::v('comment')));
$valid->submit();
$page->assign('sent', true);
}
$page->assign('art', $art);
} elseif (Post::has('valid')) {
require_once('validations.inc.php');
- $art = new NLReq(S::v('uid'), Post::v('title'),
+ $art = new NLReq(S::user(), Post::v('title'),
Post::v('body'), Post::v('append'));
$art->submit();
$page->assign('submited', true);
if (!$upload->upload($_FILES['userfile']) && !$upload->download(Env::v('photo'))) {
$page->trigError('Une erreur est survenue lors du téléchargement du fichier');
} else {
- $myphoto = new PhotoReq(S::v('uid'), $upload);
+ $myphoto = new PhotoReq(S::user(), $upload);
if ($myphoto->isValid()) {
$myphoto->submit();
}
$upload = new PlUpload(S::user()->login(), 'photo');
if ($upload->copyFrom($trombi_x)) {
- $myphoto = new PhotoReq(S::v('uid'), $upload);
+ $myphoto = new PhotoReq(S::user(), $upload);
if ($myphoto->isValid()) {
$myphoto->commit();
$myphoto->clean();
$page->assign('promo_sortie', $promo_sortie);
if (Env::has('submit')) {
- $myorange = new OrangeReq(S::v('uid'),
- $promo_sortie);
+ $myorange = new OrangeReq(S::user(), $promo_sortie);
$myorange->submit();
$page->assign('myorange', $myorange);
}
if ($reason == 'other') {
$reason = Env::v('other_reason');
}
- $myusage = new UsageReq(S::v('uid'), $nom_usage, $reason);
+ $myusage = new UsageReq(S::user(), $nom_usage, $reason);
$myusage->submit();
$page->assign('myusage', $myusage);
}
// Add new ones
foreach ($value as $id=>&$val) {
if (!isset($orig[$id]) || $orig[$id]['grade'] != $val['grade']) {
- $req = new MedalReq(S::i('uid'), $id, $val['grade']);
+ $req = new MedalReq(S::user(), $id, $val['grade']);
$req->submit();
}
}
public function proposeSurvey()
{
require_once 'validations.inc.php';
- $surveyreq = new SurveyReq($this->title, $this->description, $this->end, $this->mode, $this->promos, $this->questions, S::v('uid'));
+ $surveyreq = new SurveyReq($this->title, $this->description, $this->end, $this->mode, $this->promos, $this->questions, S::user());
return $surveyreq->submit();
}
// }}}
// request for a new payment
if (Post::v('paiement_id') == -1 && $money_defaut >= 0) {
require_once 'validations.inc.php';
- $p = new PayReq(S::v('uid'),
+ $p = new PayReq(S::user(),
Post::v('intitule')." - ".$globals->asso('nom'),
Post::v('site'), $money_defaut,
Post::v('confirmation'), 0, 999,
if ($art['xorg']) {
require_once('validations.inc.php');
$article = new EvtReq("[{$globals->asso('nom')}] " . $art['titre'], $fulltext,
- $art['promo_min'], $art['promo_max'], $art['peremption'], "", S::v('uid'),
+ $art['promo_min'], $art['promo_max'], $art['peremption'], "", S::user(),
$upload);
$article->submit();
$page->trigWarning("L'affichage sur la page d'accueil de Polytechnique.org est en attente de validation.");
}
if ($art['nl']) {
require_once('validations.inc.php');
- $article = new NLReq(S::v('uid'), $globals->asso('nom') . " : " .$art['titre'],
+ $article = new NLReq(S::user(), $globals->asso('nom') . " : " .$art['titre'],
$art['texte'], $art['contact_html']);
$article->submit();
$page->trigWarning("La parution dans la Lettre Mensuelle est en attente de validation.");
<tr>
<td class="titre" style="width: 20%">Demandeur :</td>
<td>
- <a href="profile/{$valid->bestalias}" class="popup2">
- {$valid->prenom} {$valid->nom} (X{$valid->promo})
+ <a href="profile/{$valid->user->login()}" class="popup2">
+ {$valid->user->fullName()} (X{$valid->user->promo()})
</a>
</td>
</tr>
{xsrf_token_field}
<div>
{include file=$valid->editor()}
- <input type="hidden" name="uid" value="{$valid->uid}" />
+ <input type="hidden" name="uid" value="{$valid->user->id()}" />
<input type="hidden" name="type" value="{$valid->type}" />
<input type="hidden" name="stamp" value="{$valid->stamp}" />
<br />
<form action="admin/validate" method="post">
{xsrf_token_field}
<div>
- <input type="hidden" name="uid" value="{$valid->uid}" />
+ <input type="hidden" name="uid" value="{$valid->user->id()}" />
<input type="hidden" name="type" value="{$valid->type}" />
<input type="hidden" name="stamp" value="{$valid->stamp}" />
<input type="hidden" name="formid" value="{0|rand:65535}" />
Ajouté dans l'email :<br />
<textarea rows="5" cols="50" name="comm"></textarea><br />
- <input type="hidden" name="uid" value="{$valid->uid}" />
+ <input type="hidden" name="uid" value="{$valid->user->id()}" />
<input type="hidden" name="type" value="{$valid->type}" />
<input type="hidden" name="stamp" value="{$valid->stamp}" />
<input type="submit" name="accept" value="Accepter" />
<tr class="pair">
<td class="titre">Récupération de</td>
- <td><a href='admin/user/{$valid->m_forlife}'>{$valid->m_prenom} {$valid->m_nom} ({$valid->m_promo})</a></td>
+ <td><a href='admin/user/{$valid->m_user->login()}'>{$valid->m_user->fullName()} ({$valid->m_user->promo()})</a></td>
</tr>
<tr class="pair">
<td class="titre">Email proposé</td>
<tr class="pair">
<td class="titre">Homonymes :</td>
<td>
- {foreach from=$valid->homonymes_forlife item=o}
+ {foreach from=$valid->homonymes_hruid item=o}
<a href='profile/{$o}' class='popup2'>{$o}</a>
{/foreach}
</td>
{/if}
<tr class="pair">
<td class="titre">Marketing sur</td>
- <td><a href='marketing/private/{$valid->m_id}'>{$valid->m_prenom} {$valid->m_nom} ({$valid->m_promo})</a></td>
+ <td><a href='marketing/private/{$valid->m_user->login()}'>{$valid->m_user->fullName()} ({$valid->m_user->promo()})</a></td>
</tr>
{if $valid->m_type neq 'default'}
<tr class="pair">
<tr class="impair">
<td class="titre">Promotion :</td>
- <td>{$valid->promo}</td>
+ <td>{$valid->user->promo()}</td>
</tr>
<tr class="impair">
<td class="titre">Année de sortie :</td>
- <td>{$valid->promo_sortie} au lieu de {math equation="a + b" a=$valid->promo b=3}</td>
+ <td>{$valid->promo_sortie} au lieu de {math equation="a + b" a=$valid->user->promo() b=3}</td>
</tr>
{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
<tr class="pair">
<td class="titre">Contact :</td>
<td>
- {$valid->bestalias}@polytechnique.org
+ {$valid->user->bestEmail()}
</td>
</tr>
<tr class="pair">
<tr class="pair">
<td class="titre">Photos</td>
<td>
- <img src="photo/{$valid->forlife}" style="width:110px;" alt=" [ PHOTO ] " />
+ <img src="photo/{$valid->user->login()}" style="width:110px;" alt=" [ PHOTO ] " />
- <img src="photo/{$valid->forlife}/req" style="width:110px;" alt=" [ PHOTO ] " />
+ <img src="photo/{$valid->user->login()}/req" style="width:110px;" alt=" [ PHOTO ] " />
</td>
</tr>
{* *}
{**************************************************************************}
-
{if $sent}
<p>
Merci de nous avoir communiqué cette information !
</p>
-{elseif $user && !$user.alive}
+{elseif $user && !$user->alive}
<p class="erreur">
- {$user.prenom} {$user.nom} (X{$user.promo}) est malheureusement décédé{if $user.sexe}e{/if}.
+ {$user->fullName()} (X{$user->promo()}) est malheureusement décédé{if $user->isFemale()}e{/if}.
Nous ne réaliserons maintenance sur son adresse Polytechnique.org qu'à la demande explicite
de sa famille. Pour tout renseignement, merci de <a href="mailto:contact@polytechnique.org">
contacter le support</a>.
{elseif $user}
<h1>
- Recherche d'adresses pour {$user.nom} {$user.prenom} (X{$user.promo})
+ Recherche d'adresses pour {$user->fullName()} (X{$user->promo()}).
</h1>
-{if !$user.email}
+{if !$user->email}
<p>
Avec le temps, toutes les adresses de redirection de notre camarade sont devenues invalides et produisent
des erreurs lorsqu'on lui envoie un email. Nous sommes donc à la recherche d'adresses valides où nous pourrions
contacter ce camarade.
</p>
-{elseif $user.last}
+{elseif $user->last}
<p>
- {$user.prenom} a encore des adresses de redirection actives malgré des pannes détectées sur certaines d'entre elles. Si
+ {$user->fullName()} a encore des adresses de redirection actives malgré des pannes détectées sur certaines d'entre elles. Si
tu es sûr{if $smarty.session.femme}e{/if} que son adresse Polytechnique.org est en panne, tu peux proposer une nouvelle
adresse email à ajouter à ses redirections. Merci d'ajouter un commentaire pour nous indiquer la raison de cette proposition.
</p>
{else}
<p>
- Nous n'avons actuellement enregistré aucune panne sur les adresses de redirection de {$user.prenom}. Si tu es
+ Nous n'avons actuellement enregistré aucune panne sur les adresses de redirection de {$user->fullName()}. Si tu es
sûr{if $smarty.session.femme}e{/if} que son adresse de redirection actuelle est en panne, tu peux nous proposer
une nouvelle adresse, accompagnée d'un commentaire nous expliquant les raisons exactes de cette proposition.
</p>
{/if}
<p>
- Les adresses email que tu pourras nous donner ne seront pas ajoutées directement aux redirections de {$user.prenom}.
- Nous allons d'abord prendre contact avec {if $user.sexe}elle{else}lui{/if} pour savoir {if $user.sexe}si elle {else}s'il {/if}
- accepte la mise à jour de sa redirection.
+ Les adresses email que tu pourras nous donner ne seront pas ajoutées directement aux redirections de {$user->fullName()}.
+ Nous allons d'abord prendre contact avec {if $user->isFemale()}elle{else}lui{/if} pour savoir {if $user->isFemale()}si elle
+ {else}s'il {/if} accepte la mise à jour de sa redirection.
</p>
<p>
Merci de ta participation active à l'amélioration de notre qualité de service.
<form method="post" action="{$platal->path}">
{xsrf_token_field}
<table class="bicol" summary="Fiche camarade">
- <tr><th colspan="2">Proposition d'adresse pour<br />{$user.nom} {$user.prenom} (X{$user.promo})</th></tr>
+ <tr><th colspan="2">Proposition d'adresse pour<br />{$user->fullName()} (X{$user->promo()})</th></tr>
<tr class="pair">
<td>Adresse email :</td>
<td>
<input type="text" name="mail" size="30" maxlength="50" value="{$smarty.post.mail}" />
</td>
</tr>
- {if $user.email}
+ {if $user->email}
<tr class="impair">
<td>Explication :</td>
<td><textarea name="comment" cols="50" rows="4">{$smarty.post.comment}</textarea></td>