Fix bug with users in both group_members and group_former_members.
authorAnne Limoges <anne.limoges_git@polytechnique.org>
Tue, 14 Jan 2014 13:43:48 +0000 (14:43 +0100)
committerAnne Limoges <anne.limoges_git@polytechnique.org>
Tue, 14 Jan 2014 13:43:48 +0000 (14:43 +0100)
classes/group.php
modules/xnetgrp.php

index acb4538..4ecc1a9 100644 (file)
@@ -166,8 +166,9 @@ class Group
     static public function unsubscribe($group_id, $uid, $remember)
     {
         XDB::execute('INSERT INTO  group_former_members (asso_id, uid, remember, unsubsciption_date)
-                           VALUES  ({?}, {?}, {?}, NOW())',
-                     $group_id, $uid, $remember);
+                           VALUES  ({?}, {?}, {?}, NOW())
+          ON DUPLICATE KEY UPDATE  remember = {?}, unsubsciption_date = NOW()',
+                     $group_id, $uid, $remember, $remember);
         XDB::execute('DELETE FROM  group_members
                             WHERE  uid = {?} AND asso_id = {?}',
                      $uid, $group_id);
index 9bebe87..7fbb85b 100644 (file)
@@ -514,10 +514,8 @@ class XnetGrpModule extends PLModule
 
             $data = array();
             foreach ($new_users as $uid) {
-                $data[] = XDB::format('({?}, {?})', $globals->asso('id'), $uid);
+                Group::subscribe($globals->asso('id'), $uid);
             }
-            XDB::rawExecute('INSERT INTO  group_members (asso_id, uid)
-                                  VALUES  ' . implode(',', $data));
         }
 
         if (Env::has('add_nonusers')) {
@@ -552,9 +550,7 @@ class XnetGrpModule extends PLModule
                                    VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')',
                              $hruid, $display_name, $full_name, $directory_name, $sort_name, $firstname, $lastname, $email);
                 $uid = XDB::insertId();
-                XDB::execute('INSERT INTO  group_members (asso_id, uid)
-                                   VALUES  ({?}, {?})',
-                             $globals->asso('id'), $uid);
+                Group::subscribe($globals->asso('id'), $uid);
             }
         }