Files
nextcloud-app-api/lib/AppAPIAuthBackend.php
Alexander Piskun 83333b5e0a cleanup: Qualifier -> Imports (#125)
Fixes IDE warnings:

* Qualifier can be replaced with an import
* Argument matches the parameter's default value

Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2023-11-25 10:59:07 +03:00

38 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace OCA\AppAPI;
use OCA\DAV\Connector\Sabre\Auth;
use OCP\IRequest;
use OCP\ISession;
use Sabre\DAV\Auth\Backend\BackendInterface;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
class AppAPIAuthBackend implements BackendInterface {
public function __construct(
private IRequest $request,
private ISession $session,
) {
}
public function check(RequestInterface $request, ResponseInterface $response): array {
if ($this->request->getHeader('AUTHORIZATION-APP-API')) {
$davAuthenticated = $this->session->get(Auth::DAV_AUTHENTICATED);
$userIdHeader = explode(':', base64_decode($this->request->getHeader('AUTHORIZATION-APP-API')), 2)[0];
$sessionUserId = $this->session->get('user_id');
if ($sessionUserId === $userIdHeader && $davAuthenticated === $sessionUserId) {
$authString = 'principals/users/' . $this->session->get('user_id');
return [true, $authString];
}
}
return [false, 'AppAPIAuth has not passed'];
}
public function challenge(RequestInterface $request, ResponseInterface $response) {
}
}