From e33b29e5c75ec3dd8ddcc2fac2509f862bb18596 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Mon, 6 Dec 2010 20:44:28 +0100 Subject: [PATCH] Allows secretaries to validate entreprises (Closes #1361). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- include/validations.inc.php | 8 ++++++++ include/validations/entreprises.inc.php | 2 ++ modules/admin.php | 3 ++- templates/admin/validation.tpl | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/include/validations.inc.php b/include/validations.inc.php index 3698105..1600a1b 100644 --- a/include/validations.inc.php +++ b/include/validations.inc.php @@ -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.'); diff --git a/include/validations/entreprises.inc.php b/include/validations/entreprises.inc.php index da2e65e..671d93f 100644 --- a/include/validations/entreprises.inc.php +++ b/include/validations/entreprises.inc.php @@ -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 diff --git a/modules/admin.php b/modules/admin.php index 0ef787e..38d3f65 100644 --- a/modules/admin.php +++ b/modules/admin.php @@ -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) diff --git a/templates/admin/validation.tpl b/templates/admin/validation.tpl index 1ac43ff..b043382 100644 --- a/templates/admin/validation.tpl +++ b/templates/admin/validation.tpl @@ -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)}
-- 2.1.4