diff --git a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js index 1f47623c5f05400b4a91b937e2d4a841b4fe23eb..b65a1d542b9a1646f678488c5a9d5f7930a03f54 100644 --- a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js +++ b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js @@ -8,6 +8,7 @@ var AddOverlayDialog = require('../AddOverlayDialog'); var Annotation = require('../../map/data/Annotation'); var CommentsTab = require('./CommentsAdminPanel'); var GuiConnector = require('../../GuiConnector'); +var PrivilegeType = require('../../map/data/PrivilegeType'); var Functions = require('../../Functions'); // noinspection JSUnusedLocalSymbols @@ -119,6 +120,17 @@ EditProjectDialog.prototype.addTab = function (params) { } params.tabContentDiv.appendChild(contentDiv); + if (params.disabled) { + this.disableTab(params); + } +}; + +EditProjectDialog.prototype.disableTab = function (params) { + $("a[href='#" + params.id + "']", this.getElement()).hide(); +}; + +EditProjectDialog.prototype.enableTab = function (params) { + $("a[href='#" + params.id + "']", this.getElement()).show(); }; EditProjectDialog.prototype.createGeneralTabContent = function () { @@ -554,10 +566,19 @@ EditProjectDialog.prototype.initUsersTab = function () { EditProjectDialog.prototype.refreshOverlays = function () { var self = this; - return ServerConnector.getOverlays({ - projectId: self.getProject().getProjectId() - }).then(function (overlays) { - return self.setOverlays(overlays); + return ServerConnector.getLoggedUser().then(function (user) { + var privilege = self.getConfiguration().getPrivilegeType(PrivilegeType.USER_MANAGEMENT); + //we need to refresh users as well because of privileges + if (user.hasPrivilege(privilege)) { + return ServerConnector.getOverlays({ + projectId: self.getProject().getProjectId() + }).then(function (overlays) { + return self.setOverlays(overlays); + }); + } else { + self.disableTab({id: self.getProject().getProjectId() + "_overlays_tab"}); + return Promise.resolve(); + } }); }; @@ -570,8 +591,17 @@ EditProjectDialog.prototype.refreshMaps = function () { EditProjectDialog.prototype.refreshUsers = function () { var self = this; - return ServerConnector.getUsers().then(function (users) { - return self.setUsers(users); + return ServerConnector.getLoggedUser().then(function (user) { + var privilege = self.getConfiguration().getPrivilegeType(PrivilegeType.USER_MANAGEMENT); + //we need to refresh users as well because of privileges + if (user.hasPrivilege(privilege)) { + return ServerConnector.getUsers(true).then(function (users) { + return self.setUsers(users); + }); + } else { + self.disableTab({id: self.getProject().getProjectId() + "_users_tab"}); + return Promise.resolve(); + } }); };