authBackend = $authBackend; $this->realm = $realm; } /** * Initializes the addon. This function is automatically called by the server * * @param Sabre_DAV_Server $server * @return void */ public function initialize(Sabre_DAV_Server $server) { $this->server = $server; $this->server->subscribeEvent('beforeMethod',array($this,'beforeMethod'),10); } /** * Returns a addon name. * * Using this name other addons will be able to access other addons * using Sabre_DAV_Server::getPlugin * * @return string */ public function getPluginName() { return 'auth'; } /** * Returns the current users' principal uri. * * If nobody is logged in, this will return null. * * @return string|null */ public function getCurrentUser() { $userInfo = $this->authBackend->getCurrentUser(); if (!$userInfo) return null; return $userInfo; } /** * This method is called before any HTTP method and forces users to be authenticated * * @param string $method * @param string $uri * @throws Sabre_DAV_Exception_NotAuthenticated * @return bool */ public function beforeMethod($method, $uri) { $this->authBackend->authenticate($this->server,$this->realm); } }