AXLetter cleanup.
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 12 Feb 2009 21:47:36 +0000 (22:47 +0100)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 12 Feb 2009 21:47:36 +0000 (22:47 +0100)
Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
include/validations/marketing.inc.php
modules/axletter.php
templates/axletter/admin.tpl

index 9f2161c..3d724d5 100644 (file)
@@ -55,10 +55,10 @@ class MarkReq extends Validate
     public function formu()
     {
         $res = XDB::query('SELECT  IF(MAX(m.last)>p.relance, MAX(m.last), p.relance)
-                             FROM  auth_user_md5      AS u
-                        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 = {?}',
+                             FROM  accounts           AS a
+                        LEFT JOIN  register_pending   AS p ON p.uid = a.uid
+                        LEFT JOIN  register_marketing AS m ON m.uid = a.uid
+                            WHERE  a.uid = {?}',
                           $this->m_user->id());
         $this->m_relance = $res->fetchOneCell();
         return 'include/form.valid.mark.tpl';
index 5bc7643..d3f1aa4 100644 (file)
@@ -175,14 +175,10 @@ class AXLetterModule extends PLModule
                                       . "https://www.polytechnique.org/ax/edit\n"
                                       . "-- \n"
                                       . "Association Polytechnique.org\n");
-                    $res = XDB::iterRow("SELECT IF(u.nom_usage != '', u.nom_usage, u.nom) AS nom,
-                                                u.prenom, a.alias AS bestalias
-                                           FROM axletter_rights AS ar
-                                     INNER JOIN auth_user_md5   AS u USING(user_id)
-                                     INNER JOIN aliases         AS a ON (u.user_id = a.id
-                                     AND FIND_IN_SET('bestalias', a.flags))");
-                    while (list($nom, $prenom, $alias) = $res->next()) {
-                        $mailer->addTo("$nom $prenom <$alias@{$globals->mail->domain}>");
+                    $users = User::getBulkUsersWithUIDs(XDB::fetchColumn('SELECT  user_id
+                                                                            FROM  axletter_rights'));
+                    foreach ($users as $user) {
+                        $mailer->addTo($user);
                     }
                     $mailer->send();
                 }
@@ -311,11 +307,8 @@ class AXLetterModule extends PLModule
         }
 
         $page->changeTpl('axletter/admin.tpl');
-        $res = XDB::iterator("SELECT IF(u.nom_usage != '', u.nom_usage, u.nom) AS nom,
-                                     u.prenom, u.promo, u.hruid
-                                FROM axletter_rights AS ar
-                          INNER JOIN auth_user_md5   AS u USING(user_id)");
-        $page->assign('admins', $res);
+        $page->assign('admins', User::getBulkUsersWithUIDs(XDB::fetchColumn('SELECT  user_id
+                                                                               FROM  axletter_rights')));
 
         $importer = new CSVImporter('axletter_ins');
         $importer->registerFunction('user_id', 'email vers Id X.org', array($this, 'idFromMail'));
@@ -336,36 +329,9 @@ class AXLetterModule extends PLModule
                 }
             }
         }
-        $email = $line[$field];
-        if (strpos($email, '@') === false) {
-            $user  = $email;
-            $domain = $globals->mail->domain2;
-        } else {
-            list($user, $domain) = explode('@', $email);
-        }
-        if ($domain != $globals->mail->domain && $domain != $globals->mail->domain2
-                && $domain != $globals->mail->alias_dom && $domain != $globals->mail->alias_dom2) {
-            $res = XDB::query("SELECT uid FROM emails WHERE email = {?}", $email);
-            if ($res->numRows() == 1) {
-                return $res->fetchOneCell();
-            }
-            return '0';
-        }
-        list($user) = explode('+', $user);
-        list($user) = explode('_', $user);
-        if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) {
-            $res = XDB::query("SELECT a.id
-                                 FROM virtual          AS v
-                           INNER JOIN virtual_redirect AS r USING(vid)
-                           INNER JOIN aliases          AS a ON (a.type = 'a_vie'
-                                                            AND r.redirect = CONCAT(a.alias, '@{$globals->mail->domain2}'))
-                                WHERE v.alias = CONCAT({?}, '@{$globals->mail->alias_dom}')", $user);
-            $id = $res->fetchOneCell();
-            return $id ? $id : '0';
-        }
-        $res = XDB::query("SELECT id FROM aliases WHERE alias = {?}", $user);
-        $id = $res->fetchOneCell();
-        return $id ? $id : '0';
+        $uf = new UserFilter(new UFC_Email($line[$field]));
+        $id = $uf->getUIDs();
+        return count($id) == 1 ? $id[0] : 0;
     }
 
     function createHash($line, $key)
index ffa0fa5..4ebb6a0 100644 (file)
         <input type="submit" name="action" value="add" />
       </td>
     </tr>
-    {iterate item=a from=$admins}
+    {foreach item=a from=$admins}
     <tr class="{cycle values="impair, pair"}">
-      <td><a href="profile/{$a.hruid}" class="popup2">{$a.prenom} {$a.nom} (X{$a.promo}){icon name=user_suit}</a></td>
-      <td class="right"><a href="admin/axletter/del/{$a.hruid}?token={xsrf_token}">{icon name=cross title="Retirer"}</a></td>
+      <td>{profile user=$a promo=true}</td>
+      <td class="right"><a href="admin/axletter/del/{$a->login()}?token={xsrf_token}">{icon name=cross title="Retirer"}</a></td>
     </tr>
-    {/iterate}
+    {/foreach}
   </table>
 </form>