@@ -171,41 +171,35 @@ const controller = {
171
171
172
172
// if permCodes in db is `null` then just assign READ
173
173
const permCodes = ! invite . permCodes ? [ Permissions . READ ] : invite . permCodes ;
174
-
175
- // Assign array of permCode to the bucket or object
176
- permCodes . forEach ( async permCode => {
177
- if ( invite . type === ResourceType . OBJECT ) {
178
- // Check for object existence
179
- await objectService . read ( invite . resource ) . catch ( ( ) => {
180
- inviteService . delete ( token ) ;
181
- throw new Problem ( 409 , {
182
- detail : `Object '${ invite . resource } ' not found` ,
183
- instance : req . originalUrl ,
184
- objectId : invite . resource
185
- } ) ;
174
+ if ( invite . type === ResourceType . OBJECT ) {
175
+ // Check for object existence
176
+ await objectService . read ( invite . resource ) . catch ( ( ) => {
177
+ inviteService . delete ( token ) ;
178
+ throw new Problem ( 409 , {
179
+ detail : `Object '${ invite . resource } ' not found` ,
180
+ instance : req . originalUrl ,
181
+ objectId : invite . resource
186
182
} ) ;
183
+ } ) ;
187
184
188
- // Grant invitation permission and cleanup
189
- await objectPermissionService . addPermissions ( invite . resource , [
190
- { userId : userId , permCode : permCode }
191
- ] , invite . createdBy ) ;
192
- } else if ( invite . type === ResourceType . BUCKET ) {
193
- // Check for object existence
194
- await bucketService . read ( invite . resource ) . catch ( ( ) => {
195
- inviteService . delete ( token ) ;
196
- throw new Problem ( 409 , {
197
- detail : `Bucket '${ invite . resource } ' not found` ,
198
- instance : req . originalUrl ,
199
- bucketId : invite . resource
200
- } ) ;
185
+ // Grant invitation permission and cleanup
186
+ await objectPermissionService . addPermissions ( invite . resource ,
187
+ permCodes . map ( permCode => ( { userId, permCode } ) ) , invite . createdBy ) ;
188
+ } else if ( invite . type === ResourceType . BUCKET ) {
189
+ // Check for object existence
190
+ await bucketService . read ( invite . resource ) . catch ( ( ) => {
191
+ inviteService . delete ( token ) ;
192
+ throw new Problem ( 409 , {
193
+ detail : `Bucket '${ invite . resource } ' not found` ,
194
+ instance : req . originalUrl ,
195
+ bucketId : invite . resource
201
196
} ) ;
197
+ } ) ;
202
198
203
- // Grant invitation permission and cleanup
204
- await bucketPermissionService . addPermissions ( invite . resource , [
205
- { userId : userId , permCode : permCode }
206
- ] , invite . createdBy ) ;
207
- }
208
- } ) ;
199
+ // Grant invitation permission and cleanup
200
+ await bucketPermissionService . addPermissions ( invite . resource ,
201
+ permCodes . map ( permCode => ( { userId, permCode } ) ) , invite . createdBy ) ;
202
+ }
209
203
210
204
// Cleanup invite on success
211
205
inviteService . delete ( token ) ;
0 commit comments