diff --git a/CHANGELOG b/CHANGELOG index 035815b255c4d7d027bead88fdcbe21ed451e62d..4013acd70eb001a0a50e49cec21e94e751ed808e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -18,6 +18,8 @@ minerva (14.0.0~beta.0) unstable; urgency=low * Bug fix: curator couldn't update data overlay in some situations (#905) * Bug fix: alignment of tabs fixed for dialogs: "Add Project", "Edit Genome", "Edit Project", "Edit User" (#881) + * Bug fix: user with modify access to the project can edit it in admin panel + (#901) -- Piotr Gawron <piotr.gawron@uni.lu> Mon, 21 Aug 2019 21:00:00 +0200 diff --git a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js index 64387c1093e01b623280f223f7a6622fab047b4d..488cf4e3997fff2408986c4fe36e83cd00fbc6ff 100644 --- a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js @@ -265,19 +265,28 @@ MapsAdminPanel.prototype.projectToTableRow = function (project, row, user) { row[4] = organism; row[5] = status; - var disabled = " disabled "; + var disabledEdit = " disabled "; + var disabledRemove = " disabled "; if ((user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_ADMIN)) || - user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_CURATOR))) + user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_CURATOR)) || + user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.WRITE_PROJECT), project.getProjectId())) && (status.indexOf("Ok") === 0 || status.indexOf("Failure") === 0)) { - disabled = ""; + disabledEdit = ""; } - row[6] = "<button name='showEditDialog' data='" + project.getProjectId() + "'" + disabled + "><i class='fa fa-edit' style='font-size:17px'></i></button>"; + if ((user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_ADMIN)) || + (user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_CURATOR)) && + user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.WRITE_PROJECT), project.getProjectId()))) + && (status.indexOf("Ok") === 0 || status.indexOf("Failure") === 0)) { + disabledRemove = ""; + } + + row[6] = "<button name='showEditDialog' data='" + project.getProjectId() + "'" + disabledEdit + "><i class='fa fa-edit' style='font-size:17px'></i></button>"; if (self.getConfiguration().getOption(ConfigurationType.DEFAULT_MAP).getValue() === projectId) { - disabled = " disabled "; + disabledRemove = " disabled "; } - row[7] = "<button name='removeProject' data='" + project.getProjectId() + "'" + disabled + "><i class='fa fa-trash-o' style='font-size:17px'></button>"; + row[7] = "<button name='removeProject' data='" + project.getProjectId() + "'" + disabledRemove + "><i class='fa fa-trash-o' style='font-size:17px'></button>"; return row; };