Stores if a user wants her unsubscription to be remembered.
authorStéphane Jacob <sj@m4x.org>
Mon, 16 May 2011 09:03:03 +0000 (11:03 +0200)
committerStéphane Jacob <sj@m4x.org>
Mon, 16 May 2011 09:03:03 +0000 (11:03 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
classes/group.php
modules/xnetgrp.php
templates/xnetgrp/membres-del.tpl
upgrade/1.1.2/01_groups.sql

index c2ae53f..d17562c 100644 (file)
@@ -151,11 +151,11 @@ class Group
                      $group_id, $uid);
     }
 
-    static public function unsubscribe($group_id, $uid)
+    static public function unsubscribe($group_id, $uid, $remember)
     {
-        XDB::execute('INSERT INTO  group_former_members (asso_id, uid, unsubsciption_date)
-                           VALUES  ({?}, {?}, NOW())',
-                     $group_id, $uid);
+        XDB::execute('INSERT INTO  group_former_members (asso_id, uid, remember, unsubsciption_date)
+                           VALUES  ({?}, {?}, {?}, NOW())',
+                     $group_id, $uid, $remember);
         XDB::execute('DELETE FROM  group_members
                             WHERE  uid = {?} AND asso_id = {?}',
                      $uid, $group_id);
index 814fdcc..d3ecad4 100644 (file)
@@ -955,10 +955,10 @@ class XnetGrpModule extends PLModule
         $page->assign('users', $users);
     }
 
-    function unsubscribe(PlUser $user)
+    function unsubscribe(PlUser $user, $remember = false)
     {
         global $globals;
-        Group::unsubscribe($globals->asso('id'), $user->id());
+        Group::unsubscribe($globals->asso('id'), $user->id(), $remember);
 
         if ($globals->asso('notif_unsub')) {
             $mailer = new PlMailer('xnetgrp/unsubscription-notif.mail.tpl');
@@ -1025,7 +1025,7 @@ class XnetGrpModule extends PLModule
 
         $hasSingleGroup = ($user->groupCount() == 1);
 
-        if ($this->unsubscribe($user)) {
+        if ($this->unsubscribe($user, Post::b('remember'))) {
             $page->trigSuccess('Tu as été désinscrit du groupe avec succès.');
         } else {
             $page->trigWarning('Tu as été désinscrit du groupe, mais des erreurs se sont produites lors des désinscriptions des alias et des listes de diffusion.');
index 004a356..1ad940a 100644 (file)
@@ -52,6 +52,9 @@
     et le désabonner de toutes les listes de diffusion du groupe&nbsp;?
     {/if}
     </p>
+    {if $self}
+    <label><input type="checkbox" name="remember" />Empêcher ma réinscription au groupe par un animateur.</label><br /><br />
+    {/if}
     <input type="submit" name="confirm" value="Oui, je {if $self}me{else}le{/if} désinscris complètement du groupe !" />
   </div>
 </form>
index 4f999db..334b768 100644 (file)
@@ -1,6 +1,9 @@
+DROP TABLE IF EXISTS group_former_members;
+
 CREATE TABLE group_former_members (
   asso_id SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0,
   uid INT(11) UNSIGNED NOT NULL DEFAULT 0,
+  remember BOOLEAN NOT NULL DEFAULT FALSE,
   unsubsciption_date DATE NOT NULL,
   PRIMARY KEY (asso_id, uid),
   KEY uid (uid),