<?php
-ob_clean();
-
-if (empty($User['admin']))
+if (!$User or !$User->admin("edit $Page$Args"))
abort("geen beheersrechten", '401 unauthorised');
if ($_FILES) {
if (!$Args)
abort("geen bestand aangeleverd", '409 input error');
-$filename = ltrim($Args, '/').'.html';
+$filename = trim($Args, '/');
if (preg_match('{^\.}', $filename))
abort("ongeldige bestandsnaam: $filename", '403 input error');
+if (is_dir($filename) && !file_exists("$filename.html"))
+ $filename .= '/index';
+$filename .= '.html';
if (file_exists($filename) and !is_writable($filename))
abort("onwijzigbaar bestand: $filename", '403 input error');
if (is_writable('../.git')) {
$gitmsg = preg_replace('/\.html$/', '', $filename).": edit from {$_SERVER['REMOTE_ADDR']}";
$gitcmd = 'git';
- $gitcmd .= ' -c user.name='.escapeshellarg($User['name']);
- $gitcmd .= ' -c user.email='.escapeshellarg("{$User['name']}@lijtweg.nl");
+ $gitcmd .= ' -c user.name='.escapeshellarg($User->name ?: $User->login);
+ $gitcmd .= ' -c user.email='.escapeshellarg($User->email ?: "{$User->login}@lijtweg.nl");
$gitcmd .= ' commit -q';
$gitcmd .= ' -m '.escapeshellarg($gitmsg);
$gitcmd .= ' -- '.escapeshellarg($filename);