+
+// webdav usermanager
+exports.WebdavUserManager = WebdavUserManager;
+
+// This implements the required interface only for the Basic Authentication for webdav-server
+function WebdavUserManager() {};
+
+WebdavUserManager.prototype.getDefaultUser = function (callback) {
+ // this is only a dummy user, since we always require authentication
+ var user = {
+ username: 'DefaultUser',
+ password: null,
+ isAdministrator: false,
+ isDefaultUser: true,
+ uid: 'DefaultUser'
+ };
+
+ callback(user);
+};
+
+WebdavUserManager.prototype.getUserByNamePassword = function (username, password, callback) {
+ var users = safe.JSON.parse(safe.fs.readFileSync(LOCAL_AUTH_FILE));
+ if (!users) return callback(webdavErrors.UserNotFound);
+ if (!users[username]) return callback(webdavErrors.UserNotFound);
+
+ bcrypt.compare(password, users[username].passwordHash, function (error, valid) {
+ if (error || !valid) return callback(webdavErrors.UserNotFound);
+
+ callback(null, {
+ username: username,
+ isAdministrator: true,
+ isDefaultUser: false,
+ uid: username
+ });
+ });
+};