Skip to content
Snippets Groups Projects
Commit 18089451 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

disable controls when user doesn't have privileges

parent 3ae49e71
No related branches found
No related tags found
1 merge request!895Resolve "Curator can not set the overlay public or change the owner"
...@@ -10,6 +10,7 @@ minerva (14.0.0~beta.0) unstable; urgency=low ...@@ -10,6 +10,7 @@ minerva (14.0.0~beta.0) unstable; urgency=low
check logs (#894) check logs (#894)
* Bug fix: user without admin or curator privileges had issues with accesing * Bug fix: user without admin or curator privileges had issues with accesing
and removing data overlays (#897, #898, #899, #903) and removing data overlays (#897, #898, #899, #903)
* Bug fix: user without privileges had edit map input options enabled
* Bug fix: alignment of tabs fixed for dialogs: "Add Project", "Edit Genome", * Bug fix: alignment of tabs fixed for dialogs: "Add Project", "Edit Genome",
"Edit Project", "Edit User" (#881) "Edit Project", "Edit User" (#881)
......
...@@ -819,19 +819,22 @@ EditProjectDialog.prototype.setOverlays = function (overlays) { ...@@ -819,19 +819,22 @@ EditProjectDialog.prototype.setOverlays = function (overlays) {
/** /**
* *
* @param {MapModel[]} maps * @param {MapModel[]} maps
* @return {Promise<T>}
*/ */
EditProjectDialog.prototype.setMaps = function (maps) { EditProjectDialog.prototype.setMaps = function (maps) {
var self = this; var self = this;
self._mapsById = []; return self.getServerConnector().getLoggedUser().then(function (user) {
var dataTable = $($("[name='mapsTable']", self.getElement())[0]).DataTable(); self._mapsById = [];
var data = []; var dataTable = $($("[name='mapsTable']", self.getElement())[0]).DataTable();
for (var i = 0; i < maps.length; i++) { var data = [];
var map = maps[i]; for (var i = 0; i < maps.length; i++) {
self._mapsById[map.getId()] = map; var map = maps[i];
var rowData = self.mapToTableRow(map); self._mapsById[map.getId()] = map;
data.push(rowData); var rowData = self.mapToTableRow(map, user);
} data.push(rowData);
dataTable.clear().rows.add(data).draw(); }
dataTable.clear().rows.add(data).draw();
});
}; };
/** /**
...@@ -985,9 +988,21 @@ function getValueOrEmpty(value) { ...@@ -985,9 +988,21 @@ function getValueOrEmpty(value) {
/** /**
* *
* @param {MapModel} map * @param {MapModel} map
* @param {User} user
* @returns {Array} * @returns {Array}
*/ */
EditProjectDialog.prototype.mapToTableRow = function (map) { EditProjectDialog.prototype.mapToTableRow = function (map, user) {
var self = this;
var canWrite = user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_ADMIN)) ||
user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.WRITE_PROJECT), self.getProject().getProjectId());
var disabled = " disabled ";
if (canWrite) {
disabled = '';
}
var row = []; var row = [];
var id = map.getId(); var id = map.getId();
var centerX = getValueOrEmpty(map.getDefaultCenterX()); var centerX = getValueOrEmpty(map.getDefaultCenterX());
...@@ -995,15 +1010,15 @@ EditProjectDialog.prototype.mapToTableRow = function (map) { ...@@ -995,15 +1010,15 @@ EditProjectDialog.prototype.mapToTableRow = function (map) {
var zoomLevel = getValueOrEmpty(map.getDefaultZoomLevel()); var zoomLevel = getValueOrEmpty(map.getDefaultZoomLevel());
row[0] = id; row[0] = id;
row[1] = map.getName(); row[1] = map.getName();
row[2] = "<input name='defaultCenterX' data='" + id + "' value='" + centerX + "'/>"; row[2] = "<input name='defaultCenterX' data='" + id + "' value='" + centerX + "'" + disabled + "/>";
row[3] = "<input name='defaultCenterY' data='" + id + "' value='" + centerY + "'/>"; row[3] = "<input name='defaultCenterY' data='" + id + "' value='" + centerY + "'" + disabled + "/>";
var selected = ""; var selected = "";
if ('' === zoomLevel) { if ('' === zoomLevel) {
selected = " selected "; selected = " selected ";
} }
var zoomLevelSelect = "<select name='defaultZoomLevel' data='" + id + "' >" + var zoomLevelSelect = "<select name='defaultZoomLevel' data='" + id + "' " + disabled + ">" +
"<option value=''" + selected + ">---</option>"; "<option value=''" + selected + ">---</option>";
for (var i = map.getMinZoom(); i <= map.getMaxZoom(); i++) { for (var i = map.getMinZoom(); i <= map.getMaxZoom(); i++) {
selected = ""; selected = "";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment