diff --git a/index.php b/index.php
index ee4fef4..ca693e5 100644
--- a/index.php
+++ b/index.php
@@ -1784,14 +1784,30 @@ namespace PicoDAV
return $out;
}
- function error(WebDAV_Exception $e)
+ public function route(?string $uri = null): bool
+ {
+ if (!ANONYMOUS_WRITE && !ANONYMOUS_READ) {
+ $this->requireAuth();
+ return true;
+ }
+
+ return parent::route($uri);
+ }
+
+ protected function requireAuth(): void
+ {
+ if ($this->storage->auth()) {
+ return;
+ }
+
+ http_response_code(401);
+ header('WWW-Authenticate: Basic realm="Please login"');
+ echo '
Error 401
You need to login to access this.
';
+ }
+
+ public function error(WebDAV_Exception $e)
{
if ($e->getCode() == 403 && !$this->storage->auth() && count($this->storage->users)) {
- $user = $_SERVER['PHP_AUTH_USER'] ?? null;
-
- http_response_code(401);
- header('WWW-Authenticate: Basic realm="Please login"');
- echo 'Error 401
You need to login to access this.
';
return;
}
@@ -1851,11 +1867,11 @@ RewriteRule ^.*$ /index.php [END]
$fp = fopen(__FILE__, 'r');
if ($relative_uri == '.webdav/webdav.js') {
- fseek($fp, 49803, SEEK_SET);
+ fseek($fp, 50046, SEEK_SET);
echo fread($fp, 27769);
}
else {
- fseek($fp, 49803 + 27769, SEEK_SET);
+ fseek($fp, 50046 + 27769, SEEK_SET);
echo fread($fp, 6988);
}
diff --git a/server.php b/server.php
index 0c394a0..8fe4a72 100644
--- a/server.php
+++ b/server.php
@@ -508,14 +508,30 @@ namespace PicoDAV
return $out;
}
- function error(WebDAV_Exception $e)
+ public function route(?string $uri = null): bool
+ {
+ if (!ANONYMOUS_WRITE && !ANONYMOUS_READ) {
+ $this->requireAuth();
+ return true;
+ }
+
+ return parent::route($uri);
+ }
+
+ protected function requireAuth(): void
+ {
+ if ($this->storage->auth()) {
+ return;
+ }
+
+ http_response_code(401);
+ header('WWW-Authenticate: Basic realm="Please login"');
+ echo 'Error 401
You need to login to access this.
';
+ }
+
+ public function error(WebDAV_Exception $e)
{
if ($e->getCode() == 403 && !$this->storage->auth() && count($this->storage->users)) {
- $user = $_SERVER['PHP_AUTH_USER'] ?? null;
-
- http_response_code(401);
- header('WWW-Authenticate: Basic realm="Please login"');
- echo 'Error 401
You need to login to access this.
';
return;
}