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
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)
{/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>
</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>