From: Stéphane Jacob Date: Mon, 9 Apr 2012 20:23:28 +0000 (+0200) Subject: Lists non-X accounts awaiting validation and allows to contact them again (Closes... X-Git-Tag: xorg/1.1.5~18 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=8408316e8b38f10b27c6a8587126f02018d3328b;p=platal.git Lists non-X accounts awaiting validation and allows to contact them again (Closes #1596, #1598). Signed-off-by: Stéphane Jacob --- diff --git a/ChangeLog b/ChangeLog index 76c6dbe..1fef152 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,7 @@ Bug/Wish: - #1603: Fixes Xnet events edition for users without profile -JAC * XnetGrp: + - #1596, #1598: Lists non-X accounts awaiting validation -JAC - #1609: Adds link to account on Xnet account validation -JAC * XnetNl: diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index 4fccb1b..e0ea0d4 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -38,6 +38,7 @@ class XnetGrpModule extends PLModule '%grp/annuaire/csv' => $this->make_hook('csv', AUTH_PASSWD, 'groupmember:groupannu'), '%grp/directory/sync' => $this->make_hook('directory_sync', AUTH_PASSWD, 'groupadmin'), '%grp/directory/unact' => $this->make_hook('non_active', AUTH_PASSWD, 'groupadmin'), + '%grp/directory/awact' => $this->make_hook('awaiting_active', AUTH_PASSWD, 'groupadmin'), '%grp/trombi' => $this->make_hook('trombi', AUTH_PASSWD, 'groupannu'), '%grp/geoloc' => $this->make_hook('geoloc', AUTH_PASSWD, 'groupannu'), '%grp/subscribe' => $this->make_hook('subscribe', AUTH_PASSWD, 'groups'), @@ -631,6 +632,60 @@ class XnetGrpModule extends PLModule $page->assign('users', $users); } + private function again($uid) + { + $data = XDB::fetchOneAssoc('SELECT hash, group_name, sender_name, email + FROM register_pending_xnet + WHERE uid = {?}', + $uid); + + $mailer = new PlMailer('xnet/account.mail.tpl'); + $mailer->addCc('validation+xnet_account@polytechnique.org'); + $mailer->setTo($data['email']); + $mailer->assign('hash', $data['hash']); + $mailer->assign('email', $data['email']); + $mailer->assign('group', $data['group_name']); + $mailer->assign('sender_name', $data['sender_name']); + $mailer->assign('again', true); + $mailer->assign('baseurl', Platal::globals()->xnet->xorg_baseurl); + $mailer->send(); + } + + function handler_awaiting_active($page) + { + global $globals; + $page->changeTpl('xnetgrp/awaiting_active.tpl'); + + XDB::execute('DELETE FROM register_pending_xnet + WHERE DATE_SUB(NOW(), INTERVAL 1 MONTH) > date'); + + $uids = XDB::fetchColumn('SELECT g.uid + FROM group_members AS g + INNER JOIN accounts AS a ON (a.uid = g.uid) + INNER JOIN register_pending_xnet AS p ON (p.uid = g.uid) + WHERE a.uid = g.uid AND g.asso_id = {?} AND a.type = \'xnet\' AND a.state = \'pending\'', + $globals->asso('id')); + + if (Post::has('again')) { + S::assert_xsrf_token(); + + $uids_to_again = array_intersect(array_keys(Post::v('again')), $uids); + foreach ($uids_to_again as $uid) { + $this->again($uid); + } + $page->trigSuccess('Relances effectuées avec succès.'); + } + + $registration_date = XDB::fetchAllAssoc('uid', 'SELECT uid, date + FROM register_pending_xnet + WHERE uid IN {?}', $uids); + + $users = User::getBulkUsersWithUIDs($uids); + $page->assign('users', $users); + $page->assign('registration_date', $registration_date); + + } + private function removeSubscriptionRequest($uid) { global $globals; @@ -1333,21 +1388,7 @@ class XnetGrpModule extends PLModule $page->trigSuccess('Le compte va bientôt être activé.'); } if (Post::b('again')) { - $data = XDB::fetchOneAssoc('SELECT hash, group_name, sender_name, email - FROM register_pending_xnet - WHERE uid = {?}', - $user->id()); - - $mailer = new PlMailer('xnet/account.mail.tpl'); - $mailer->addCc('validation+xnet_account@polytechnique.org'); - $mailer->setTo($data['email']); - $mailer->assign('hash', $data['hash']); - $mailer->assign('email', $data['email']); - $mailer->assign('group', $data['group_name']); - $mailer->assign('sender_name', $data['sender_name']); - $mailer->assign('again', true); - $mailer->assign('baseurl', Platal::globals()->xnet->xorg_baseurl); - $mailer->send(); + $this->again($user->id()); $page->trigSuccess('Relance effectuée avec succès.'); } } diff --git a/templates/xnetgrp/annuaire.tpl b/templates/xnetgrp/annuaire.tpl index ae775e3..e4200ed 100644 --- a/templates/xnetgrp/annuaire.tpl +++ b/templates/xnetgrp/annuaire.tpl @@ -46,6 +46,12 @@ Le groupe {$asso->nom} compte {$plset_total_count} membres : Lister les membres du groupe sans compte actif +
  • + + {icon name=group_gear title="Lister les membres du groupe ayant un compte en attente d'activation"} + Lister les membres du groupe ayant un compte en attente d'activation + +
  • {if $asso->has_ml}