From 9d03f85e9b939b92aeaed4e8fc8eaa6da76d8ab8 Mon Sep 17 00:00:00 2001 From: Andreas Streichardt Date: Fri, 3 Jun 2016 11:19:42 +0200 Subject: [PATCH] Fix dump authentication test --- js/server/modules/@arangodb/users.js | 12 ++++++++++++ js/server/tests/dump/dump-authentication-setup.js | 5 ++--- js/server/upgrade-database.js | 4 +++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/js/server/modules/@arangodb/users.js b/js/server/modules/@arangodb/users.js index 82a2500906..cedb9f85dd 100644 --- a/js/server/modules/@arangodb/users.js +++ b/js/server/modules/@arangodb/users.js @@ -307,6 +307,18 @@ exports.document = function(username) { return convertToLegacyFormat(user); }; +exports.exists = function(username) { + try { + exports.document(username); + return true; + } catch (e) { + if (e.errNum == arangodb.errors.ERROR_USER_NOT_FOUND.code) { + return false; + } + throw e; + } +} + // checks whether a combination of username / password is valid. exports.isValid = function(username, password) { const users = getStorage(); diff --git a/js/server/tests/dump/dump-authentication-setup.js b/js/server/tests/dump/dump-authentication-setup.js index ca1c83cd79..54074fd070 100644 --- a/js/server/tests/dump/dump-authentication-setup.js +++ b/js/server/tests/dump/dump-authentication-setup.js @@ -42,11 +42,10 @@ // create user in _system database require("@arangodb/users").save("foobaruser", "foobarpasswd", true); + require("@arangodb/users").grantDatabase("foobaruser", "_system"); + require("@arangodb/users").grantDatabase("foobaruser", "UnitTestsDumpSrc"); db._useDatabase("UnitTestsDumpSrc"); - // create user in target database - require("@arangodb/users").save("foobaruser", "foobarpasswd", true); - var endpoint = arango.getEndpoint(); arango.reconnect(endpoint, "UnitTestsDumpSrc", "foobaruser", "foobarpasswd"); diff --git a/js/server/upgrade-database.js b/js/server/upgrade-database.js index db2a11374c..ce5a41b8b8 100644 --- a/js/server/upgrade-database.js +++ b/js/server/upgrade-database.js @@ -530,7 +530,9 @@ if (args && args.users) { args.users.forEach(function(user) { try { - userManager.save(user.username, user.passwd, user.active, user.extra || {}); + if (!userManager.exists(user.username)) { + userManager.save(user.username, user.passwd, user.active, user.extra || {}); + } } catch (err) { logger.warn("could not add database user '" + user.username + "': " + String(err) + " " +