} */ private array $sources; /** */ public function __construct( array $sources ) { // parent::__construct(); $this->sources = $sources; $this->setRealm('davina'); } /** */ protected function validateUserPass( /*string */$identifier, /*string */$password )/* : bool*/ { $parts = \explode('-', $identifier, 2); $source_name = $parts[0]; $username = ( (\count($parts) >= 2) ? $parts[1] : $source_name ); $parameters = [ 'username' => $username, 'password' => $password, ]; if (! \array_key_exists($source_name, $this->sources)) { return false; } else { $source = $this->sources[$source_name]; /** * @todo check for security */ \davina\set_parameters($parameters); $data = $source->read(/*$parameters*/[]); return ($data !== null); } } } ?>