From aa5836d7f3ab269718f45f9ffa290b942b662632 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Fri, 6 Apr 2007 09:33:06 +0000 Subject: [PATCH] Flag combination test becomes a feature of FlagSet git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1666 839d8a87-29fc-0310-9880-83ba4fa771e5 --- classes/flagset.php | 20 ++++++++++++++++++++ classes/platal.php | 18 +----------------- templates/lists/header_listes.tpl | 4 ++-- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/classes/flagset.php b/classes/flagset.php index d06115f..40a3b14 100644 --- a/classes/flagset.php +++ b/classes/flagset.php @@ -69,6 +69,26 @@ class Flagset return 0; } + /** test flag combination + */ + public function hasFlagCombination($flag) + { + $perms = explode(',', $flag); + foreach ($perms as $perm) + { + $ok = true; + $rights = explode(':', $perm); + foreach ($rights as $right) { + if (($right{0} == '!' && $this->hasFlag(substr($right, 1))) || !$this->hasFlag($right)) { + $ok = false; + } + } + if ($ok) { + return true; + } + } + return false; + } /** remove flag * @param $flag XXX diff --git a/classes/platal.php b/classes/platal.php index 81900f0..e72fc0b 100644 --- a/classes/platal.php +++ b/classes/platal.php @@ -181,23 +181,7 @@ class Platal return true; } $s_perms = S::v('perms'); - - // hook perms syntax is - $perms = explode(',', $perms); - foreach ($perms as $perm) - { - $ok = true; - $rights = explode(':', $perm); - foreach ($rights as $right) { - if (($right{0} == '!' && $s_perms->hasFlag(substr($right, 1))) || !$s_perms->hasFlag($right)) { - $ok = false; - } - } - if ($ok) { - return true; - } - } - return false; + return $s_perms->hasFlagCombination($perms); } private function call_hook(PlatalPage &$page) diff --git a/templates/lists/header_listes.tpl b/templates/lists/header_listes.tpl index 39ba296..c50398a 100644 --- a/templates/lists/header_listes.tpl +++ b/templates/lists/header_listes.tpl @@ -46,7 +46,7 @@ {/if} - {if $details.own || $smarty.session.perms->hasFlag('admin') || $smarty.session.perms->hasFlag('groupadmin')} + {if $details.own || $smarty.session.perms->hasFlagCombination('admin,groupadmin')} Administrer la liste : @@ -73,7 +73,7 @@ {/if} - {if $smarty.session.perms->hasFlag('admin') || $smarty.session.perms->hasFlag('groupadmin')} + {if $smarty.session.perms->hasFlagCombination('admin,groupadmin')} Administrer (avancé) : -- 2.1.4