From: Stéphane Jacob Date: Mon, 6 Dec 2010 19:44:28 +0000 (+0100) Subject: Allows secretaries to validate entreprises (Closes #1361). X-Git-Tag: xorg/1.0.2~100 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=e33b29e5c75ec3dd8ddcc2fac2509f862bb18596;p=platal.git Allows secretaries to validate entreprises (Closes #1361). Signed-off-by: Stéphane Jacob --- 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)}