From: Anne Limoges Date: Tue, 14 Jan 2014 13:43:48 +0000 (+0100) Subject: Fix bug with users in both group_members and group_former_members. X-Git-Tag: xorg/1.1.12~58 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=c4643e47b53b9bdeef6d9a78b1de89bb3743bfdd;p=platal.git Fix bug with users in both group_members and group_former_members. --- diff --git a/classes/group.php b/classes/group.php index acb4538..4ecc1a9 100644 --- a/classes/group.php +++ b/classes/group.php @@ -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); diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index 9bebe87..7fbb85b 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -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); } }