@@ -177,6 +177,25 @@ describe('Gitlab Auth Plugin Unit Tests', () => {
177
177
verdaccioGitlab . allow_publish ( config . remoteUser , _package , cb ) ;
178
178
} ) ;
179
179
180
+ test ( 'should allow unpublish of package based on user group' , done => {
181
+ const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
182
+ const _package : VerdaccioGitlabPackageAccess = {
183
+ name : '@myGroup/myPackage' ,
184
+ access : [ '$all' ] ,
185
+ gitlab : true ,
186
+ publish : [ '$authenticated' ] ,
187
+ proxy : [ 'npmjs' ] ,
188
+ } ;
189
+
190
+ const cb : Callback = ( err , data ) => {
191
+ expect ( err ) . toBeFalsy ( ) ;
192
+ expect ( data ) . toBe ( true ) ;
193
+ done ( ) ;
194
+ } ;
195
+
196
+ verdaccioGitlab . allow_unpublish ( config . remoteUser , _package , cb ) ;
197
+ } ) ;
198
+
180
199
test ( 'should allow publish of package based on user project' , done => {
181
200
const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
182
201
const _package : VerdaccioGitlabPackageAccess = {
@@ -196,6 +215,25 @@ describe('Gitlab Auth Plugin Unit Tests', () => {
196
215
verdaccioGitlab . allow_publish ( config . remoteUser , _package , cb ) ;
197
216
} ) ;
198
217
218
+ test ( 'should allow unpublish of package based on user project' , done => {
219
+ const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
220
+ const _package : VerdaccioGitlabPackageAccess = {
221
+ name : '@anotherGroup/myProject' ,
222
+ access : [ '$all' ] ,
223
+ gitlab : true ,
224
+ publish : [ '$authenticated' ] ,
225
+ proxy : [ 'npmjs' ] ,
226
+ } ;
227
+
228
+ const cb : Callback = ( err , data ) => {
229
+ expect ( err ) . toBeFalsy ( ) ;
230
+ expect ( data ) . toBe ( true ) ;
231
+ done ( ) ;
232
+ } ;
233
+
234
+ verdaccioGitlab . allow_unpublish ( config . remoteUser , _package , cb ) ;
235
+ } ) ;
236
+
199
237
test ( 'should allow publish of package based on user name' , done => {
200
238
const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
201
239
const _package : VerdaccioGitlabPackageAccess = {
@@ -215,6 +253,25 @@ describe('Gitlab Auth Plugin Unit Tests', () => {
215
253
verdaccioGitlab . allow_publish ( config . remoteUser , _package , cb ) ;
216
254
} ) ;
217
255
256
+ test ( 'should allow unpublish of package based on user name' , done => {
257
+ const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
258
+ const _package : VerdaccioGitlabPackageAccess = {
259
+ name : config . user ,
260
+ access : [ '$all' ] ,
261
+ gitlab : true ,
262
+ publish : [ '$authenticated' ] ,
263
+ proxy : [ 'npmjs' ] ,
264
+ } ;
265
+
266
+ const cb : Callback = ( err , data ) => {
267
+ expect ( err ) . toBeFalsy ( ) ;
268
+ expect ( data ) . toBe ( true ) ;
269
+ done ( ) ;
270
+ } ;
271
+
272
+ verdaccioGitlab . allow_unpublish ( config . remoteUser , _package , cb ) ;
273
+ } ) ;
274
+
218
275
test ( 'should deny publish of package based on unauthenticated' , done => {
219
276
const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
220
277
const unauthenticatedUser : RemoteUser = {
@@ -239,6 +296,30 @@ describe('Gitlab Auth Plugin Unit Tests', () => {
239
296
verdaccioGitlab . allow_publish ( unauthenticatedUser , _package , cb ) ;
240
297
} ) ;
241
298
299
+ test ( 'should deny unpublish of package based on unauthenticated' , done => {
300
+ const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
301
+ const unauthenticatedUser : RemoteUser = {
302
+ real_groups : [ ] ,
303
+ groups : [ ] ,
304
+ name : undefined ,
305
+ } ;
306
+ const _package : VerdaccioGitlabPackageAccess = {
307
+ name : config . user ,
308
+ access : [ '$all' ] ,
309
+ gitlab : true ,
310
+ publish : [ '$authenticated' ] ,
311
+ proxy : [ 'npmjs' ] ,
312
+ } ;
313
+
314
+ const cb : Callback = ( err , data ) => {
315
+ expect ( err ) . toBeTruthy ( ) ;
316
+ expect ( data ) . toBeFalsy ( ) ;
317
+ done ( ) ;
318
+ } ;
319
+
320
+ verdaccioGitlab . allow_unpublish ( unauthenticatedUser , _package , cb ) ;
321
+ } ) ;
322
+
242
323
test ( 'should deny publish of package based on group' , done => {
243
324
const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
244
325
const _package : VerdaccioGitlabPackageAccess = {
@@ -258,6 +339,25 @@ describe('Gitlab Auth Plugin Unit Tests', () => {
258
339
verdaccioGitlab . allow_publish ( config . remoteUser , _package , cb ) ;
259
340
} ) ;
260
341
342
+ test ( 'should deny unpublish of package based on group' , done => {
343
+ const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
344
+ const _package : VerdaccioGitlabPackageAccess = {
345
+ name : '@anotherGroup/myPackage' ,
346
+ access : [ '$all' ] ,
347
+ gitlab : true ,
348
+ publish : [ '$authenticated' ] ,
349
+ proxy : [ 'npmjs' ] ,
350
+ } ;
351
+
352
+ const cb : Callback = ( err , data ) => {
353
+ expect ( err ) . toBeTruthy ( ) ;
354
+ expect ( data ) . toBeFalsy ( ) ;
355
+ done ( ) ;
356
+ } ;
357
+
358
+ verdaccioGitlab . allow_unpublish ( config . remoteUser , _package , cb ) ;
359
+ } ) ;
360
+
261
361
test ( 'should deny publish of package based on user' , done => {
262
362
const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
263
363
const _package : VerdaccioGitlabPackageAccess = {
@@ -276,4 +376,23 @@ describe('Gitlab Auth Plugin Unit Tests', () => {
276
376
277
377
verdaccioGitlab . allow_publish ( config . remoteUser , _package , cb ) ;
278
378
} ) ;
379
+
380
+ test ( 'should deny unpublish of package based on user' , done => {
381
+ const verdaccioGitlab : VerdaccioGitlab = new VerdaccioGitlab ( config . verdaccioGitlabConfig , config . options ) ;
382
+ const _package : VerdaccioGitlabPackageAccess = {
383
+ name : 'anotherUser' ,
384
+ access : [ '$all' ] ,
385
+ gitlab : true ,
386
+ publish : [ '$authenticated' ] ,
387
+ proxy : [ 'npmjs' ] ,
388
+ } ;
389
+
390
+ const cb : Callback = ( err , data ) => {
391
+ expect ( err ) . toBeTruthy ( ) ;
392
+ expect ( data ) . toBeFalsy ( ) ;
393
+ done ( ) ;
394
+ } ;
395
+
396
+ verdaccioGitlab . allow_unpublish ( config . remoteUser , _package , cb ) ;
397
+ } ) ;
279
398
} ) ;
0 commit comments