Proposes xnet activation from member edition.
authorStéphane Jacob <sj@m4x.org>
Sun, 20 Mar 2011 18:03:58 +0000 (19:03 +0100)
committerStéphane Jacob <sj@m4x.org>
Sun, 20 Mar 2011 23:06:46 +0000 (00:06 +0100)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
modules/xnetgrp.php
templates/xnetgrp/membres-edit.tpl

index 3b9e3a1..b004fde 100644 (file)
@@ -729,20 +729,7 @@ class XnetGrpModule extends PLModule
                 $user = User::get($hruid);
             }
 
-            // Check if the user is has a pending or active account.
-            $active = XDB::fetchOneCell('SELECT  state = \'active\'
-                                           FROM  accounts
-                                          WHERE  uid = {?}',
-                                        $user->id());
-            $pending = XDB::fetchOneCell('SELECT  uid
-                                            FROM  register_pending_xnet
-                                           WHERE  uid = {?}',
-                                         $user->id());
-            $requested = AccountReq::isPending($user->id());
-
-            if (!($active || $pending || $requested)) {
-                $suggest_account_activation = true;
-            }
+            $suggest_account_activation = $this->suggest($user);
         }
 
         if ($user) {
@@ -758,6 +745,25 @@ class XnetGrpModule extends PLModule
         }
     }
 
+    // Check if the user has a pending or active account, and thus if we should her account's activation.
+    private function suggest(PlUser $user)
+    {
+        $active = XDB::fetchOneCell('SELECT  state = \'active\'
+                                       FROM  accounts
+                                      WHERE  uid = {?}',
+                                    $user->id());
+        $pending = XDB::fetchOneCell('SELECT  uid
+                                        FROM  register_pending_xnet
+                                       WHERE  uid = {?}',
+                                     $user->id());
+        $requested = AccountReq::isPending($user->id());
+
+        if ($active || $pending || $requested) {
+            return false;
+        }
+        return true;
+    }
+
     function handler_admin_member_suggest($page, $hruid, $email)
     {
         $page->changeTpl('xnetgrp/membres-suggest.tpl');
@@ -1008,6 +1014,12 @@ class XnetGrpModule extends PLModule
                 $page->trigSuccess('Données de l\'utilisateur mises à jour.');
             }
 
+            if (($user->type == 'xnet' && !$user->perms) && Post::b('suggest')) {
+                $request = new AccountReq(S::user(), $user->hruid, Post::t('email'), $globals->asso('nom'));
+                $request->submit();
+                $page->trigSuccess('Le compte va bientôt être activé.');
+            }
+
             // Update group params for user
             $perms = Post::v('group_perms');
             $comm  = Post::t('comm');
@@ -1084,6 +1096,7 @@ class XnetGrpModule extends PLModule
         $positions = str_replace(array('enum(', ')', '\''), '', $res[0]['Type']);
 
         $page->assign('user', $user);
+        $page->assign('suggest', $this->suggest($user));
         $page->assign('listes', $mmlist->get_lists($user->forlifeEmail()));
         $page->assign('alias', $user->emailGroupAliases($globals->asso('mail_domain')));
         $page->assign('positions', explode(',', $positions));
index 2be988b..a3347d2 100644 (file)
       </td>
     </tr>
     {/if}
+    {if $user->type eq 'xnet' && $suggest}
+    <tr>
+      <td colspan="2">
+        <label>
+          <input type="checkbox" name="suggest" />
+          coche cette case si tu souhaites qu'un compte « Extérieur » soit créé
+          pour cette personne et que nous lui envoyions un email afin qu'il ait
+          accès aux nombreuses fonctionnalités de Polytechnique.net (inscription
+          aux évènements, télépaiement, modération des listes de diffusion&hellip;)
+        </label>
+      </td>
+    </tr>
+    {/if}
   </table>
 
   <h2>Abonnement aux listes</h2>