Allows secretaries to validate entreprises (Closes #1361).
authorStéphane Jacob <sj@m4x.org>
Mon, 6 Dec 2010 19:44:28 +0000 (20:44 +0100)
committerStéphane Jacob <sj@m4x.org>
Wed, 8 Dec 2010 12:32:45 +0000 (13:32 +0100)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
include/validations.inc.php
include/validations/entreprises.inc.php
modules/admin.php
templates/admin/validation.tpl

index 3698105..1600a1b 100644 (file)
@@ -42,6 +42,9 @@ abstract class Validate
     // Validations rules: comments for administrators.
     public $rules = 'Mieux vaut laisser une demande de validation à un autre administrateur que de valider une requête illégale ou que de refuser une demande légitime.';
 
+    // Unless differently stated, a validation must be done by a site administrator.
+    public $requireAdmin = true;
+
     // }}}
     // {{{ constructor
 
@@ -126,6 +129,11 @@ abstract class Validate
      */
     public function handle_formu()
     {
+        if ($this->requireAdmin && !S::admin()) {
+            $this->trigError('Vous n\'avez pas les permissions nécessaires pour valider cette demande.');
+            return false;
+        }
+
         if (Env::has('delete')) {
             $this->clean();
             $this->trigSuccess('Requête supprimée.');
index da2e65e..671d93f 100644 (file)
@@ -41,6 +41,8 @@ class EntrReq extends ProfileValidate
     public $suggestions;
     public $rules = 'Si l\'entreprise est déjà présente sous un autre nom dans la liste des suggestions, remplacer son nom par celui-ci avant de valider. Laisser les autres champs tels quels.';
 
+    public $requireAdmin = false;
+
     // }}}
     // {{{ constructor
 
index 0ef787e..38d3f65 100644 (file)
@@ -42,7 +42,7 @@ class AdminModule extends PLModule
             'admin/skins'                  => $this->make_hook('skins',                  AUTH_MDP, 'admin'),
             'admin/user'                   => $this->make_hook('user',                   AUTH_MDP, 'admin'),
             'admin/add_accounts'           => $this->make_hook('add_accounts',           AUTH_MDP, 'admin'),
-            'admin/validate'               => $this->make_hook('validate',               AUTH_MDP, 'admin'),
+            'admin/validate'               => $this->make_hook('validate',               AUTH_MDP, 'admin,edit_directory'),
             'admin/validate/answers'       => $this->make_hook('validate_answers',       AUTH_MDP, 'admin'),
             'admin/wiki'                   => $this->make_hook('wiki',                   AUTH_MDP, 'admin'),
             'admin/ipwatch'                => $this->make_hook('ipwatch',                AUTH_MDP, 'admin'),
@@ -1126,6 +1126,7 @@ class AdminModule extends PLModule
         global $globals;
         $globals->updateNbValid();
         $page->assign('vit', Validate::iterate());
+        $page->assign('isAdmin', S::admin());
     }
 
     function handler_validate_answers(&$page, $action = 'list', $id = null)
index 1ac43ff..b043382 100644 (file)
@@ -37,7 +37,7 @@ function toggleField(name, id, obj) {
 
 {iterate item=valid from=$vit}
 {assign var=type value=$valid->type}
-{if !t($hide_requests[$type])}
+{if !t($hide_requests[$type]) && !($valid->requireAdmin && !$isAdmin)}
 <br />
 <table class="bicol">
   <tr>