Skip to content

Commit 766ee8f

Browse files
committed
canI write/delete
1 parent 33adc76 commit 766ee8f

File tree

4 files changed

+48
-8
lines changed

4 files changed

+48
-8
lines changed

services/static-webserver/client/source/class/osparc/data/model/Tag.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,28 @@ qx.Class.define("osparc.data.model.Tag", {
7373
},
7474
},
7575

76+
statics: {
77+
canIWrite: function(tagAccessRights) {
78+
const groupsStore = osparc.store.Groups.getInstance();
79+
const orgIDs = groupsStore.getOrganizationIds();
80+
orgIDs.push(groupsStore.getMyGroupId());
81+
if (orgIDs.length) {
82+
return osparc.share.CollaboratorsTag.canGroupsWrite(tagAccessRights, (orgIDs));
83+
}
84+
return false;
85+
},
86+
87+
canIDelete: function(tagAccessRights) {
88+
const groupsStore = osparc.store.Groups.getInstance();
89+
const orgIDs = groupsStore.getOrganizationIds();
90+
orgIDs.push(groupsStore.getMyGroupId());
91+
if (orgIDs.length) {
92+
return osparc.share.CollaboratorsTag.canGroupsDelete(tagAccessRights, (orgIDs));
93+
}
94+
return false;
95+
},
96+
},
97+
7698
members: {
7799
serialize: function() {
78100
const jsonObject = {};

services/static-webserver/client/source/class/osparc/form/tag/TagItem.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -215,20 +215,21 @@ qx.Class.define("osparc.form.tag.TagItem", {
215215
* Generates and returns the buttons for deleting and editing an existing label (display mode)
216216
*/
217217
__tagItemButtons: function() {
218+
const canIWrite = osparc.data.model.Tag.canIWrite(this.getAccessRights());
219+
const canIDelete = osparc.data.model.Tag.canIDelete(this.getAccessRights());
220+
218221
const buttonContainer = new qx.ui.container.Composite(new qx.ui.layout.HBox());
219222
const editButton = new qx.ui.form.Button().set({
220223
icon: "@FontAwesome5Solid/pencil-alt/12",
221-
toolTipText: this.tr("Edit")
224+
toolTipText: this.tr("Edit"),
225+
enabled: canIWrite,
222226
});
223227
const deleteButton = new osparc.ui.form.FetchButton().set({
224228
appearance: "danger-button",
225229
icon: "@FontAwesome5Solid/trash/12",
226-
toolTipText: this.tr("Delete")
230+
toolTipText: this.tr("Delete"),
231+
enabled: canIDelete,
227232
});
228-
if (this.isPropertyInitialized("accessRights")) {
229-
editButton.setEnabled(this.getAccessRights()["write"]);
230-
deleteButton.setEnabled(this.getAccessRights()["delete"]);
231-
}
232233
buttonContainer.add(editButton);
233234
buttonContainer.add(deleteButton);
234235
editButton.addListener("execute", () => this.setMode(this.self().modes.EDIT), this);

services/static-webserver/client/source/class/osparc/share/Collaborators.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,9 @@ qx.Class.define("osparc.share.Collaborators", {
202202
case "workspace":
203203
canIShare = osparc.share.CollaboratorsWorkspace.canIDelete(this._serializedDataCopy["myAccessRights"]);
204204
break;
205+
case "tag":
206+
canIShare = osparc.data.model.Tag.canIDelete(this._serializedDataCopy["accessRights"]);
207+
break;
205208
}
206209
return canIShare;
207210
},

services/static-webserver/client/source/class/osparc/share/CollaboratorsTag.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,22 @@ qx.Class.define("osparc.share.CollaboratorsTag", {
3131
},
3232

3333
statics: {
34-
canIDelete: function(myAccessRights) {
35-
return myAccessRights["delete"];
34+
canGroupsWrite: function(accessRights, gIds) {
35+
let canWrite = false;
36+
for (let i=0; i<gIds.length && !canWrite; i++) {
37+
const gid = gIds[i];
38+
canWrite = (gid in accessRights) ? accessRights[gid]["write"] : false;
39+
}
40+
return canWrite;
41+
},
42+
43+
canGroupsDelete: function(accessRights, gIds) {
44+
let canWrite = false;
45+
for (let i=0; i<gIds.length && !canWrite; i++) {
46+
const gid = gIds[i];
47+
canWrite = (gid in accessRights) ? accessRights[gid]["delete"] : false;
48+
}
49+
return canWrite;
3650
},
3751

3852
getViewerAccessRight: function() {

0 commit comments

Comments
 (0)