From 90d85c9713f99ad84a9666b4e33fe9e6829d0d45 Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Thu, 14 Nov 2019 11:33:11 +0100 Subject: [PATCH] SSDM-4600: ELN: project creation button in space view removed if user has no rights to create a project --- .../ProjectForm/ProjectFormController.js | 5 ++-- .../js/views/ProjectForm/ProjectFormView.js | 4 +-- .../js/views/SpaceForm/SpaceFormController.js | 30 ++++++++++--------- .../html/js/views/SpaceForm/SpaceFormView.js | 16 +++++----- 4 files changed, 29 insertions(+), 26 deletions(-) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormController.js index 9aa712c5c64..880799b791b 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormController.js @@ -38,8 +38,9 @@ function ProjectFormController(mainController, mode, project) { }, function(roles){ _this._projectFormModel.roles = roles; var dummyId = new ExperimentIdentifier("/" + spaceCode + "/" + projectCode + "/DUMMY"); - mainController.openbisV3.getRights([dummyId], new RightsFetchOptions()).done(function(rightsByIds) { - _this._projectFormModel.projectRights = rightsByIds[dummyId]; + mainController.openbisV3.getRights([id, dummyId], new RightsFetchOptions()).done(function(rightsByIds) { + _this._projectFormModel.rights = rightsByIds[id]; + _this._projectFormModel.experimentRights = rightsByIds[dummyId]; _this._projectFormView.repaint(views); }); }); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormView.js index 0c0e09fb599..2853784334f 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormView.js @@ -286,12 +286,12 @@ function ProjectFormView(projectFormController, projectFormModel) { this._allowedToCreateExperiments = function() { var project = this._projectFormModel.v3_project; - return project.frozenForExperiments == false && this._projectFormModel.projectRights.rights.indexOf("CREATE") >= 0;; + return project.frozenForExperiments == false && this._projectFormModel.experimentRights.rights.indexOf("CREATE") >= 0; }; this._allowedToEdit = function() { var project = this._projectFormModel.v3_project; - return project.frozen == false; + return project.frozen == false && this._projectFormModel.rights.rights.indexOf("UPDATE") >= 0; }; this._allowedToMove = function() { diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SpaceForm/SpaceFormController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SpaceForm/SpaceFormController.js index 215c023a1e7..72ae9c56d75 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SpaceForm/SpaceFormController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SpaceForm/SpaceFormController.js @@ -22,23 +22,25 @@ function SpaceFormController(mainController, space) { this.init = function(views) { var _this = this; - require([ "as/dto/space/id/SpacePermId", "as/dto/space/fetchoptions/SpaceFetchOptions" ], - function(SpacePermId, SpaceFetchOptions) { + require([ "as/dto/space/id/SpacePermId", "as/dto/space/fetchoptions/SpaceFetchOptions", + "as/dto/project/id/ProjectIdentifier", "as/dto/rights/fetchoptions/RightsFetchOptions" ], + function(SpacePermId, SpaceFetchOptions, ProjectIdentifier, RightsFetchOptions) { var id = new SpacePermId(space); mainController.openbisV3.getSpaces([ id ], new SpaceFetchOptions()).done(function(map) { - _this._spaceFormModel.v3_space = map[id]; - _this._mainController.getUserRole({ - space: _this._spaceFormModel.space - }, function(roles){ - _this._spaceFormModel.roles = roles; - _this._spaceFormView.repaint(views); - }); - }); - - + _this._spaceFormModel.v3_space = map[id]; + var space = _this._spaceFormModel.space; + _this._mainController.getUserRole({ + space: space + }, function(roles){ + _this._spaceFormModel.roles = roles; + var dummyId = new ProjectIdentifier("/" + space + "/DUMMY"); + mainController.openbisV3.getRights([id, dummyId], new RightsFetchOptions()).done(function(rightsByIds) { + _this._spaceFormModel.projectRights = rightsByIds[dummyId]; + _this._spaceFormView.repaint(views); + }); + }); + }); }); - - } this.createProject = function() { diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SpaceForm/SpaceFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SpaceForm/SpaceFormView.js index ca91751a977..48b1ed0b4ca 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SpaceForm/SpaceFormView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SpaceForm/SpaceFormView.js @@ -68,13 +68,13 @@ function SpaceFormView(spaceFormController, spaceFormModel) { toolbarModel.push({ component : $share, tooltip: "Manage access" }); } - //Freeze - if(_this._spaceFormModel.v3_space && _this._spaceFormModel.v3_space.frozen !== undefined) { //Freezing available on the API - var isEntityFrozen = _this._spaceFormModel.v3_space.frozen; - var isEntityFrozenTooltip = (isEntityFrozen)?"Entity Frozen":"Freeze Entity (Disable further modifications)"; - var $freezeButton = FormUtil.getFreezeButton("SPACE", _this._spaceFormModel.v3_space.permId.permId, isEntityFrozen); - toolbarModel.push({ component : $freezeButton, tooltip: isEntityFrozenTooltip }); - } + //Freeze + if(_this._spaceFormModel.v3_space && _this._spaceFormModel.v3_space.frozen !== undefined) { //Freezing available on the API + var isEntityFrozen = _this._spaceFormModel.v3_space.frozen; + var isEntityFrozenTooltip = (isEntityFrozen)?"Entity Frozen":"Freeze Entity (Disable further modifications)"; + var $freezeButton = FormUtil.getFreezeButton("SPACE", _this._spaceFormModel.v3_space.permId.permId, isEntityFrozen); + toolbarModel.push({ component : $freezeButton, tooltip: isEntityFrozenTooltip }); + } var $header = views.header; $header.append($formTitle); @@ -85,7 +85,7 @@ function SpaceFormView(spaceFormController, spaceFormModel) { this._allowedToCreateProject = function() { var space = this._spaceFormModel.v3_space; - return space.frozenForProjects == false; + return space.frozenForProjects == false && this._spaceFormModel.projectRights.rights.indexOf("CREATE") >= 0; } } -- GitLab