@@ -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