diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index 7fc0fc8ff0f4321ce69afca48f3b1378e57a16fc..0e991151fde07fc8cd9c727dd0d32cceaceb7092 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -67,6 +67,12 @@ ServerConnector.init = function () {
   self._projectsById = [];
 
   self._users = [];
+
+  /**
+   *
+   * @type {Object.<string,User>}
+   * @private
+   */
   self._usersByLogin = [];
 
   self._customMap = null;
@@ -1528,13 +1534,16 @@ ServerConnector.grantUserPrivileges = function (params) {
   }).then(function (content) {
     var obj = JSON.parse(content);
     var user = new User(obj);
+    var promise = Promise.resolve();
     if (self._usersByLogin[user.getLogin()] !== undefined) {
-      self._usersByLogin[user.getLogin()].update(user);
+      promise = self._usersByLogin[user.getLogin()].update(user);
     } else {
       self._usersByLogin[user.getLogin()] = user;
     }
-    return self._usersByLogin[user.getLogin()];
-  }).then(null, function (error) {
+    return promise;
+  }).then(function () {
+    return self._usersByLogin[params.user.getLogin()];
+  }).catch(function (error) {
     return self.processNetworkError(error);
   });
 };
diff --git a/frontend-js/src/main/js/gui/admin/EditUserDialog.js b/frontend-js/src/main/js/gui/admin/EditUserDialog.js
index 36d991ec916b5ca632f98b22300ea1c697c65774..7fe99b3fcb98152d8856995df75bd6ab501b8521 100644
--- a/frontend-js/src/main/js/gui/admin/EditUserDialog.js
+++ b/frontend-js/src/main/js/gui/admin/EditUserDialog.js
@@ -204,7 +204,7 @@ EditUserDialog.prototype.createGeneralTabContent = function () {
   });
 
 
-  $(result).on("click", "[name='userRole']", function () {
+  $(result).on("click", "[name='user-role-" + self.getUser().getLogin() + "']", function () {
       var field = this;
       var role = $('[name="user-role-' + self.getUser().getLogin() + '"]:checked', field).val();
       var promises = [];
@@ -212,14 +212,17 @@ EditUserDialog.prototype.createGeneralTabContent = function () {
         promises.push(self.grantPrivilege({privilegeType: PrivilegeType.IS_ADMIN}));
         promises.push(self.revokePrivilege({privilegeType: PrivilegeType.IS_CURATOR}));
         $("[name='user-can-create-overlay-div']", result).css("display", "none");
+        guiUtils.disableTab($(".minerva-project-privileges-tab", self.getElement())[0], "Admin can do everything")
       } else if (role === "CURATOR") {
         promises.push(self.revokePrivilege({privilegeType: PrivilegeType.IS_ADMIN}));
         promises.push(self.grantPrivilege({privilegeType: PrivilegeType.IS_CURATOR}));
         $("[name='user-can-create-overlay-div']", result).css("display", "none");
+        guiUtils.enableTab($(".minerva-project-privileges-tab", self.getElement())[0]);
       } else if (role === "USER") {
         promises.push(self.revokePrivilege({privilegeType: PrivilegeType.IS_ADMIN}));
         promises.push(self.revokePrivilege({privilegeType: PrivilegeType.IS_CURATOR}));
         $("[name='user-can-create-overlay-div']", result).css("display", "block");
+        guiUtils.enableTab($(".minerva-project-privileges-tab", self.getElement())[0]);
       } else {
         GuiConnector.alert("Invalid role: " + role);
       }
@@ -237,7 +240,8 @@ EditUserDialog.prototype.createProjectsTabContent = function () {
   var self = this;
   var result = Functions.createElement({
     type: "div",
-    style: "margin-top:10px;"
+    style: "margin-top:10px;",
+    className: "minerva-project-privileges-tab"
   });
   result.appendChild(self._createProjectsTable());
   return result;
@@ -342,6 +346,7 @@ EditUserDialog.prototype.refresh = function () {
 
   if (user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_ADMIN))) {
     adminChecked = " checked ";
+    guiUtils.disableTab($(".minerva-project-privileges-tab", self.getElement())[0], "Admin can do everything");
   } else if (user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_CURATOR))) {
     curatorChecked = " checked ";
   } else {
diff --git a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
index a8cfddf2cc95f48bcf432ab616156f6aabdae987..e9b8ad55e5ddc9cddcde2e9993362d7d7128591a 100644
--- a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
+++ b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
@@ -1193,18 +1193,36 @@ GuiUtils.prototype.hideTab = function (abstractGuiElement, panel) {
  * @param {string} message
  */
 GuiUtils.prototype.disableTab = function (element, message) {
-  $(element).children().css("visibility", "hidden");
-  $("[class='minerva-help-button']", element).children().css("visibility", "visible");
-  var hideReasonDiv = document.createElement("div");
-  hideReasonDiv.className = "searchPanel";
-
-  var center = document.createElement("center");
-  var messageDiv = document.createElement("h4");
-  messageDiv.innerHTML = message;
-  center.appendChild(messageDiv);
-  hideReasonDiv.appendChild(center);
-
-  $(element).prepend(hideReasonDiv);
+  var hideReason = $(".minerva-hide-reason", element);
+  if (hideReason.length === 0) {
+    console.log("not hidden");
+
+    $(element).children().css("visibility", "hidden");
+    $("[class='minerva-help-button']", element).children().css("visibility", "visible");
+    var hideReasonDiv = document.createElement("div");
+    hideReasonDiv.className = "searchPanel minerva-hide-reason";
+
+    var center = document.createElement("center");
+    var messageDiv = document.createElement("h4");
+    messageDiv.innerHTML = message;
+    center.appendChild(messageDiv);
+    hideReasonDiv.appendChild(center);
+
+    $(element).prepend(hideReasonDiv);
+  }
+};
+
+/**
+ *
+ * @param {HTMLElement} element
+ */
+GuiUtils.prototype.enableTab = function (element) {
+  var hideReason = $(".minerva-hide-reason", element);
+  if (hideReason.length > 0) {
+    hideReason.remove();
+    $(element).children().css("visibility", "visible");
+    $("[class='minerva-help-button']", element).children().css("visibility", "visible");
+  }
 };
 
 /**