Replace generic .admin files by lines of right identifiers.
Check specific rights for: edit, user, site, news, foto.
12 files changed:
return rtrim(@file_get_contents("{$this->dir}/email.txt"));
}
return rtrim(@file_get_contents("{$this->dir}/email.txt"));
}
+ function admin($permission = NULL)
- return @file_exists("{$this->dir}/.admin");
+ if (isset($permission)) {
+ return $this->admin && isset($this->admin[$permission]); # check level
+ }
+ if (!@file_exists("{$this->dir}/.admin")) {
+ return FALSE; # not an admin
+ }
+ return array_fill_keys(explode("\n", file_get_contents("{$this->dir}/.admin")), TRUE);
-if (!$User or !$User->admin) {
+if (!$User or !$User->admin('foto')) {
http_response_code(403);
print "Beheerrechten verplicht voor instellen van covers\n";
exit;
http_response_code(403);
print "Beheerrechten verplicht voor instellen van covers\n";
exit;
-if (!$User or !$User->admin)
+if (!$User or !$User->admin('news'))
abort("geen beheersrechten", '401 unauthorised');
if (!$_POST)
abort("geen beheersrechten", '401 unauthorised');
if (!$_POST)
-if (!$User or !$User->admin)
+if (!$User or !$User->admin('edit'))
abort("geen beheersrechten", '401 unauthorised');
if ($_FILES) {
abort("geen beheersrechten", '401 unauthorised');
if ($_FILES) {
closeElClasses: [],
shareButtons: [
<?php
closeElClasses: [],
shareButtons: [
<?php
-if ($User and $User->admin) {
+if ($User and $User->admin('foto')) {
printf("\t\t\t{id:'%s', label:'%s', url:'%s'},\n",
'cover', 'Cover instellen', "/edit/foto/cover$Args?img={{image_url}}"
);
printf("\t\t\t{id:'%s', label:'%s', url:'%s'},\n",
'cover', 'Cover instellen', "/edit/foto/cover$Args?img={{image_url}}"
);
$rootdir = $Page . $Args;
$rootdir = $Page . $Args;
-if ($User and $User->admin) {
+if ($User and $User->admin('foto')) {
$access = '🔓 Openbaar';
if (isset($PageAccess)) {
$access = "🔒 Bewoners";
$access = '🔓 Openbaar';
if (isset($PageAccess)) {
$access = "🔒 Bewoners";
-if (!$User or !$User->admin) {
+if (!$User or !$User->admin('site')) {
ob_clean();
http_response_code(403);
?>
ob_clean();
http_response_code(403);
?>
$replyform = $Page == 'melding' && !empty($User);
@list ($year, $page) = explode('/', trim($Args, '/'));
$replyform = $Page == 'melding' && !empty($User);
@list ($year, $page) = explode('/', trim($Args, '/'));
-if ($User and $User->admin) {
+if ($User and $User->admin('news')) {
print '<script src="/nieuws/edit.js"></script>'."\n";
}
if ($page and !is_numeric($page)) {
print '<script src="/nieuws/edit.js"></script>'."\n";
}
if ($page and !is_numeric($page)) {
- $edit = $User && $User->admin ? htmlspecialchars(@$_GET['edit']) : NULL;
+ $edit = $User && $User->admin('news') ? htmlspecialchars(@$_GET['edit']) : NULL;
if ($edit) {
$Article->title = $edit;
}
$Place[1] = ' <small class="date">'.$Article->date.'</small>';
print preg_replace('{(?<=<h2>)(.*?)(?=</h2>)}', ($edit ?: '\1').' [[1]]', ob_get_clean());
if ($edit) {
$Article->title = $edit;
}
$Place[1] = ' <small class="date">'.$Article->date.'</small>';
print preg_replace('{(?<=<h2>)(.*?)(?=</h2>)}', ($edit ?: '\1').' [[1]]', ob_get_clean());
- if ($User and $User->admin) {
+ if ($User and $User->admin('news')) {
$taglist = [];
foreach (glob("$Page/.tags/*") as $tagpath) {
$tagname = pathinfo($tagpath, PATHINFO_BASENAME);
$taglist = [];
foreach (glob("$Page/.tags/*") as $tagpath) {
$tagname = pathinfo($tagpath, PATHINFO_BASENAME);
if ($User) {
print '<div class="login"><p>';
printf('<span>Ingelogd: <b><a href="%s">%s</a></b></span>', '/login', $User->login);
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')) {
$editpage = $Page.$Args;
if (is_dir($editpage)) {
if (file_exists("$editpage/index.html")) {
$editpage = $Page.$Args;
if (is_dir($editpage)) {
if (file_exists("$editpage/index.html")) {
print "</footer>\n";
global $User;
print "</footer>\n";
global $User;
- if ($User and $User->admin) {
+ if ($User and $User->admin('edit')) {
$ckesrc = '/lib/ckeditor'; # local install
if (!file_exists(DOCROOT . $ckesrc)) {
$ckesrc = '//cdn.ckeditor.com/4.7.3/full-all'; # remote fallback
$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 (file_exists("$Page$Args/index.html")) {
$staticpage = "$Page$Args/index.html";
}
-elseif ($User and $User->admin) {
+elseif ($User and $User->admin('edit')) {
$staticpage = (file_exists("$Page/template.html") ? "$Page/template.html" : 'template.html');
}
$staticpage = (file_exists("$Page/template.html") ? "$Page/template.html" : 'template.html');
}
+if ($User->admin('user')
and !empty($Place['user']) and $Place['user'] !== $User->login) {
$username = strtolower($Place['user']);
unset($user);
and !empty($Place['user']) and $Place['user'] !== $User->login) {
$username = strtolower($Place['user']);
unset($user);
foreach ($cols as $col => &$colconf) {
if (isset($colconf['visible'])) {
foreach ($cols as $col => &$colconf) {
if (isset($colconf['visible'])) {
- if ($colconf['visible'] == 'admin' and !$User->admin) {
+ if ($colconf['visible'] == 'admin' and !$User->admin('user')) {
$colconf['visible'] = FALSE;
continue;
}
$colconf['visible'] = FALSE;
continue;
}
foreach ($users as $user) {
$name = $user->name ?: $user->login;
foreach ($users as $user) {
$name = $user->name ?: $user->login;
- if ($GLOBALS['User'] and $GLOBALS['User']->admin) {
+ if ($GLOBALS['User'] and $GLOBALS['User']->admin('user')) {
$link = '/login/edit/'.$user->login;
$name = sprintf('<a href="%s">%s</a>', $link, $name);
}
$link = '/login/edit/'.$user->login;
$name = sprintf('<a href="%s">%s</a>', $link, $name);
}