2006 => 2007 Happy New Year\!
[platal.git] / bin / cron / checkdb.php
index 37134c0..7cd09c5 100755 (executable)
@@ -1,7 +1,7 @@
-#!/usr/bin/php4 -q
+#!/usr/bin/php5 -q
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2006 Polytechnique.org                              *
+ *  Copyright (C) 2003-2007 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -116,10 +116,26 @@ check("select p.* from photo as p left join auth_user_md5 as u on u.user_id=p.ui
 
 /* validite des champ pays et region */
 check("SELECT a.uid, a.country FROM adresses AS a LEFT JOIN geoloc_pays AS gp ON a.country = gp.a2 WHERE gp.pays IS NULL","donne la liste des pays dans les profils qui n'ont pas d'entree correspondante dans geoloc_pays");
-check("SELECT a.uid, a.country, a.region FROM adresses AS a LEFT JOIN geoloc_region AS gr ON (a.country = gr.a2 AND a.region = gr.region) WHERE a.region != '' AND gr.name IS NULL","donne la liste des regions dans les profils qui n'ont pas d'entree correspondante dans geoloc_region");
+/* les régions ne sont valides que dans les adresses pros */
+check("SELECT e.uid, e.country, e.region FROM entreprises AS e LEFT JOIN geoloc_region AS gr ON (e.country = gr.a2 AND e.region = gr.region) WHERE e.region != '' AND gr.name IS NULL","donne la liste des regions dans les profils pros qui n'ont pas d'entree correspondante dans geoloc_region");
 
-/* donne la liste des emails qui apparaissent 2 fois dans la table emails pour des personnes différentes */
-info("SELECT  a1.alias, a2.alias, e1.email, e2.flags, w.state, w.description
+/* donne la liste des emails douteux que les administrateurs n'ont pas encore traité */
+check("SELECT  a1.alias, a2.alias, e1.email, e2.flags
+        FROM  emails        AS e1
+        INNER JOIN  emails        AS e2 ON(e1.email = e2.email AND e1.uid!=e2.uid AND 
+            (e1.uid<e2.uid  OR  NOT FIND_IN_SET(e2.flags,'active'))
+            )
+        INNER JOIN  emails_watch  AS w  ON(w.email = e1.email AND w.state = 'pending')
+        INNER JOIN  aliases       AS a1 ON(a1.id=e1.uid AND a1.type='a_vie')
+        INNER JOIN  aliases       AS a2 ON(a2.id=e2.uid AND a2.type='a_vie')
+        INNER JOIN  auth_user_md5 AS u1 ON(a1.id=u1.user_id)
+        INNER JOIN  auth_user_md5 AS u2 ON(a2.id=u2.user_id)
+        WHERE  FIND_IN_SET(e1.flags,'active') AND u1.nom!=u2.nom_usage AND u2.nom!=u1.nom_usage
+        ORDER BY  a1.alias",
+        "donne la liste des emails douteux actuellement non traites par les administrateurs");
+
+/* donne la liste des emails dangereux ou douteux*/
+info("SELECT  a1.alias, a2.alias, e1.email, e2.flags, w.state
         FROM  emails        AS e1
         INNER JOIN  emails        AS e2 ON(e1.email = e2.email AND e1.uid!=e2.uid AND 
             (e1.uid<e2.uid  OR  NOT FIND_IN_SET(e2.flags,'active'))
@@ -131,14 +147,16 @@ info("SELECT  a1.alias, a2.alias, e1.email, e2.flags, w.state, w.description
         INNER JOIN  auth_user_md5 AS u2 ON(a2.id=u2.user_id)
         WHERE  FIND_IN_SET(e1.flags,'active') AND u1.nom!=u2.nom_usage AND u2.nom!=u1.nom_usage
         ORDER BY  a1.alias",
-        "donne la liste des emails qui apparaissent 2 fois dans la table emails pour des personnes différentes");
+        "donne la liste des emails dangereux ou douteux");
+
 
 /* vérif que tous les inscrits ont bien au moins un email actif */
-check("SELECT  u.user_id, a.alias
+info("SELECT  u.user_id, a.alias
         FROM  auth_user_md5  AS u 
         INNER JOIN  aliases        AS a ON (u.user_id = a.id AND a.type='a_vie')
         LEFT JOIN  emails         AS e ON(u.user_id=e.uid AND FIND_IN_SET('active',e.flags))
-        WHERE  e.uid IS NULL AND u.deces = 0",
+        WHERE  e.uid IS NULL AND u.deces = 0
+        ORDER BY u.promo, u.nom, u.prenom",
         "donne les inscrits qui n'ont pas d'email actif");
 
 /* donne la liste des homonymes qui ont un alias égal à leur loginbis depuis plus d'un mois */