kithkin/app/Services/Dav/LaravelSabreAuthBackend.php

41 lines
1.1 KiB
PHP

<?php
namespace App\Services\Dav;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
use Sabre\DAV\Auth\Backend\AbstractBasic;
use Sabre\DAV\Auth\Backend\BasicCallBack;
class LaravelSabreAuthBackend extends AbstractBasic
{
public function __construct()
{
\Log::info('LaravelSabreAuthBackend instantiated');
}
protected function validateUserPass($username, $password)
{
$user = User::where('email', $username)->first();
if ($user && Hash::check($password, $user->password)) {
// THIS is the new required step
$this->currentPrincipal = 'principals/' . $user->email;
\Log::info('SabreDAV auth success', ['principal' => $this->currentPrincipal]);
return true;
}
\Log::warning('SabreDAV auth failed', ['username' => $username]);
return false;
}
public function getCurrentPrincipal()
{
\Log::debug('SabreDAV getCurrentPrincipal', ['current' => $$this->currentPrincipal]);
return $this->currentPrincipal;
}
}