global $user; if (!isset($user->login) || $user->login == '') { return false; } if ($user->societe_id != 0) { return false; } if ($user->login != $username) { return false; } if ($user->pass_indatabase_crypted == '' || dol_hash($password) != $user->pass_indatabase_crypted) { return false; } return true; }); $authBackend->setRealm('Dolibarr'); // The lock manager is reponsible for making sure users don't overwrite // each others changes. $lockBackend = new DAV\Locks\Backend\File($dolibarr_main_data_root . '/cdav/.locks'); // Principals Backend $principalBackend = new DAVACL\PrincipalBackend\Dolibarr($user, $db); // CardDav & CalDav Backend $carddavBackend = new Sabre\CardDAV\Backend\Dolibarr($user, $db, $langs); $caldavBackend = new Sabre\CalDAV\Backend\Dolibarr($user, $db, $langs, $cdavLib); // Setting up the directory tree // $nodes = array(new DAVACL\PrincipalCollection($principalBackend), new \Sabre\CardDAV\AddressBookRoot($principalBackend, $carddavBackend), new \Sabre\CalDAV\CalendarRoot($principalBackend, $caldavBackend), new DAV\FS\Directory($dolibarr_main_data_root . '/cdav/public')); // admin can access all dolibarr documents if ($user->admin) { $nodes[] = new DAV\FS\Directory($dolibarr_main_data_root); } // The server object is responsible for making sense out of the WebDAV protocol