diff --git a/htdocs/public.php b/htdocs/public.php index 2c9c61ca..e5c619ca 100644 --- a/htdocs/public.php +++ b/htdocs/public.php @@ -17,13 +17,15 @@ $session = new PublicSession(); /** A simplified DAV header in this case */ $dav = "1, 2, calendar-access"; header( "DAV: $dav"); - require_once("CalDAVRequest.php"); $request = new CalDAVRequest(); -if ( ! $request->IsPublic() - || ! isset($request->ticket) +if ( ! $request->IsPublic() && + (! isset($request->ticket) || $request->ticket->expired - || ! $request->ticket->MatchesPath($request->path) ) { + || ! $request->ticket->MatchesPath($request->path) ) ) { + dbg_error_log( "caldav", 'Public: %d, Ticket: %d, Expired: %d, Matches(%s): %d', + $request->IsPublic(), isset($request->ticket), $request->ticket->expired, $request->path, $request->ticket->MatchesPath($request->path) + ); $request->DoResponse( 403, translate('Anonymous users may only access public calendars') ); }