Removes useless variable.
[platal.git] / modules / xnetgrp.php
index 2ec9e2c..fa804b5 100644 (file)
@@ -825,6 +825,13 @@ class XnetGrpModule extends PLModule
         if (empty($user)) {
             return PL_NOT_FOUND;
         }
+
+        global $globals;
+
+        if (!$user->inGroup($globals->asso('id'))) {
+            pl_redirect('annuaire');
+        }
+
         $page->assign('self', false);
         $page->assign('user', $user);
 
@@ -834,14 +841,36 @@ class XnetGrpModule extends PLModule
             S::assert_xsrf_token();
         }
 
+        $hasSingleGroup = $user->hasSingleGroup();
+
         if ($this->unsubscribe($user)) {
             $page->trigSuccess("{$user->fullName()} a été désinscrit du groupe !");
         } else {
             $page->trigWarning("{$user->fullName()} a été désinscrit du groupe, mais des erreurs subsistent !");
         }
+
+        // Either deletes or notifies site administrators if it was the last group
+        // of a xnet account.
+        if ($user->type == 'xnet' && $hasSingleGroup) {
+            if ($user->state == 'pending') {
+                // If the user has never logged in the site, we delete her account.
+                XDB::execute('DELETE FROM  acounts
+                                    WHERE  uid = {?}',
+                             $user->id());
+            } else {
+                // It the user has already logged in the site, we notify site
+                // administrators that there is a new xnet account without any
+                // group.
+                $mailer = new PlMailer('xnetgrp/unsubscription.mail.tpl');
+                $mailer->assign('user', $user);
+                $mailer->assign('groupId', $globals->asso('id'));
+                $mailer->assign('groupName', $globals->asso('nom'));
+                $mailer->send();
+            }
+        }
     }
 
-    private function changeLogin(PlPage &$page, PlUser &$user, MMList &$mmlist, $login)
+    private function changeLogin(PlPage &$page, PlUser &$user, $login)
     {
         // Search the user's uid.
         $xuser = User::getSilent($login);
@@ -889,7 +918,7 @@ class XnetGrpModule extends PLModule
 
             // Convert user status to X
             if (!Post::blank('login_X')) {
-                $forlife = $this->changeLogin($page, $user, $mmlist, Post::t('login_X'));
+                $forlife = $this->changeLogin($page, $user, Post::t('login_X'));
                 if ($forlife) {
                     pl_redirect('member/' . $forlife);
                 }