Uses S::user()->login() instead of S::v('forlife') in all calls to PlUpload.
[platal.git] / modules / xnetgrp.php
index 3166bd0..0f3c2b7 100644 (file)
@@ -122,7 +122,7 @@ class XnetGrpModule extends PLModule
 
         if (S::logged()) {
             if (Env::has('read')) {
-                XDB::query('DELETE r.*
+                XDB::query('DELETE groupex.r.*
                               FROM groupex.announces_read AS r
                         INNER JOIN groupex.announces AS a ON a.id = r.announce_id
                              WHERE peremption < CURRENT_DATE()');
@@ -320,10 +320,10 @@ class XnetGrpModule extends PLModule
             $mls = array_keys(Env::v('ml', array()));
             $mbr = array_keys(Env::v('membres', array()));
 
-            require_once dirname(__FILE__) . '/xnetgrp/mail.inc.php';
+            $this->load('mail.inc.php');
             set_time_limit(120);
             $tos = get_all_redirects($mbr,  $mls, $mmlist);
-            $upload = PlUpload::get($_FILES['uploaded'], S::v('forlife'), 'xnet.emails', true);
+            $upload = PlUpload::get($_FILES['uploaded'], S::user()->login(), 'xnet.emails', true);
             send_xnet_mails($from, $sujet, $body, Env::v('wiki'), $tos, Post::v('replyto'), $upload, @$_FILES['uploaded']['name']);
             if ($upload) {
                 $upload->rm();
@@ -735,7 +735,7 @@ class XnetGrpModule extends PLModule
     {
         global $globals;
 
-        require_once dirname(__FILE__) . '/xnetgrp/mail.inc.php';
+        $this->load('mail.inc.php');
         $page->changeTpl('xnetgrp/annuaire-admin.tpl');
         $mmlist = new MMList(S::v('uid'), S::v('password'),
                              $globals->asso('mail_domain'));
@@ -790,26 +790,13 @@ class XnetGrpModule extends PLModule
             S::assert_xsrf_token();
         }
 
-        if (strpos($email, '@') === false) {
-            $x = true;
-        } else {
-            list(,$fqdn) = explode('@', $email, 2);
-            $fqdn = strtolower($fqdn);
-            $x = ($fqdn == 'polytechnique.org' || $fqdn == 'melix.org' ||
-                  $fqdn == 'm4x.org' || $fqdn == 'melix.net');
-        }
-        if ($x) {
-            require_once 'user.func.inc.php';
-            if ($forlife = get_user_forlife($email)) {
-                XDB::execute(
-                    'INSERT INTO  groupex.membres (uid,asso_id,origine)
-                          SELECT  user_id,{?},"X"
-                            FROM  auth_user_md5 AS u
-                      INNER JOIN  aliases       AS a ON (u.user_id = a.id)
-                           WHERE  a.alias={?}', $globals->asso('id'), $forlife);
-                pl_redirect("member/$forlife");
-            } else {
-                $page->trigError($email." n'est pas un alias polytechnique.org valide.");
+        if (!User::isForeignEmailAddress($email)) {
+            $user = User::get($email);
+            if ($user) {
+                XDB::execute("REPLACE INTO  groupex.membres (uid, asso_id, origine)
+                                    VALUES  ({?}, {?}, 'X')",
+                             $user->id(), $globals->asso('id'));
+                pl_redirect("member/" . $user->login());
             }
         } else {
             if (isvalid_email($email)) {
@@ -1183,29 +1170,11 @@ class XnetGrpModule extends PLModule
     function handler_rss(&$page, $user = null, $hash = null)
     {
         global $globals;
-        require_once('rss.inc.php');
-        $uid = init_rss('xnetgrp/announce-rss.tpl', $user, $hash, false);
-
-        if ($uid) {
-            $rss = XDB::iterator("SELECT a.id, a.titre, a.texte, a.contacts, a.create_date,
-                                         IF(u2.nom_usage != '', u2.nom_usage, u2.nom) AS nom, u2.prenom, u2.promo,
-                                         FIND_IN_SET('photo', a.flags) AS photo
-                                   FROM auth_user_md5 AS u
-                             INNER JOIN groupex.announces AS a ON ( (a.promo_min = 0 OR a.promo_min <= u.promo)
-                                                                  AND (a.promo_max = 0 OR a.promo_max <= u.promo))
-                             INNER JOIN auth_user_md5 AS u2 ON (u2.user_id = a.user_id)
-                             WHERE u.user_id = {?} AND peremption >= NOW() AND a.asso_id = {?}",
-                                   $uid, $globals->asso('id'));
-        } else {
-            $rss = XDB::iterator("SELECT a.id, a.titre, a.texte, a.create_date,
-                                         IF(u.nom_usage != '', u.nom_usage, u.nom) AS nom, u.prenom, u.promo
-                                    FROM groupex.announces AS a
-                             INNER JOIN auth_user_md5 AS u USING(user_id)
-                             WHERE FIND_IN_SET('public', a.flags) AND peremption >= NOW() AND a.asso_id = {?}",
-                                  $globals->asso('id'));
-        }
         $page->assign('asso', $globals->asso());
-        $page->assign('rss', $rss);
+
+        $this->load('feed.inc.php');
+        $feed = new XnetGrpEventFeed();
+        return $feed->run($page, $user, $hash, false);
     }
 
     private function upload_image(PlPage &$page, PlUpload &$upload)
@@ -1237,7 +1206,7 @@ class XnetGrpModule extends PLModule
                 exit;
             }
         } else {
-            $upload = new PlUpload(S::v('forlife'), 'xnetannounce');
+            $upload = new PlUpload(S::user()->login(), 'xnetannounce');
             if ($upload->exists() && $upload->isType('image')) {
                 header('Content-Type: ' . $upload->contentType());
                 echo $upload->getContents();
@@ -1278,7 +1247,7 @@ class XnetGrpModule extends PLModule
             $art['xorg']       = Post::has('xorg');
             $art['nl']         = Post::has('nl');
             $art['event']      = Post::v('event');
-            $upload     = new PlUpload(S::v('forlife'), 'xnetannounce');
+            $upload     = new PlUpload(S::user()->login(), 'xnetannounce');
             $this->upload_image($page, $upload);
 
             $art['contact_html'] = $art['contacts'];