membres update is now OK, remains members add
authorPierre Habouzit (MadCoder <pierre.habouzit@m4x.org>
Thu, 28 Apr 2005 09:47:37 +0000 (09:47 +0000)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 26 Jun 2008 21:28:47 +0000 (23:28 +0200)
git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-599

ChangeLog
htdocs.net/groupe/membres-edit.php
templates/xnet/groupe/membres-edit.tpl

index 654fc3f..aa9445d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,12 +3,14 @@ VERSION 0.9.6                                                                                                          -- May 2004
 
 New :
 
-       * Profule :
+       * Profile :
                - Stayed down students (orange) management.                                                     -Car
                
        * Search :
                - Last improvements (clean code for search now !).                                      -MC
 
+       * Polytechnique.net in now in plat/al !                                                                 -MC
+
 Bug/Wish :
 
        * Admin :
@@ -19,6 +21,9 @@ Bug/Wish :
 
 Fixes (from 0.9.5 branch) :
 
+       * Search :
+               - #304: next/prev links were missing if #pages was 2.                           -MC
+
 ================================================================================
 VERSION 0.9.5                                                                                                           07 Apr 2004
 
index 9d181da..064d6bc 100644 (file)
                     "SELECT  user_id AS uid, u.promo, u.nom, u.prenom, b.alias,
                              CONCAT(b.alias, '@m4x.org') AS email,
                              CONCAT(b.alias, '@polytechnique.org') AS email2,
-                             m.perms='admin', m.origine
+                             m.perms='admin' AS perms, m.origine
                        FROM  auth_user_md5   AS u
                  INNER JOIN  aliases         AS a ON ( u.user_id = a.id AND a.type != 'homonyme' )
                  INNER JOIN  aliases         AS b ON ( u.user_id = b.id AND b.type = 'a_vie' )
-                 INNER JOIN  groupex.membres AS m ON ( m.uid = u.user_id )
-                      WHERE  a.alias = {?} AND u.user_id < 50000", $mbox);
+                 INNER JOIN  groupex.membres AS m ON ( m.uid = u.user_id AND asso_id={?})
+                      WHERE  a.alias = {?} AND u.user_id < 50000", $globals->asso('id'), $mbox);
             $user = $res->fetchOneAssoc();
         } else {
             $res = $globals->xdb->query(
 
         $user = get_infos(Env::get('edit'));
         if (empty($user)) { header("Location: annuaire.php"); }
-        $page->assign('user', $user);
 
         require 'lists.inc.php';
         $client =& lists_xmlrpc(Session::getInt('uid'), Session::get('password'), $globals->asso('mail_domain'));
 
-        if (false) {
-            // TODO : deal with form
+        if (Post::has('change')) {
+
+            if ($user['origine'] != 'X')
+            {
+                $globals->xdb->query('UPDATE groupex.membres SET prenom={?}, nom={?}, email={?} WHERE uid={?} AND asso_id={?}',
+                        Post::get('prenom'), Post::get('nom'), Post::get('email'), $user['uid'], $globals->asso('id'));
+                $user['nom']    = Post::get('nom');
+                $user['prenom'] = Post::get('prenom');
+                $user['email']  = Post::get('email');
+                $user['email2'] = Post::get('email');
+            }
+
+            $perms = Post::getInt('is_admin');
+            if ($user['perms'] != $perms) {
+                $globals->xdb->query('UPDATE groupex.membres SET perms={?} WHERE uid={?} AND asso_id={?}',
+                    $perms ? 'admin' : 'membre', $user['uid'], $globals->asso('id'));
+                $user['perms'] = $perms;
+                $page->trig('permissions modifiées');
+            }
+
+            foreach (Env::getMixed('ml1',array()) as $ml => $state) {
+                $ask = empty($_REQUEST['ml2'][$ml]) ? 0 : 2;
+                if ($ask == $state) continue;
+                if ($state == '1') {
+                    $page->trig("{$user['prenom']} {$user['nom']} a actuellement une demande d'inscription en cours sur <strong>$ml@</strong> !!!");
+                } elseif ($ask) {
+                    $client->mass_subscribe($ml, Array($user['email2']));
+                    $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml@");
+                } else {
+                    $client->mass_unsubscribe($ml, Array($user['email2']));
+                    $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml@");
+                }
+            }
+
+            foreach (Env::getMixed('ml3', array()) as $ml => $state) {
+                $ask = !empty($_REQUEST['ml4'][$ml]);
+                if($state == $ask) continue;
+                if($ask) {
+                    $globals->xdb->query("INSERT INTO  virtual_redirect (vid,redirect)
+                                               SELECT  vid,{?} FROM virtual WHERE alias={?}",
+                                         $user['email'], $ml);
+                    $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml");
+                } else {
+                    $globals->xdb->query("DELETE FROM  virtual_redirect
+                                                USING  virtual_redirect
+                                           INNER JOIN  virtual USING(vid)
+                                                WHERE  redirect={?} AND alias={?}", $user['email'], $ml);
+                    $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml");
+                }
+            }
         }
         
+        $page->assign('user', $user);
         $listes = $client->get_lists($user['email2']);
         $page->assign('listes', $listes);
 
index 76069c0..213a1ad 100644 (file)
   Édition du profil de {$user.prenom} {$user.nom}
   {if $user.origine eq 'X'}
   (X{$user.promo})
-  <a href="https://www.polytechnique.org/fiche.php?user={$user.alias}"><img src="{rel}/images/loupe.gif" alt="Voir la fiche"></a>
+  <a href="https://www.polytechnique.org/fiche.php?user={$user.alias}"><img src="{rel}/images/loupe.gif" alt="Voir la fiche" /></a>
   {/if}
-  <a href="?del={$user.email}"><img src="{rel}/images/del.png" alt="Suppression du compte"></a>
-  <a href="mailto:{$user.email}"><img src="{rel}/images/mail.png" alt="Ecrire un mail"></a>
+  <a href="?del={$user.email}"><img src="{rel}/images/del.png" alt="Suppression du compte" /></a>
+  <a href="mailto:{$user.email}"><img src="{rel}/images/mail.png" alt="Ecrire un mail" /></a>
 </h2>
 
 <form method="post" action="{$smarty.server.REQUEST_URI}">
@@ -37,9 +37,9 @@
         Permissions :
       </td>
       <td>
-        <select name="is_admin">";
-          <option value="0" {if $user.perms neq admin}selected="selected"{/if}>Membre</option>
-          <option value="1" {if $user.perms eq admin}selected="selected"{/if}>Administrateur</option>
+        <select name="is_admin">
+          <option value="0" {if !$user.perms}selected="selected"{/if}>Membre</option>
+          <option value="1" {if $user.perms}selected="selected"{/if}>Administrateur</option>
         </select>
       </td>
     </tr>
@@ -90,7 +90,7 @@
         <a href='listes-members.php?liste={$liste.list}'>
           {$liste.list}
           {if $liste.priv}&nbsp;<sup>&Dagger;</sup>{/if}
-          {if $liste.own}&nbsp;<sup>&Dagger;</sup>{/if}
+          {if $liste.own}&nbsp;<sup>*</sup>{/if}
         </a>
       </td>
       <td>{$liste.desc}</td>
     {/foreach}
   </table>
 
-  <br />
   <div class="center">
+    <br />
     <input type="submit" name='change' value="Valider ces changements" />
     &nbsp;
     <input type="reset" value="Annuler ces changements" />