Merge commit 'origin/master' into hruid
authorVincent Zanotti <vincent.zanotti@polytechnique.org>
Sun, 20 Jul 2008 01:53:43 +0000 (03:53 +0200)
committerVincent Zanotti <vincent.zanotti@polytechnique.org>
Sun, 20 Jul 2008 01:53:43 +0000 (03:53 +0200)
Signed-off-by: Vincent Zanotti <vincent.zanotti@polytechnique.org>
1  2 
modules/admin.php
modules/carnet.php
modules/lists.php
modules/marketing.php
modules/platal.php
modules/xnetgrp.php

diff --combined modules/admin.php
@@@ -70,7 -70,7 +70,7 @@@ class AdminModule extends PLModul
          if (Env::has('del')) {
              $crc = Env::v('crc');
              XDB::execute("UPDATE postfix_mailseen SET release = 'del' WHERE crc = {?}", $crc);
-             $page->trigSuccess($crc." verra tous ses mails supprimés !");
+             $page->trigSuccess($crc." verra tous ses emails supprimés !");
          } elseif (Env::has('ok')) {
              $crc = Env::v('crc');
              XDB::execute("UPDATE postfix_mailseen SET release = 'ok' WHERE crc = {?}", $crc);
                          // and the password was changed, updates the Google Apps password as well.
                          if ($globals->mailstorage->googleapps_domain && Env::v('newpass_clair') != "********") {
                              require_once 'googleapps.inc.php';
 -                            $account = new GoogleAppsAccount($mr['user_id'], $mr['forlife']);
 +                            $account = new GoogleAppsAccount(User::get($mr['forlife']));
                              if ($account->active() && $account->sync_password) {
                                  $account->set_password($pass_encrypted);
                              }
                              $new_fields['perms'] == 'disabled' &&
                              $new_fields['perms'] != $old_fields['perms']) {
                              require_once 'googleapps.inc.php';
 -                            $account = new GoogleAppsAccount($mr['user_id'], $mr['forlife']);
 +                            $account = new GoogleAppsAccount(User::get($mr['forlife']));
                              $account->suspend();
                          }
                          break;
diff --combined modules/carnet.php
@@@ -215,24 -215,39 +215,24 @@@ class CarnetModule extends PLModul
          }
          switch (Env::v('action')) {
              case 'retirer':
 -                if (is_numeric($user)) {
 -                    if (XDB::execute('DELETE FROM contacts
 -                                       WHERE uid = {?} AND contact = {?}',
 -                                     $uid, $user))
 -                    {
 -                        $page->trigSuccess("Contact retiré !");
 -                    }
 -                } else {
 -                    if (XDB::execute(
 -                                'DELETE FROM  c
 -                                       USING  contacts AS c
 -                                  INNER JOIN  aliases  AS a ON (c.contact=a.id and a.type!="homonyme")
 -                                       WHERE  c.uid = {?} AND a.alias={?}', $uid, $user))
 -                    {
 +                if (($user = User::get(Env::v('user')))) {
 +                    if (XDB::execute("DELETE FROM  contacts
 +                                            WHERE  uid = {?} AND contact = {?}", $uid, $user->id())) {
                          $page->trigSuccess("Contact retiré !");
                      }
                  }
                  break;
  
              case 'ajouter':
 -                require_once('user.func.inc.php');
 -                if (($login = get_user_login($user)) !== false) {
 -                    if (XDB::execute(
 -                                'REPLACE INTO  contacts (uid, contact)
 -                                       SELECT  {?}, id
 -                                         FROM  aliases
 -                                        WHERE  alias = {?}', $uid, $login))
 -                    {
 +                if (($user = User::get(Env::v('user')))) {
 +                    if (XDB::execute("REPLACE INTO  contacts (uid, contact)
 +                                            VALUES  ({?}, {?})", $uid, $user->id())) {
                          $page->trigSuccess('Contact ajouté !');
                      } else {
                          $page->trigWarning('Contact déjà dans la liste !');
                      }
                  }
 +                break;
          }
  
          $search = false;
              $base = 'carnet/contacts';
              $view = new UserSet("INNER JOIN contacts AS c2 ON (u.user_id = c2.contact)", " c2.uid = $uid ");
          }
-         $view->addMod('minifiche', 'Mini-Fiches', true);
+         $view->addMod('minifiche', 'Mini-fiches', true);
          $view->addMod('trombi', 'Trombinoscope', false, array('with_admin' => false, 'with_promo' => true));
          $view->addMod('geoloc', 'Planisphère', false, array('with_annu' => 'carnet/contacts/search'));
          $view->apply($base, $page, $action, $subaction);
diff --combined modules/lists.php
@@@ -170,6 -170,19 +170,19 @@@ class ListsModule extends PLModul
  
          $page->changeTpl('lists/create.tpl');
  
+         $user_promo  = S::i('promo');
+         $year        = date('Y');
+         $month       = date('m');
+         $young_promo = $very_young_promo = 0;
+         if ((($year > $user_promo) && ($month > 3)) && ($year < $user_promo + 5)) {
+             $young_promo = 1;
+         }
+         if ((($year > $user_promo) && ($month > 7)) && (($year < $user_promo + 1) && ($month < 8))) {
+             $very_young_promo = 1;
+         }
+         $page->assign('young_promo', $young_promo);
+         $page->assign('very_young_promo', $very_young_promo);
          $owners  = preg_split("/[\s]+/", Post::v('owners'), -1, PREG_SPLIT_NO_EMPTY);
          $members = preg_split("/[\s]+/", Post::v('members'), -1, PREG_SPLIT_NO_EMPTY);
  
          $view = new ArraySet($users);
          $view->addMod('trombi', 'Trombinoscope', true, array('with_promo' => true));
          if (empty($GLOBALS['IS_XNET_SITE'])) {
-             $view->addMod('minifiche', 'Minifiches', false);
+             $view->addMod('minifiche', 'Mini-fiches', false);
          }
          $view->addMod('geoloc', 'Planisphère');
          $view->apply("lists/annu/$liste", $page, $action, $subaction);
                  exit;
              }
              require_once('banana/ml.inc.php');
 -            $banana = new MLBanana(S::v('forlife'), Array('listname' => $liste, 'domain' => $domain, 'action' => 'rss2'));
 +            $banana = new MLBanana(S::user(), Array('listname' => $liste, 'domain' => $domain, 'action' => 'rss2'));
              $banana->run();
          }
          exit;
diff --combined modules/marketing.php
@@@ -136,7 -136,7 +136,7 @@@ class MarketingModule extends PLModul
                  $market = new Marketing($uid, Post::v('to'), 'default', null, 'staff');
              }
              $market->send(Post::v('title'), Post::v('message'));
-             $page->trigSuccess("Mail envoyé");
+             $page->trigSuccess("Email envoyé");
          }
  
          if ($action == 'insrel') {
  
      function handler_broken(&$page, $uid = null)
      {
 -        require_once('user.func.inc.php');
          $page->changeTpl('marketing/broken.tpl');
  
          if (is_null($uid)) {
              return PL_NOT_FOUND;
          }
 -        $forlife = get_user_forlife($uid);
 -        if (!$forlife) {
 +
 +        $user = User::get($uid);
 +        if (!$user) {
              return PL_NOT_FOUND;
 -        } elseif ($forlife == S::v('forlife')) {
 +        } elseif ($user->login() == S::user()->login()) {
              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, a.alias AS forlife, b.alias AS bestalias,
 +                                   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  a.alias = {?}
 -                         ORDER BY  e.panne_level, e.last", $forlife);
 +                            WHERE  u.hruid = {?}
 +                         ORDER BY  e.panne_level, e.last", $user->login());
          if (!$res->numRows()) {
              return PL_NOT_FOUND;
          }
 -        $user = $res->fetchOneAssoc();
 -        $page->assign('user', $user);
 +        $user_data = $res->fetchOneAssoc();
 +        $page->assign('user', $user_data);
  
          $email = null;
          if (Post::has('mail')) {
              S::assert_xsrf_token();
  
              // security stuff
 -            check_email($email, "Proposition d'une adresse surveillee pour " . $user['forlife'] . " par " . S::v('forlife'));
 -            $res = XDB::query("SELECT  e.flags
 -                                 FROM  emails   AS e
 -                           INNER JOIN  aliases  AS a ON (a.id = e.uid)
 -                                WHERE  e.email = {?} AND a.alias = {?}", $email, $user['forlife']);
 +            check_email($email, "Proposition d'une adresse surveillee pour " . $user->login() . " par " . S::user()->login());
 +            $res = XDB::query("SELECT  flags
 +                                 FROM  emails
 +                                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['prenom']} et est en panne.");
 +                $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user_data['prenom']} et est en panne.");
              } elseif ($state == 'active') {
 -                $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user['prenom']}");
 -            } elseif ($user['email'] && !trim(Post::v('comment'))) {
 +                $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->trigError("Il faut que tu ajoutes un commentaire à ta proposition pour justifier le "
 -                           ."besoin de changer la redirection de " . $user['prenom']);
 +                               . "besoin de changer la redirection de " . $user_data['prenom']);
              } else {
                  require_once 'validations.inc.php';
 -                $valid = new BrokenReq(S::i('uid'), $user, $email, trim(Post::v('comment')));
 +                $valid = new BrokenReq(S::i('uid'), $user_data, $email, trim(Post::v('comment')));
                  $valid->submit();
                  $page->assign('sent', true);
              }
diff --combined modules/platal.php
@@@ -202,7 -202,7 +202,7 @@@ class PlatalModule extends PLModul
              // updates the Google Apps password as well.
              if ($globals->mailstorage->googleapps_domain) {
                  require_once 'googleapps.inc.php';
 -                $account = new GoogleAppsAccount(S::v('uid'), S::v('forlife'));
 +                $account = new GoogleAppsAccount(S::user());
                  if ($account->active() && $account->sync_password) {
                      $account->set_password($password);
                  }
@@@ -329,7 -329,7 +329,7 @@@ Si en cliquant dessus tu n'y arrives pa
  Polytechnique.org
  \"Le portail des élèves & anciens élèves de l'Ecole polytechnique\"
  
Mail envoyé à ".Env::v('login') . (Post::has('email') ? "
Email envoyé à ".Env::v('login') . (Post::has('email') ? "
  Adresse de secours : " . Post::v('email') : ""));
              $mymail->send();
  
              // updates the Google Apps password as well.
              if ($globals->mailstorage->googleapps_domain) {
                  require_once 'googleapps.inc.php';
 -                $account = new GoogleAppsAccount($uid);
 +                $account = new GoogleAppsAccount(User::getSilent($uid));
                  if ($account->active() && $account->sync_password) {
                      $account->set_password($password);
                  }
diff --combined modules/xnetgrp.php
@@@ -328,7 -328,7 +328,7 @@@ class XnetGrpModule extends PLModul
              if ($upload) {
                  $upload->rm();
              }
-             $page->kill("Mail envoyé !");
+             $page->kill("Email envoyé !");
              $page->assign('sent', true);
          }
      }
                      pl_redirect("member/$email");
                  }
              } else {
-                 $page->trigError("« <strong>$email</strong> » n'est pas une adresse mail valide.");
+                 $page->trigError("« <strong>$email</strong> » n'est pas une adresse email valide.");
              }
          }
      }
          if ($this->unsubscribe($user)) {
              $page->trigSuccess('Vous avez été désinscrit du groupe avec succès.');
          } else {
-             $page->trigWarning('Vous avez été désinscrit du groupe, mais des erreurs se sont produites lors des désinscriptions des alias et des mailing-lists.');
+             $page->trigWarning('Vous avez été désinscrit du groupe, mais des erreurs se sont produites lors des désinscriptions des alias et des listes de diffusion.');
          }
          $page->assign('is_member', is_member(true));
      }
                  $post = null;/*
                  if ($globals->asso('forum')) {
                      require_once 'banana/forum.inc.php';
 -                    $banana = new ForumsBanana(S::v('forlife'));
 +                    $banana = new ForumsBanana(S::user());
                      $post = $banana->post($globals->asso('forum'), null,
                                            $art['titre'], MiniWiki::wikiToText($fulltext, false, 0, 80));
                  }*/