diff options
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php')
-rw-r--r-- | vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php | 82 |
1 files changed, 66 insertions, 16 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php b/vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php index fdad8a605..a782cb74d 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php @@ -2,35 +2,85 @@ namespace Sabre\DAV\Auth\Backend; -use Sabre\DAV; +use + Sabre\DAV, + Sabre\HTTP\RequestInterface, + Sabre\HTTP\ResponseInterface; class Mock implements BackendInterface { - protected $currentUser; + public $fail = false; - public $defaultUser = 'admin'; + public $invalidCheckResponse = false; - /** - * @param Sabre\DAV\Server $server - * @param string $realm - * @throws Sabre\DAV\Exception\NotAuthenticated - */ - function authenticate(DAV\Server $server, $realm) { + public $principal = 'principals/admin'; - if ($realm=='failme') throw new DAV\Exception\NotAuthenticated('deliberate fail'); - $this->currentUser = $this->defaultUser; + function setPrincipal($principal) { + + $this->principal = $principal; } - function setCurrentUser($user) { + /** + * When this method is called, the backend must check if authentication was + * successful. + * + * The returned value must be one of the following + * + * [true, "principals/username"] + * [false, "reason for failure"] + * + * If authentication was successful, it's expected that the authentication + * backend returns a so-called principal url. + * + * Examples of a principal url: + * + * principals/admin + * principals/user1 + * principals/users/joe + * principals/uid/123457 + * + * If you don't use WebDAV ACL (RFC3744) we recommend that you simply + * return a string such as: + * + * principals/users/[username] + * + * @param RequestInterface $request + * @param ResponseInterface $response + * @return array + */ + function check(RequestInterface $request, ResponseInterface $response) { - $this->currentUser = $user; + if ($this->invalidCheckResponse) { + return 'incorrect!'; + } + if ($this->fail) { + return [false, "fail!"]; + } + return [true, $this->principal]; } - function getCurrentUser() { - - return $this->currentUser; + /** + * This method is called when a user could not be authenticated, and + * authentication was required for the current request. + * + * This gives you the oppurtunity to set authentication headers. The 401 + * status code will already be set. + * + * In this case of Basic Auth, this would for example mean that the + * following header needs to be set: + * + * $response->addHeader('WWW-Authenticate', 'Basic realm=SabreDAV'); + * + * Keep in mind that in the case of multiple authentication backends, other + * WWW-Authenticate headers may already have been set, and you'll want to + * append your own WWW-Authenticate header instead of overwriting the + * existing one. + * + * @return void + */ + function challenge(RequestInterface $request, ResponseInterface $response) { } |