Skip to content

Commit 4f7d4a7

Browse files
committed
patchAccessRights
1 parent 1548cad commit 4f7d4a7

File tree

2 files changed

+48
-22
lines changed

2 files changed

+48
-22
lines changed

services/static-webserver/client/source/class/osparc/desktop/organizations/MembersList.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -331,19 +331,11 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
331331
return;
332332
}
333333

334-
const params = {
335-
url: {
336-
"gid": this.__currentOrg.getGroupId(),
337-
"uid": listedMember["id"]
338-
},
339-
data: {
340-
"accessRights": this.self().getReadAccess()
341-
}
342-
};
343-
osparc.data.Resources.fetch("organizationMembers", "patch", params)
334+
const newAccessRights = this.self().getReadAccess();
335+
const groupsStore = osparc.store.Groups.getInstance();
336+
groupsStore.patchMember(this.__currentOrg.getGroupId(), listedMember["id"], newAccessRights)
344337
.then(() => {
345338
osparc.FlashMessenger.getInstance().logAs(this.tr(`Successfully promoted to ${osparc.data.Roles.ORG[1].label}`));
346-
osparc.store.Store.getInstance().reset("organizationMembers");
347339
this.__reloadOrgMembers();
348340
})
349341
.catch(err => {

services/static-webserver/client/source/class/osparc/store/Groups.js

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,22 @@ qx.Class.define("osparc.store.Groups", {
231231
return null;
232232
},
233233

234+
getGroupMemberByUserId: function(orgId, userId) {
235+
const org = this.getGroup(orgId);
236+
if (org) {
237+
return Object.values(org.getGroupMembers()).find(user => user.getUserId() === userId);
238+
}
239+
return null;
240+
},
241+
242+
getGroupMemberByLogin: function(orgId, userEmail) {
243+
const org = this.getGroup(orgId);
244+
if (org) {
245+
return Object.values(org.getGroupMembers()).find(user => user.getLogin() === userEmail);
246+
}
247+
return null;
248+
},
249+
234250
postGroup: function(name, parentGroupId = null, workspaceId = null) {
235251
const newGroupData = {
236252
name,
@@ -304,12 +320,32 @@ qx.Class.define("osparc.store.Groups", {
304320
return this.__fetchGroupMembers(gid);
305321
})
306322
.then(() => {
307-
const org = this.getOrganization(gid);
308-
if (org) {
309-
const groupMember = Object.values(org.getGroupMembers()).find(user => user.getLogin() === newMemberEmail);
310-
if (groupMember) {
311-
return groupMember;
312-
}
323+
const groupMember = this.getGroupMemberByLogin(gid, newMemberEmail);
324+
if (groupMember) {
325+
return groupMember;
326+
}
327+
return null;
328+
});
329+
},
330+
331+
patchAccessRights: function(orgId, userId, newAccessRights) {
332+
const gid = parseInt(orgId);
333+
const uid = parseInt(userId);
334+
const params = {
335+
url: {
336+
gid,
337+
uid,
338+
},
339+
data: {
340+
"accessRights": newAccessRights
341+
}
342+
};
343+
return osparc.data.Resources.fetch("organizationMembers", "patch", params)
344+
.then(() => {
345+
const groupMember = this.getGroupMemberByUserId(gid, uid);
346+
if (groupMember) {
347+
groupMember.setAccessRights(newAccessRights);
348+
return groupMember;
313349
}
314350
return null;
315351
});
@@ -370,11 +406,9 @@ qx.Class.define("osparc.store.Groups", {
370406
__removeUserFromCache: function(userId, orgId) {
371407
if (orgId) {
372408
const organization = this.getOrganization(orgId);
373-
if (organization) {
374-
const groupMember = Object.values(organization.getGroupMembers()).find(user => user.getUserId() === userId);
375-
if (groupMember) {
376-
delete organization.getGroupMembers()[groupMember.getGroupId()]
377-
}
409+
const groupMember = this.getGroupMemberByUserId(orgId, userId)
410+
if (organization && groupMember) {
411+
delete organization.getGroupMembers()[groupMember.getGroupId()]
378412
}
379413
}
380414
},

0 commit comments

Comments
 (0)