Ask for account deletion when a xnet user unsubscribes from her la st group.
authorStéphane Jacob <sj@m4x.org>
Sat, 7 Aug 2010 15:34:20 +0000 (17:34 +0200)
committerStéphane Jacob <sj@m4x.org>
Sat, 7 Aug 2010 17:31:44 +0000 (19:31 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
modules/xnetgrp.php
templates/xnetgrp/membres-del.tpl

index b962b4e..2ec9e2c 100644 (file)
@@ -790,12 +790,11 @@ class XnetGrpModule extends PLModule
     {
         $page->changeTpl('xnetgrp/membres-del.tpl');
         $user = S::user();
-        $uid  = S::user()->id();
-        if (empty($uid)) {
+        if (empty($user)) {
             return PL_NOT_FOUND;
         }
         $page->assign('self', true);
-        $page->assign('user', $uid);
+        $page->assign('user', $user);
 
         if (!Post::has('confirm')) {
             return;
@@ -803,10 +802,18 @@ class XnetGrpModule extends PLModule
             S::assert_xsrf_token();
         }
 
+        $hasSingleGroup = $user->hasSingleGroup();
+
         if ($this->unsubscribe($user)) {
-            $page->trigSuccess('Vous avez été désinscrit du groupe avec succès.');
+            $page->trigSuccess('Tu as été désinscrit du groupe avec succès.');
         } else {
-            $page->trigWarning('Vous avez été désinscrit du groupe, mais des erreurs se sont produites lors des désinscriptions des alias et des listes de diffusion.');
+            $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.');
+        }
+        if ($user->type == 'xnet' && $hasSingleGroup && Post::has('accountDeletion')) {
+            XDB::execute('DELETE FROM  acounts
+                                WHERE  uid = {?}',
+                         $user->id());
+            $page->trigSuccess('Ton compte a bien été supprimé.');
         }
         $page->assign('is_member', is_member(true));
     }
@@ -818,6 +825,7 @@ class XnetGrpModule extends PLModule
         if (empty($user)) {
             return PL_NOT_FOUND;
         }
+        $page->assign('self', false);
         $page->assign('user', $user);
 
         if (!Post::has('confirm')) {
index 30ca337..0b29f52 100644 (file)
@@ -20,7 +20,7 @@
 {*                                                                        *}
 {**************************************************************************}
 
-{if $smarty.post.confirm}
+{if t($smarty.post.confirm)}
 
 <p class="descr">
 {if !$self}
     {if $self}
     Êtes-vous sûr de vouloir vous désinscrire du groupe {$asso->nom} et de toutes
     les listes de diffusion associées&nbsp;?
+    {if $user->type eq 'xnet' && $user->hasSingleGroup()}
+    <br />C'est le seul groupe auquel tu es actuellement inscrit sur polytechnique.net.
+    Si, malgré cela, tu souhaites garder ton accès à Polytechnique.net, décoche la case
+    ci-dessous.<br />
+    <label><input type="checkbox" name="accountDeletion" checked="checked" />Supprimer mon compte.</label>
+    {/if}
     {else}
     Êtes-vous sûr de vouloir supprimer {$user->fullName()} du groupe,
     lui retirer tous les droits associés à son statut de membre
     et le désabonner de toutes les listes de diffusion du groupe&nbsp;?
     {/if}
     </p>
-    <input type='submit' name='confirm' value='Oui, je {if $self}me{else}le{/if} désinscris complètement du groupe !' />
+    <input type="submit" name="confirm" value="Oui, je {if $self}me{else}le{/if} désinscris complètement du groupe !" />
   </div>
 </form>