function admin($permission = NULL)
{
if (isset($permission)) {
- return $this->admin && isset($this->admin[$permission]); # check level
+ if (!$this->admin) {
+ return FALSE; # empty results
+ }
+ preg_match_all('{[ /]}', $permission, $parts, PREG_OFFSET_CAPTURE);
+ foreach ($parts[0] as $part) {
+ if (isset($this->admin[substr($permission, 0, $part[1])])) {
+ return TRUE; # partial match
+ }
+ }
+ return isset($this->admin[$permission]); # check level
}
if (!@file_exists("{$this->dir}/.admin")) {
return FALSE; # not an admin