refactor: Use Http framework where possible

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
pull/49867/head
Git'Fellow 2024-12-14 10:32:14 +07:00
parent afc4b0aea5
commit 36d6b0f1e6
17 changed files with 57 additions and 47 deletions

@ -7,6 +7,7 @@ namespace OCA\DAV\CalDAV\BirthdayCalendar;
use OCA\DAV\CalDAV\BirthdayService;
use OCA\DAV\CalDAV\CalendarHome;
use OCP\AppFramework\Http;
use OCP\IConfig;
use OCP\IUser;
use Sabre\DAV\Server;
@ -92,7 +93,7 @@ class EnablePlugin extends ServerPlugin {
*/
public function httpPost(RequestInterface $request, ResponseInterface $response) {
$node = $this->server->tree->getNodeForPath($this->server->getRequestUri());
if (!($node instanceof CalendarHome)) {
if (!$node instanceof CalendarHome) {
return;
}
@ -104,14 +105,14 @@ class EnablePlugin extends ServerPlugin {
$owner = substr($node->getOwner(), 17);
if ($owner !== $this->user->getUID()) {
$this->server->httpResponse->setStatus(403);
$this->server->httpResponse->setStatus(Http::STATUS_FORBIDDEN);
return false;
}
$this->config->setUserValue($this->user->getUID(), 'dav', 'generateBirthdayCalendar', 'yes');
$this->birthdayService->syncUser($this->user->getUID());
$this->server->httpResponse->setStatus(204);
$this->server->httpResponse->setStatus(Http::STATUS_NO_CONTENT);
return false;
}

@ -7,6 +7,7 @@ namespace OCA\DAV\CalDAV\Publishing;
use OCA\DAV\CalDAV\Calendar;
use OCA\DAV\CalDAV\Publishing\Xml\Publisher;
use OCP\AppFramework\Http;
use OCP\IConfig;
use OCP\IURLGenerator;
use Sabre\CalDAV\Xml\Property\AllowedSharingModes;
@ -179,7 +180,7 @@ class PublishPlugin extends ServerPlugin {
$node->setPublishStatus(true);
// iCloud sends back the 202, so we will too.
$response->setStatus(202);
$response->setStatus(Http::STATUS_ACCEPTED);
// Adding this because sending a response body may cause issues,
// and I wanted some type of indicator the response was handled.
@ -213,7 +214,7 @@ class PublishPlugin extends ServerPlugin {
$node->setPublishStatus(false);
$response->setStatus(200);
$response->setStatus(Http::STATUS_OK);
// Adding this because sending a response body may cause issues,
// and I wanted some type of indicator the response was handled.

@ -7,6 +7,7 @@ namespace OCA\DAV\CalDAV\Search;
use OCA\DAV\CalDAV\CalendarHome;
use OCA\DAV\CalDAV\Search\Xml\Request\CalendarSearchReport;
use OCP\AppFramework\Http;
use Sabre\DAV\Server;
use Sabre\DAV\ServerPlugin;
@ -133,7 +134,7 @@ class SearchPlugin extends ServerPlugin {
$prefer = $this->server->getHTTPPrefer();
$this->server->httpResponse->setStatus(207);
$this->server->httpResponse->setStatus(Http::STATUS_MULTI_STATUS);
$this->server->httpResponse->setHeader('Content-Type',
'application/xml; charset=utf-8');
$this->server->httpResponse->setHeader('Vary', 'Brief,Prefer');

@ -7,6 +7,7 @@
*/
namespace OCA\DAV\CardDAV;
use OCP\AppFramework\Http;
use OCP\Files\NotFoundException;
use Sabre\CardDAV\Card;
use Sabre\DAV\Server;
@ -59,7 +60,7 @@ class ImageExportPlugin extends ServerPlugin {
$path = $request->getPath();
$node = $this->server->tree->getNodeForPath($path);
if (!($node instanceof Card)) {
if (!$node instanceof Card) {
return true;
}
@ -86,11 +87,11 @@ class ImageExportPlugin extends ServerPlugin {
$response->setHeader('Content-Type', $file->getMimeType());
$fileName = $node->getName() . '.' . PhotoCache::ALLOWED_CONTENT_TYPES[$file->getMimeType()];
$response->setHeader('Content-Disposition', "attachment; filename=$fileName");
$response->setStatus(200);
$response->setStatus(Http::STATUS_OK);
$response->setBody($file->getContent());
} catch (NotFoundException $e) {
$response->setStatus(\OCP\AppFramework\Http::STATUS_NO_CONTENT);
$response->setStatus(Http::STATUS_NO_CONTENT);
}
return false;

@ -8,6 +8,7 @@ declare(strict_types=1);
*/
namespace OCA\DAV\CardDAV;
use OCP\AppFramework\Http;
use Sabre\DAV;
use Sabre\DAV\Server;
use Sabre\HTTP\RequestInterface;
@ -65,7 +66,7 @@ class MultiGetExportPlugin extends DAV\ServerPlugin {
$response->setHeader('Content-Disposition', 'attachment; filename="' . $filename . '"');
$response->setHeader('Content-Type', 'text/vcard');
$response->setStatus(200);
$response->setStatus(Http::STATUS_OK);
$response->setBody($output);
return true;

@ -7,6 +7,7 @@
*/
namespace OCA\DAV\Comments;
use OCP\AppFramework\Http;
use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use OCP\Comments\MessageTooLongException;
@ -108,7 +109,7 @@ class CommentsPlugin extends ServerPlugin {
$response->setHeader('Content-Location', $url);
// created
$response->setStatus(201);
$response->setStatus(Http::STATUS_CREATED);
return false;
}
@ -177,7 +178,7 @@ class CommentsPlugin extends ServerPlugin {
new MultiStatus($responses)
);
$this->server->httpResponse->setStatus(207);
$this->server->httpResponse->setStatus(Http::STATUS_MULTI_STATUS);
$this->server->httpResponse->setHeader('Content-Type', 'application/xml; charset=utf-8');
$this->server->httpResponse->setBody($xml);

@ -13,6 +13,7 @@ use OC\Authentication\TwoFactorAuth\Manager;
use OC\User\Session;
use OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden;
use OCA\DAV\Connector\Sabre\Exception\TooManyRequests;
use OCP\AppFramework\Http;
use OCP\Defaults;
use OCP\IRequest;
use OCP\ISession;
@ -27,20 +28,16 @@ use Sabre\HTTP\ResponseInterface;
class Auth extends AbstractBasic {
public const DAV_AUTHENTICATED = 'AUTHENTICATED_TO_DAV_BACKEND';
private Session $userSession;
private ?string $currentUser = null;
private Manager $twoFactorManager;
public function __construct(
private ISession $session,
Session $userSession,
private Session $userSession,
private IRequest $request,
Manager $twoFactorManager,
private Manager $twoFactorManager,
private IThrottler $throttler,
string $principalPrefix = 'principals/users/',
) {
$this->userSession = $userSession;
$this->twoFactorManager = $twoFactorManager;
$this->principalPrefix = $principalPrefix;
// setup realm
@ -111,7 +108,7 @@ class Auth extends AbstractBasic {
} catch (Exception $e) {
$class = get_class($e);
$msg = $e->getMessage();
\OC::$server->get(LoggerInterface::class)->error($e->getMessage(), ['exception' => $e]);
\OCP\Server::get(LoggerInterface::class)->error($e->getMessage(), ['exception' => $e]);
throw new ServiceUnavailable("$class: $msg");
}
}
@ -166,7 +163,7 @@ class Auth extends AbstractBasic {
if ($this->request->getMethod() === 'POST') {
$forcedLogout = true;
} else {
$response->setStatus(401);
$response->setStatus(Http::STATUS_UNAUTHORIZED);
throw new \Sabre\DAV\Exception\NotAuthenticated('CSRF check not passed.');
}
}
@ -199,7 +196,7 @@ class Auth extends AbstractBasic {
} elseif (in_array('XMLHttpRequest', explode(',', $request->getHeader('X-Requested-With') ?? ''))) {
// For ajax requests use dummy auth name to prevent browser popup in case of invalid creditials
$response->addHeader('WWW-Authenticate', 'DummyBasic realm="' . $this->realm . '"');
$response->setStatus(401);
$response->setStatus(Http::STATUS_UNAUTHORIZED);
throw new \Sabre\DAV\Exception\NotAuthenticated('Cannot authenticate over ajax calls');
}
return $data;

@ -5,6 +5,7 @@
*/
namespace OCA\DAV\Connector\Sabre;
use OCP\AppFramework\Http;
use OCP\Defaults;
use OCP\IRequest;
use OCP\ISession;
@ -56,6 +57,6 @@ class BearerAuth extends AbstractBearer {
* @param ResponseInterface $response
*/
public function challenge(RequestInterface $request, ResponseInterface $response): void {
$response->setStatus(401);
$response->setStatus(Http::STATUS_UNAUTHORIZED);
}
}

@ -8,6 +8,7 @@ declare(strict_types=1);
namespace OCA\DAV\Connector\Sabre;
use OCP\AppFramework\Http;
use Sabre\DAV\Server;
use Sabre\DAV\ServerPlugin;
use Sabre\HTTP\RequestInterface;
@ -59,7 +60,7 @@ class ChecksumUpdatePlugin extends ServerPlugin {
$node->setChecksum($checksum);
$response->addHeader('OC-Checksum', $checksum);
$response->setHeader('Content-Length', '0');
$response->setStatus(204);
$response->setStatus(Http::STATUS_NO_CONTENT);
return false;
}

@ -7,6 +7,7 @@
*/
namespace OCA\DAV\Connector\Sabre;
use OCP\AppFramework\Http;
use Sabre\DAV\Server;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
@ -48,7 +49,7 @@ class DummyGetResponsePlugin extends \Sabre\DAV\ServerPlugin {
fwrite($stream, $string);
rewind($stream);
$response->setStatus(200);
$response->setStatus(Http::STATUS_OK);
$response->setBody($stream);
return false;

@ -7,9 +7,11 @@
*/
namespace OCA\DAV\Connector\Sabre;
use OCP\AppFramework\Http;
use Sabre\DAV\INode;
use Sabre\DAV\Locks\LockInfo;
use Sabre\DAV\PropFind;
use Sabre\DAV\Server;
use Sabre\DAV\ServerPlugin;
use Sabre\DAV\Xml\Property\LockDiscovery;
use Sabre\DAV\Xml\Property\SupportedLock;
@ -29,11 +31,11 @@ use Sabre\HTTP\ResponseInterface;
* @package OCA\DAV\Connector\Sabre
*/
class FakeLockerPlugin extends ServerPlugin {
/** @var \Sabre\DAV\Server */
/** @var Server */
private $server;
/** {@inheritDoc} */
public function initialize(\Sabre\DAV\Server $server) {
public function initialize(Server $server) {
$this->server = $server;
$this->server->on('method:LOCK', [$this, 'fakeLockProvider'], 1);
$this->server->on('method:UNLOCK', [$this, 'fakeUnlockProvider'], 1);
@ -111,7 +113,7 @@ class FakeLockerPlugin extends ServerPlugin {
$lockInfo = new LockInfo();
$lockInfo->token = md5($request->getPath());
$lockInfo->uri = $request->getPath();
$lockInfo->depth = \Sabre\DAV\Server::DEPTH_INFINITY;
$lockInfo->depth = Server::DEPTH_INFINITY;
$lockInfo->timeout = 1800;
$body = $this->server->xml->write('{DAV:}prop', [
@ -119,7 +121,7 @@ class FakeLockerPlugin extends ServerPlugin {
new LockDiscovery([$lockInfo])
]);
$response->setStatus(200);
$response->setStatus(Http::STATUS_OK);
$response->setBody($body);
return false;
@ -134,7 +136,7 @@ class FakeLockerPlugin extends ServerPlugin {
*/
public function fakeUnlockProvider(RequestInterface $request,
ResponseInterface $response) {
$response->setStatus(204);
$response->setStatus(Http::STATUS_NO_CONTENT);
$response->setHeader('Content-Length', '0');
return false;
}

@ -10,6 +10,7 @@ namespace OCA\DAV\Connector\Sabre;
use OC\Files\View;
use OCA\Circles\Api\v1\Circles;
use OCP\App\IAppManager;
use OCP\AppFramework\Http;
use OCP\Files\Folder;
use OCP\Files\Node as INode;
use OCP\IGroupManager;
@ -183,7 +184,7 @@ class FilesReportPlugin extends ServerPlugin {
new MultiStatus($responses)
);
$this->server->httpResponse->setStatus(207);
$this->server->httpResponse->setStatus(Http::STATUS_MULTI_STATUS);
$this->server->httpResponse->setHeader('Content-Type', 'application/xml; charset=utf-8');
$this->server->httpResponse->setBody($xml);

@ -12,6 +12,7 @@ use OCA\DAV\CalDAV\CalendarHome;
use OCA\DAV\Connector\Sabre\Auth;
use OCA\DAV\DAV\Sharing\Xml\Invite;
use OCA\DAV\DAV\Sharing\Xml\ShareRequest;
use OCP\AppFramework\Http;
use OCP\IConfig;
use OCP\IRequest;
use Sabre\DAV\Exception\NotFound;
@ -157,7 +158,7 @@ class Plugin extends ServerPlugin {
$node->updateShares($message->set, $message->remove);
$response->setStatus(200);
$response->setStatus(Http::STATUS_OK);
// Adding this because sending a response body may cause issues,
// and I wanted some type of indicator the response was handled.
$response->setHeader('X-Sabre-Status', 'everything-went-well');

@ -5,6 +5,7 @@
*/
namespace OCA\DAV\Provisioning\Apple;
use OCP\AppFramework\Http;
use OCP\IL10N;
use OCP\IRequest;
use OCP\IURLGenerator;
@ -66,7 +67,7 @@ class AppleProvisioningPlugin extends ServerPlugin {
$useSSL = ($serverProtocol === 'https');
if (!$useSSL) {
$response->setStatus(200);
$response->setStatus(Http::STATUS_OK);
$response->setHeader('Content-Type', 'text/plain; charset=utf-8');
$response->setBody($this->l10n->t('Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS.', [$this->themingDefaults->getName()]));
@ -75,11 +76,7 @@ class AppleProvisioningPlugin extends ServerPlugin {
$absoluteURL = $this->urlGenerator->getBaseUrl();
$parsedUrl = parse_url($absoluteURL);
if (isset($parsedUrl['port'])) {
$serverPort = $parsedUrl['port'];
} else {
$serverPort = 443;
}
$serverPort = $parsedUrl['port'] ?? 443;
$server_url = $parsedUrl['host'];
$description = $this->themingDefaults->getName();
@ -128,7 +125,7 @@ class AppleProvisioningPlugin extends ServerPlugin {
]
));
$response->setStatus(200);
$response->setStatus(Http::STATUS_OK);
$response->setHeader('Content-Disposition', 'attachment; filename="' . $filename . '"');
$response->setHeader('Content-Type', 'application/xml; charset=utf-8');
$response->setBody($body);

@ -10,6 +10,7 @@ namespace OCA\DAV\SystemTag;
use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\FilesPlugin;
use OCA\DAV\Connector\Sabre\Node;
use OCP\AppFramework\Http;
use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserSession;
@ -127,7 +128,7 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
$response->setHeader('Content-Location', $url . $tag->getId());
// created
$response->setStatus(201);
$response->setStatus(Http::STATUS_CREATED);
return false;
}
}
@ -209,7 +210,7 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
return;
}
if (!($node instanceof SystemTagNode) && !($node instanceof SystemTagMappingNode) && !($node instanceof SystemTagObjectType)) {
if (!$node instanceof SystemTagNode && !$node instanceof SystemTagMappingNode && !$node instanceof SystemTagObjectType) {
return;
}
@ -372,18 +373,18 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
*/
public function handleUpdateProperties($path, PropPatch $propPatch) {
$node = $this->server->tree->getNodeForPath($path);
if (!($node instanceof SystemTagNode) && !($node instanceof SystemTagObjectType)) {
if (!$node instanceof SystemTagNode && !$node instanceof SystemTagObjectType) {
return;
}
$propPatch->handle([self::OBJECTIDS_PROPERTYNAME], function ($props) use ($node) {
if (!($node instanceof SystemTagObjectType)) {
if (!$node instanceof SystemTagObjectType) {
return false;
}
if (isset($props[self::OBJECTIDS_PROPERTYNAME])) {
$propValue = $props[self::OBJECTIDS_PROPERTYNAME];
if (!($propValue instanceof SystemTagsObjectList) || count($propValue->getObjects()) === 0) {
if (!$propValue instanceof SystemTagsObjectList || count($propValue->getObjects()) === 0) {
throw new BadRequest('Invalid object-ids property');
}
@ -413,7 +414,7 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
self::REFERENCE_FILEID_PROPERTYNAME,
self::COLOR_PROPERTYNAME,
], function ($props) use ($node) {
if (!($node instanceof SystemTagNode)) {
if (!$node instanceof SystemTagNode) {
return false;
}

@ -9,6 +9,7 @@ namespace OCA\DAV\Upload;
use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\Exception\Forbidden;
use OCP\AppFramework\Http;
use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\INode;
@ -89,7 +90,7 @@ class ChunkingPlugin extends ServerPlugin {
$response = $this->server->httpResponse;
$response->setHeader('Content-Length', '0');
$response->setStatus($fileExists ? 204 : 201);
$response->setStatus($fileExists ? Http::STATUS_NO_CONTENT : Http::STATUS_CREATED);
return false;
}

@ -18,6 +18,7 @@ use OC\Memcache\Redis;
use OC_Hook;
use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\File;
use OCP\AppFramework\Http;
use OCP\Files\IMimeTypeDetector;
use OCP\Files\IRootFolder;
use OCP\Files\ObjectStore\IObjectStoreMultiPartUpload;
@ -124,7 +125,7 @@ class ChunkingV2Plugin extends ServerPlugin {
self::UPLOAD_TARGET_ID => $targetFile->getId(),
], 86400);
$response->setStatus(201);
$response->setStatus(Http::STATUS_CREATED);
return true;
}
@ -235,7 +236,7 @@ class ChunkingV2Plugin extends ServerPlugin {
$response = $this->server->httpResponse;
$response->setHeader('Content-Type', 'application/xml; charset=utf-8');
$response->setHeader('Content-Length', '0');
$response->setStatus($destinationExists ? 204 : 201);
$response->setStatus($destinationExists ? Http::STATUS_NO_CONTENT : Http::STATUS_CREATED);
return false;
}