From 9a7f3d8ec9c2a69584f2bb5cb0c50154f1cbb704 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Sun, 8 Aug 2010 17:58:27 +0200 Subject: [PATCH] Allows xnet to delete her account if she has not left. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- classes/user.php | 11 +++++------ modules/xnet.php | 7 +++++++ modules/xnetgrp.php | 6 +++--- templates/xnet/edit.tpl | 6 ++++++ templates/xnetgrp/membres-del.tpl | 2 +- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/classes/user.php b/classes/user.php index cc2404a..b503dfe 100644 --- a/classes/user.php +++ b/classes/user.php @@ -586,13 +586,12 @@ class User extends PlUser $this->id()); } - public function hasSingleGroup() + public function groupCount() { - $groupNb = XDB::fetchOneCell('SELECT COUNT(DISTINCT(asso_id)) - FROM group_members - WHERE uid = {?}', - $this->id()); - return ($groupNb == 1); + return XDB::fetchOneCell('SELECT COUNT(DISTINCT(asso_id)) + FROM group_members + WHERE uid = {?}', + $this->id()); } public function inGroup($asso_id) diff --git a/modules/xnet.php b/modules/xnet.php index beb375c..eac7a2e 100644 --- a/modules/xnet.php +++ b/modules/xnet.php @@ -238,6 +238,13 @@ class XnetModule extends PLModule if (Post::has('change')) { S::assert_xsrf_token(); + if ($user->groupCount() == 0 && Post::t('delete') == 'OUI') { + XDB::execute('DELETE FROM accounts + WHERE uid = {?}', + $user->id()); + pl_redirect('index'); + } + // Convert user status to X if (!Post::blank('login_X')) { $forlife = $this->changeLogin($page, $user, Post::t('login_X')); diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index d1b1264..bce331c 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -802,7 +802,7 @@ class XnetGrpModule extends PLModule S::assert_xsrf_token(); } - $hasSingleGroup = $user->hasSingleGroup(); + $hasSingleGroup = ($user->groupCount() == 1); if ($this->unsubscribe($user)) { $page->trigSuccess('Tu as été désinscrit du groupe avec succès.'); @@ -841,7 +841,7 @@ class XnetGrpModule extends PLModule S::assert_xsrf_token(); } - $hasSingleGroup = $user->hasSingleGroup(); + $hasSingleGroup = ($user->groupCount() == 1); if ($this->unsubscribe($user)) { $page->trigSuccess("{$user->fullName()} a été désinscrit du groupe !"); @@ -1029,7 +1029,7 @@ class XnetGrpModule extends PLModule } $page->addJsLink('password.js'); - $page->assign('onlyGroup', $user->hasSingleGroup()); + $page->assign('onlyGroup', ($user->groupCount() == 1)); $page->assign('user', $user); $page->assign('listes', $mmlist->get_lists($user->forlifeEmail())); $page->assign('alias', $user->emailAliases($globals->asso('mail_domain'), 'user', true)); diff --git a/templates/xnet/edit.tpl b/templates/xnet/edit.tpl index 4f44cc9..f00c1e7 100644 --- a/templates/xnet/edit.tpl +++ b/templates/xnet/edit.tpl @@ -100,6 +100,12 @@ + {if $user->groupCount() eq 0} +

+ Supprimer mon compte : 
+ (Écrire « OUI » en majuscule pour que la suppression soit prise en compte.) +

+ {/if}

diff --git a/templates/xnetgrp/membres-del.tpl b/templates/xnetgrp/membres-del.tpl index 0b29f52..6d926ab 100644 --- a/templates/xnetgrp/membres-del.tpl +++ b/templates/xnetgrp/membres-del.tpl @@ -46,7 +46,7 @@ {if $self} Êtes-vous sûr de vouloir vous désinscrire du groupe {$asso->nom} et de toutes les listes de diffusion associées ? - {if $user->type eq 'xnet' && $user->hasSingleGroup()} + {if $user->type eq 'xnet' && $user->groupCount() eq 1}
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.
-- 2.1.4