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