function admin($permission = NULL)
{
if (isset($permission)) {
- return $this->admin && isset($this->admin[$permission]); # check level
+ if (!$this->admin) {
+ return FALSE; # empty results
+ }
+ @list ($rootlevel, $sublevel) = explode(' ', $permission);
+ if ($sublevel and isset($this->admin[$rootlevel])) {
+ return TRUE; # root match
+ }
+ return isset($this->admin[$permission]); # check level
}
if (!@file_exists("{$this->dir}/.admin")) {
return FALSE; # not an admin
<?php
ob_clean();
-if (!$User or !$User->admin('edit'))
+if (!$User or !$User->admin("edit $Page$Args"))
abort("geen beheersrechten", '401 unauthorised');
if ($_FILES) {
if ($User) {
print '<div class="login"><p>';
printf('<span>Ingelogd: <b><a href="%s">%s</a></b></span>', '/login', $User->login);
- if ($User->admin('edit')) {
+ if ($User->admin("edit $Page$Args")) {
$editpage = $Page.$Args;
if (is_dir($editpage)) {
if (file_exists("$editpage/index.html")) {
@include 'footer.inc.html';
print "</footer>\n";
- global $User;
- if ($User and $User->admin('edit')) {
+ global $User, $Page, $Args;
+ if ($User and $User->admin("edit $Page$Args")) {
$ckesrc = '/lib/ckeditor'; # local install
if (!file_exists(DOCROOT . $ckesrc)) {
$ckesrc = '//cdn.ckeditor.com/4.7.3/full-all'; # remote fallback
elseif (file_exists("$Page$Args/index.html")) {
$staticpage = "$Page$Args/index.html";
}
-elseif ($User and $User->admin('edit')) {
+elseif ($User and $User->admin("edit $Page$Args")) {
$staticpage = (file_exists("$Page/template.inc.html") ? "$Page/template.inc.html" : 'template.inc.html');
}
}
else {
print $title;
- if ($versions and $User->admin('edit')) {
+ if ($versions and $User->admin("edit $Page$Args")) {
printf(' (%s)', implode(', ', array_map(
function ($format, $url) {
return sprintf('<a href="/%s">%s</a>', $url, $format);