xref: /plugin/davcal/vendor/sabre/dav/lib/DAV/Auth/Backend/BasicCallBack.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\DAV\Auth\Backend;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehler/**
6*a1a3b679SAndreas Boehler * Extremely simply HTTP Basic auth backend.
7*a1a3b679SAndreas Boehler *
8*a1a3b679SAndreas Boehler * This backend basically works by calling a callback, which receives a
9*a1a3b679SAndreas Boehler * username and password.
10*a1a3b679SAndreas Boehler * The callback must return true or false depending on if authentication was
11*a1a3b679SAndreas Boehler * correct.
12*a1a3b679SAndreas Boehler *
13*a1a3b679SAndreas Boehler * @copyright Copyright (C) 2007-2015 fruux GmbH (https://fruux.com/).
14*a1a3b679SAndreas Boehler * @author Evert Pot (http://evertpot.com/)
15*a1a3b679SAndreas Boehler * @license http://sabre.io/license/ Modified BSD License
16*a1a3b679SAndreas Boehler */
17*a1a3b679SAndreas Boehlerclass BasicCallBack extends AbstractBasic {
18*a1a3b679SAndreas Boehler
19*a1a3b679SAndreas Boehler    /**
20*a1a3b679SAndreas Boehler     * Callback
21*a1a3b679SAndreas Boehler     *
22*a1a3b679SAndreas Boehler     * @var callable
23*a1a3b679SAndreas Boehler     */
24*a1a3b679SAndreas Boehler    protected $callBack;
25*a1a3b679SAndreas Boehler
26*a1a3b679SAndreas Boehler    /**
27*a1a3b679SAndreas Boehler     * Creates the backend.
28*a1a3b679SAndreas Boehler     *
29*a1a3b679SAndreas Boehler     * A callback must be provided to handle checking the username and
30*a1a3b679SAndreas Boehler     * password.
31*a1a3b679SAndreas Boehler     *
32*a1a3b679SAndreas Boehler     * @param callable $callBack
33*a1a3b679SAndreas Boehler     * @return void
34*a1a3b679SAndreas Boehler     */
35*a1a3b679SAndreas Boehler    function __construct(callable $callBack) {
36*a1a3b679SAndreas Boehler
37*a1a3b679SAndreas Boehler        $this->callBack = $callBack;
38*a1a3b679SAndreas Boehler
39*a1a3b679SAndreas Boehler    }
40*a1a3b679SAndreas Boehler
41*a1a3b679SAndreas Boehler    /**
42*a1a3b679SAndreas Boehler     * Validates a username and password
43*a1a3b679SAndreas Boehler     *
44*a1a3b679SAndreas Boehler     * This method should return true or false depending on if login
45*a1a3b679SAndreas Boehler     * succeeded.
46*a1a3b679SAndreas Boehler     *
47*a1a3b679SAndreas Boehler     * @param string $username
48*a1a3b679SAndreas Boehler     * @param string $password
49*a1a3b679SAndreas Boehler     * @return bool
50*a1a3b679SAndreas Boehler     */
51*a1a3b679SAndreas Boehler    protected function validateUserPass($username, $password) {
52*a1a3b679SAndreas Boehler
53*a1a3b679SAndreas Boehler        $cb = $this->callBack;
54*a1a3b679SAndreas Boehler        return $cb($username, $password);
55*a1a3b679SAndreas Boehler
56*a1a3b679SAndreas Boehler    }
57*a1a3b679SAndreas Boehler
58*a1a3b679SAndreas Boehler}
59