diff --git a/frontend-js/src/main/js/Configuration.js b/frontend-js/src/main/js/Configuration.js
index 4fea03415fba071f576d59cd328cf06971a691ba..8254c7ae0b3d8934091205cd54967228bb26af87 100644
--- a/frontend-js/src/main/js/Configuration.js
+++ b/frontend-js/src/main/js/Configuration.js
@@ -107,7 +107,7 @@ Configuration.prototype.getOption = function (type) {
 
 /**
  *
- * @returns {Array}
+ * @returns {ConfigurationOption[]}
  */
 Configuration.prototype.getOptions = function () {
   var self = this;
diff --git a/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js b/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js
index 5bd068d5203b4d55567942693c3d8e70449e24a7..f1f7fc907278d3858bc4be0d25eba16d744c7b2a 100644
--- a/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js
+++ b/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js
@@ -115,17 +115,28 @@ ConfigurationAdminPanel.prototype._createGui = function () {
   });
 };
 
+/**
+ *
+ * @returns {Promise}
+ */
 ConfigurationAdminPanel.prototype.init = function () {
   var self = this;
-  var user;
-  return ServerConnector.getLoggedUser().then(function (result) {
-    user = result;
+  return self.getServerConnector().getLoggedUser().then(function (user) {
     var configuration = self.getConfiguration();
     var privilege = configuration.getPrivilegeType(PrivilegeType.CONFIGURATION_MANAGE);
-    self.setOptions(configuration.getOptions(), user.hasPrivilege(privilege));
+    if (user.hasPrivilege(privilege)) {
+      self.setOptions(configuration.getOptions(), true);
+    } else {
+      self.disablePanel("You have no privilege to manage configuration");
+    }
   });
 };
 
+/**
+ *
+ * @param {ConfigurationOption[]} options
+ * @param {boolean} editable
+ */
 ConfigurationAdminPanel.prototype.setOptions = function (options, editable) {
   var self = this;
   var dataTable = $("[name='configurationTable']", self.getElement()).DataTable();
@@ -155,6 +166,12 @@ ConfigurationAdminPanel.prototype.setOptions = function (options, editable) {
   dataTable.clear().rows.add(data).draw();
 };
 
+/**
+ *
+ * @param {ConfigurationOption} option
+ * @param {boolean} editable
+ * @returns {Array}
+ */
 ConfigurationAdminPanel.prototype.optionToTableRow = function (option, editable) {
   var value = option.getValue();
   var row = [];
@@ -186,7 +203,7 @@ ConfigurationAdminPanel.prototype.optionToTableRow = function (option, editable)
       "</div>";
   } else {
     logger.warn("Don't know how to handle: " + option.getValueType());
-    editOption = "<input name='edit-" + option.getType() + "' value='" + value + "'readonly/>";
+    editOption = "<input name='edit-" + option.getType() + "' value='" + value + "' readonly/>";
   }
   var group = option.getGroup();
   if (group === undefined) {
@@ -201,7 +218,7 @@ ConfigurationAdminPanel.prototype.optionToTableRow = function (option, editable)
 
 ConfigurationAdminPanel.prototype.saveOption = function (type) {
   var self = this;
-  return ServerConnector.getConfiguration().then(function (configuration) {
+  return self.getServerConnector().getConfiguration().then(function (configuration) {
     var option = configuration.getOption(type);
     var element = $("[name='edit-" + type + "']", self.getElement());
     var value;
@@ -215,7 +232,7 @@ ConfigurationAdminPanel.prototype.saveOption = function (type) {
       value = element.val();
     }
     option.setValue(value);
-    return ServerConnector.updateConfigurationOption(option);
+    return self.getServerConnector().updateConfigurationOption(option);
   });
 };
 ConfigurationAdminPanel.prototype.destroy = function () {
diff --git a/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js b/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js
index 8e2aa3f5626a65f1e0ff40ae2e59fec348e02ab1..88c7e88371b4fa39bd6184edf8c2574145e0a22c 100644
--- a/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js
+++ b/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js
@@ -10,6 +10,14 @@ var logger = require('../../logger');
 var chai = require('chai');
 var assert = chai.assert;
 
+function createConfigurationTab(configuration) {
+  return new ConfigurationAdminPanel({
+    element: testDiv,
+    configuration: configuration,
+    serverConnector: ServerConnector
+  });
+}
+
 describe('ConfigurationAdminPanel', function () {
 
   describe('init', function () {
@@ -17,13 +25,11 @@ describe('ConfigurationAdminPanel', function () {
       helper.loginAsAdmin();
       var mapTab;
       return ServerConnector.getConfiguration().then(function (configuration) {
-        mapTab = new ConfigurationAdminPanel({
-          element: testDiv,
-          configuration: configuration
-        });
+        mapTab = createConfigurationTab(configuration);
         return mapTab.init();
       }).then(function () {
         assert.equal(0, logger.getWarnings().length);
+        assert.ok($("[name='saveOption']", testDiv).length > 0);
         assert.notOk($("[name='saveOption']", testDiv).prop('disabled'));
         return mapTab.destroy();
       });
@@ -32,25 +38,20 @@ describe('ConfigurationAdminPanel', function () {
       helper.loginWithoutAccess();
       var mapTab;
       return ServerConnector.getConfiguration().then(function (configuration) {
-        mapTab = new ConfigurationAdminPanel({
-          element: testDiv,
-          configuration: configuration
-        });
+        mapTab = createConfigurationTab(configuration);
         return mapTab.init();
       }).then(function () {
         assert.equal(0, logger.getWarnings().length);
-        assert.ok($("[name='saveOption']", testDiv).prop('disabled'));
+        assert.equal($("[name='saveOption']", testDiv).length, 0);
         return mapTab.destroy();
       });
     });
   });
   it('saveOption', function () {
+    helper.loginAsAdmin();
     var mapTab;
     return ServerConnector.getConfiguration().then(function (configuration) {
-      mapTab = new ConfigurationAdminPanel({
-        element: testDiv,
-        configuration: configuration
-      });
+      mapTab = createConfigurationTab(configuration);
       return mapTab.init();
     }).then(function () {
       return mapTab.saveOption(ConfigurationType.DEFAULT_MAP);
diff --git a/frontend-js/testFiles/apiCalls/configuration/options/DEFAULT_MAP/PATCH_option.type=DEFAULT_MAP&option.value=sample&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/configuration/options/DEFAULT_MAP/PATCH_option.type=DEFAULT_MAP&option.value=sample&token=ADMIN_TOKEN_ID&
similarity index 100%
rename from frontend-js/testFiles/apiCalls/configuration/options/DEFAULT_MAP/PATCH_option.type=DEFAULT_MAP&option.value=sample&token=MOCK_TOKEN_ID&
rename to frontend-js/testFiles/apiCalls/configuration/options/DEFAULT_MAP/PATCH_option.type=DEFAULT_MAP&option.value=sample&token=ADMIN_TOKEN_ID&