Flag combination test becomes a feature of FlagSet
authorx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 6 Apr 2007 09:33:06 +0000 (09:33 +0000)
committerx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 6 Apr 2007 09:33:06 +0000 (09:33 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1666 839d8a87-29fc-0310-9880-83ba4fa771e5

classes/flagset.php
classes/platal.php
templates/lists/header_listes.tpl

index d06115f..40a3b14 100644 (file)
@@ -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
index 81900f0..e72fc0b 100644 (file)
@@ -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)
index 39ba296..c50398a 100644 (file)
@@ -46,7 +46,7 @@
       {/if}
     </td>
   </tr>
-  {if $details.own || $smarty.session.perms->hasFlag('admin') || $smarty.session.perms->hasFlag('groupadmin')}
+  {if $details.own || $smarty.session.perms->hasFlagCombination('admin,groupadmin')}
   <tr>
     <td><strong>Administrer la liste :</strong></td>
     <td>
@@ -73,7 +73,7 @@
     </td>
   </tr>
   {/if}
-  {if $smarty.session.perms->hasFlag('admin') || $smarty.session.perms->hasFlag('groupadmin')}
+  {if $smarty.session.perms->hasFlagCombination('admin,groupadmin')}
 
   <tr>
     <td><strong>Administrer (avancĂ©) :</strong></td>