@@ -3079,16 +3079,18 @@ export class DatabaseConnection extends events.EventEmitter {
30793079
30803080
30813081 if ( customer != null && ! Util . IsNullEmpty ( user2 . customerid ) && user2 . _id != customer . users && user2 . _id != customer . admins && user2 . _id != Wellknown . root . _id ) {
3082- // TODO: Check user has permission to this customer
3083- let custusers : Role = await this . getbyid < Role > ( customer . users , "users" , q . jwt , true , span ) ;
3084- if ( custusers != null ) {
3085- custusers = Role . assign ( custusers ) ;
3086- }
3087- if ( custusers != null && ! custusers . IsMember ( q . item . _id ) ) {
3088- custusers = Role . assign ( await this . getbyid < Role > ( customer . users , "users" , q . jwt , true , span ) ) ;
3089- custusers . AddMember ( q . item ) ;
3090- await Logger . DBHelper . Save ( custusers , Crypt . rootToken ( ) , span ) ;
3091- await Logger . DBHelper . CheckCache ( q . collectionname , q . item , false , false , span ) ;
3082+ if ( ! Util . IsNullEmpty ( customer . users ) ) {
3083+ // TODO: Check user has permission to this customer
3084+ let custusers : Role = await this . getbyid < Role > ( customer . users , "users" , q . jwt , true , span ) ;
3085+ if ( custusers != null ) {
3086+ custusers = Role . assign ( custusers ) ;
3087+ }
3088+ if ( custusers != null && ! custusers . IsMember ( q . item . _id ) ) {
3089+ custusers = Role . assign ( await this . getbyid < Role > ( customer . users , "users" , q . jwt , true , span ) ) ;
3090+ custusers . AddMember ( q . item ) ;
3091+ await Logger . DBHelper . Save ( custusers , Crypt . rootToken ( ) , span ) ;
3092+ await Logger . DBHelper . CheckCache ( q . collectionname , q . item , false , false , span ) ;
3093+ }
30923094 }
30933095 } else {
30943096 // await Logger.DBHelper.UserRoleUpdate(q.item, false, span);
@@ -4046,23 +4048,27 @@ export class DatabaseConnection extends events.EventEmitter {
40464048 } else if ( user . _type == "customer" ) {
40474049 let customer = user as any as Customer ;
40484050 if ( user . roles == null ) user . roles = [ ] ;
4049- user . roles . push ( new Rolemember ( user . name + " users" , customer . users ) )
4050- user . roles . push ( new Rolemember ( user . name + " admins " , customer . admins ) )
4051- let users = await Logger . DBHelper . FindRoleById ( customer . users , Crypt . rootToken ( ) , parent ) ;
4052- let admins = await Logger . DBHelper . FindRoleById ( customer . admins , Crypt . rootToken ( ) , parent ) ;
4053- if ( users != null ) {
4054- for ( let i = 0 ; i < users . members . length ; i ++ ) {
4055- const exists = user . roles . filter ( x => x . _id == users . members [ i ] . _id ) ;
4056- if ( exists . length == 0 ) {
4057- user . roles . push ( new Rolemember ( users . members [ i ] . name , users . members [ i ] . _id ) )
4051+ if ( ! Util . IsNullEmpty ( customer . users ) ) {
4052+ user . roles . push ( new Rolemember ( user . name + " users " , customer . users ) )
4053+ let users = await Logger . DBHelper . FindRoleById ( customer . users , Crypt . rootToken ( ) , parent ) ;
4054+ if ( users != null ) {
4055+ for ( let i = 0 ; i < users . members . length ; i ++ ) {
4056+ const exists = user . roles . filter ( x => x . _id == users . members [ i ] . _id ) ;
4057+ if ( exists . length == 0 ) {
4058+ user . roles . push ( new Rolemember ( users . members [ i ] . name , users . members [ i ] . _id ) )
4059+ }
40584060 }
40594061 }
40604062 }
4061- if ( admins != null ) {
4062- for ( let i = 0 ; i < admins . members . length ; i ++ ) {
4063- const exists = user . roles . filter ( x => x . _id == admins . members [ i ] . _id ) ;
4064- if ( exists . length == 0 && admins . members [ i ] . _id != Wellknown . customer_admins . _id ) {
4065- user . roles . push ( new Rolemember ( admins . members [ i ] . name , admins . members [ i ] . _id ) )
4063+ if ( ! Util . IsNullEmpty ( customer . admins ) ) {
4064+ user . roles . push ( new Rolemember ( user . name + " admins" , customer . admins ) )
4065+ let admins = await Logger . DBHelper . FindRoleById ( customer . admins , Crypt . rootToken ( ) , parent ) ;
4066+ if ( admins != null ) {
4067+ for ( let i = 0 ; i < admins . members . length ; i ++ ) {
4068+ const exists = user . roles . filter ( x => x . _id == admins . members [ i ] . _id ) ;
4069+ if ( exists . length == 0 && admins . members [ i ] . _id != Wellknown . customer_admins . _id ) {
4070+ user . roles . push ( new Rolemember ( admins . members [ i ] . name , admins . members [ i ] . _id ) )
4071+ }
40664072 }
40674073 }
40684074 }
0 commit comments