@hitchy/plugin-auth 0.3.0 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/api/policy/authentication.js +81 -27
  2. package/api/service/auth/manager.js +36 -4
  3. package/api/service/authentication/passport.js +6 -5
  4. package/api/service/authentication/strategies.js +57 -34
  5. package/api/service/authorization/tree.js +8 -8
  6. package/coverage/index.html +45 -45
  7. package/coverage/plugin-auth/api/controller/index.html +1 -1
  8. package/coverage/plugin-auth/api/controller/user.js.html +53 -53
  9. package/coverage/plugin-auth/api/model/authorization/index.html +1 -1
  10. package/coverage/plugin-auth/api/model/authorization/rule.js.html +31 -31
  11. package/coverage/plugin-auth/api/model/index.html +1 -1
  12. package/coverage/plugin-auth/api/model/role.js.html +29 -29
  13. package/coverage/plugin-auth/api/model/user-to-role.js.html +21 -21
  14. package/coverage/plugin-auth/api/model/user.js.html +192 -192
  15. package/coverage/plugin-auth/api/policy/authentication.js.html +281 -119
  16. package/coverage/plugin-auth/api/policy/authorization.js.html +25 -25
  17. package/coverage/plugin-auth/api/policy/index.html +18 -18
  18. package/coverage/plugin-auth/api/policy/user.js.html +37 -37
  19. package/coverage/plugin-auth/api/service/auth/index.html +16 -16
  20. package/coverage/plugin-auth/api/service/auth/manager.js.html +293 -197
  21. package/coverage/plugin-auth/api/service/authentication/index.html +25 -25
  22. package/coverage/plugin-auth/api/service/authentication/passport.js.html +55 -52
  23. package/coverage/plugin-auth/api/service/authentication/strategies.js.html +204 -135
  24. package/coverage/plugin-auth/api/service/authorization/index.html +1 -1
  25. package/coverage/plugin-auth/api/service/authorization/node.js.html +136 -136
  26. package/coverage/plugin-auth/api/service/authorization/policy-generator.js.html +29 -29
  27. package/coverage/plugin-auth/api/service/authorization/tree.js.html +140 -140
  28. package/coverage/plugin-auth/config/auth.js.html +17 -17
  29. package/coverage/plugin-auth/config/index.html +1 -1
  30. package/coverage/plugin-auth/index.html +15 -15
  31. package/coverage/plugin-auth/index.js.html +94 -55
  32. package/coverage/tmp/coverage-16252-1648499208727-0.json +1 -0
  33. package/index.js +17 -4
  34. package/package.json +2 -2
  35. package/coverage/tmp/coverage-6744-1648396809135-0.json +0 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.55% </span>
26
+ <span class="strong">96.24% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>252/261</span>
28
+ <span class='fraction'>282/293</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90.32% </span>
33
+ <span class="strong">86.95% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>56/62</span>
35
+ <span class='fraction'>60/69</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/9</span>
42
+ <span class='fraction'>10/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">96.55% </span>
47
+ <span class="strong">96.24% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>252/261</span>
49
+ <span class='fraction'>282/293</span>
50
50
  </div>
51
51
 
52
52
 
@@ -318,147 +318,179 @@
318
318
  <a name='L259'></a><a href='#L259'>259</a>
319
319
  <a name='L260'></a><a href='#L260'>260</a>
320
320
  <a name='L261'></a><a href='#L261'>261</a>
321
- <a name='L262'></a><a href='#L262'>262</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
321
+ <a name='L262'></a><a href='#L262'>262</a>
322
+ <a name='L263'></a><a href='#L263'>263</a>
323
+ <a name='L264'></a><a href='#L264'>264</a>
324
+ <a name='L265'></a><a href='#L265'>265</a>
325
+ <a name='L266'></a><a href='#L266'>266</a>
326
+ <a name='L267'></a><a href='#L267'>267</a>
327
+ <a name='L268'></a><a href='#L268'>268</a>
328
+ <a name='L269'></a><a href='#L269'>269</a>
329
+ <a name='L270'></a><a href='#L270'>270</a>
330
+ <a name='L271'></a><a href='#L271'>271</a>
331
+ <a name='L272'></a><a href='#L272'>272</a>
332
+ <a name='L273'></a><a href='#L273'>273</a>
333
+ <a name='L274'></a><a href='#L274'>274</a>
334
+ <a name='L275'></a><a href='#L275'>275</a>
335
+ <a name='L276'></a><a href='#L276'>276</a>
336
+ <a name='L277'></a><a href='#L277'>277</a>
337
+ <a name='L278'></a><a href='#L278'>278</a>
338
+ <a name='L279'></a><a href='#L279'>279</a>
339
+ <a name='L280'></a><a href='#L280'>280</a>
340
+ <a name='L281'></a><a href='#L281'>281</a>
341
+ <a name='L282'></a><a href='#L282'>282</a>
342
+ <a name='L283'></a><a href='#L283'>283</a>
343
+ <a name='L284'></a><a href='#L284'>284</a>
344
+ <a name='L285'></a><a href='#L285'>285</a>
345
+ <a name='L286'></a><a href='#L286'>286</a>
346
+ <a name='L287'></a><a href='#L287'>287</a>
347
+ <a name='L288'></a><a href='#L288'>288</a>
348
+ <a name='L289'></a><a href='#L289'>289</a>
349
+ <a name='L290'></a><a href='#L290'>290</a>
350
+ <a name='L291'></a><a href='#L291'>291</a>
351
+ <a name='L292'></a><a href='#L292'>292</a>
352
+ <a name='L293'></a><a href='#L293'>293</a>
353
+ <a name='L294'></a><a href='#L294'>294</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
322
354
  <span class="cline-any cline-yes">1x</span>
323
355
  <span class="cline-any cline-yes">1x</span>
324
- <span class="cline-any cline-yes">18x</span>
325
- <span class="cline-any cline-yes">18x</span>
326
- <span class="cline-any cline-yes">18x</span>
327
- <span class="cline-any cline-yes">18x</span>
328
- <span class="cline-any cline-yes">18x</span>
329
- <span class="cline-any cline-yes">18x</span>
330
- <span class="cline-any cline-yes">18x</span>
331
- <span class="cline-any cline-yes">18x</span>
332
- <span class="cline-any cline-yes">18x</span>
333
- <span class="cline-any cline-yes">18x</span>
334
- <span class="cline-any cline-yes">18x</span>
335
- <span class="cline-any cline-yes">18x</span>
336
- <span class="cline-any cline-yes">18x</span>
337
- <span class="cline-any cline-yes">18x</span>
338
- <span class="cline-any cline-yes">18x</span>
339
- <span class="cline-any cline-yes">18x</span>
340
- <span class="cline-any cline-yes">18x</span>
341
- <span class="cline-any cline-yes">18x</span>
342
- <span class="cline-any cline-yes">107x</span>
356
+ <span class="cline-any cline-yes">19x</span>
357
+ <span class="cline-any cline-yes">19x</span>
358
+ <span class="cline-any cline-yes">19x</span>
359
+ <span class="cline-any cline-yes">19x</span>
360
+ <span class="cline-any cline-yes">19x</span>
361
+ <span class="cline-any cline-yes">19x</span>
362
+ <span class="cline-any cline-yes">19x</span>
363
+ <span class="cline-any cline-yes">19x</span>
364
+ <span class="cline-any cline-yes">19x</span>
365
+ <span class="cline-any cline-yes">19x</span>
366
+ <span class="cline-any cline-yes">19x</span>
367
+ <span class="cline-any cline-yes">19x</span>
368
+ <span class="cline-any cline-yes">19x</span>
369
+ <span class="cline-any cline-yes">19x</span>
370
+ <span class="cline-any cline-yes">19x</span>
371
+ <span class="cline-any cline-yes">19x</span>
372
+ <span class="cline-any cline-yes">19x</span>
373
+ <span class="cline-any cline-yes">19x</span>
374
+ <span class="cline-any cline-yes">109x</span>
343
375
  <span class="cline-any cline-no">&nbsp;</span>
344
376
  <span class="cline-any cline-no">&nbsp;</span>
345
- <span class="cline-any cline-yes">107x</span>
346
- <span class="cline-any cline-yes">107x</span>
347
- <span class="cline-any cline-yes">107x</span>
377
+ <span class="cline-any cline-yes">109x</span>
378
+ <span class="cline-any cline-yes">109x</span>
379
+ <span class="cline-any cline-yes">109x</span>
348
380
  <span class="cline-any cline-yes">31x</span>
349
- <span class="cline-any cline-yes">107x</span>
381
+ <span class="cline-any cline-yes">109x</span>
350
382
  <span class="cline-any cline-yes">31x</span>
351
- <span class="cline-any cline-yes">107x</span>
352
- <span class="cline-any cline-yes">93x</span>
353
- <span class="cline-any cline-yes">93x</span>
383
+ <span class="cline-any cline-yes">109x</span>
384
+ <span class="cline-any cline-yes">95x</span>
385
+ <span class="cline-any cline-yes">95x</span>
354
386
  <span class="cline-any cline-yes">14x</span>
355
- <span class="cline-any cline-yes">107x</span>
387
+ <span class="cline-any cline-yes">109x</span>
356
388
  <span class="cline-any cline-no">&nbsp;</span>
357
389
  <span class="cline-any cline-no">&nbsp;</span>
358
390
  <span class="cline-any cline-yes">14x</span>
359
- <span class="cline-any cline-yes">107x</span>
391
+ <span class="cline-any cline-yes">109x</span>
360
392
  <span class="cline-any cline-yes">4x</span>
361
393
  <span class="cline-any cline-yes">4x</span>
362
394
  <span class="cline-any cline-yes">10x</span>
363
395
  <span class="cline-any cline-yes">10x</span>
364
396
  <span class="cline-any cline-yes">10x</span>
365
- <span class="cline-any cline-yes">107x</span>
366
- <span class="cline-any cline-yes">107x</span>
367
- <span class="cline-any cline-yes">107x</span>
368
- <span class="cline-any cline-yes">107x</span>
369
- <span class="cline-any cline-yes">18x</span>
370
- <span class="cline-any cline-yes">18x</span>
371
- <span class="cline-any cline-yes">18x</span>
372
- <span class="cline-any cline-yes">18x</span>
373
- <span class="cline-any cline-yes">18x</span>
374
- <span class="cline-any cline-yes">18x</span>
375
- <span class="cline-any cline-yes">18x</span>
376
- <span class="cline-any cline-yes">18x</span>
377
- <span class="cline-any cline-yes">18x</span>
378
- <span class="cline-any cline-yes">18x</span>
379
- <span class="cline-any cline-yes">120x</span>
397
+ <span class="cline-any cline-yes">109x</span>
398
+ <span class="cline-any cline-yes">109x</span>
399
+ <span class="cline-any cline-yes">109x</span>
400
+ <span class="cline-any cline-yes">109x</span>
401
+ <span class="cline-any cline-yes">19x</span>
402
+ <span class="cline-any cline-yes">19x</span>
403
+ <span class="cline-any cline-yes">19x</span>
404
+ <span class="cline-any cline-yes">19x</span>
405
+ <span class="cline-any cline-yes">19x</span>
406
+ <span class="cline-any cline-yes">19x</span>
407
+ <span class="cline-any cline-yes">19x</span>
408
+ <span class="cline-any cline-yes">19x</span>
409
+ <span class="cline-any cline-yes">19x</span>
410
+ <span class="cline-any cline-yes">19x</span>
411
+ <span class="cline-any cline-yes">123x</span>
380
412
  <span class="cline-any cline-no">&nbsp;</span>
381
413
  <span class="cline-any cline-no">&nbsp;</span>
382
- <span class="cline-any cline-yes">120x</span>
383
- <span class="cline-any cline-yes">120x</span>
384
- <span class="cline-any cline-yes">120x</span>
385
- <span class="cline-any cline-yes">120x</span>
386
- <span class="cline-any cline-yes">74x</span>
387
- <span class="cline-any cline-yes">74x</span>
388
- <span class="cline-any cline-yes">74x</span>
414
+ <span class="cline-any cline-yes">123x</span>
415
+ <span class="cline-any cline-yes">123x</span>
416
+ <span class="cline-any cline-yes">123x</span>
417
+ <span class="cline-any cline-yes">123x</span>
418
+ <span class="cline-any cline-yes">75x</span>
419
+ <span class="cline-any cline-yes">75x</span>
420
+ <span class="cline-any cline-yes">75x</span>
389
421
  <span class="cline-any cline-yes">2x</span>
390
422
  <span class="cline-any cline-yes">2x</span>
391
- <span class="cline-any cline-yes">74x</span>
392
- <span class="cline-any cline-yes">118x</span>
393
- <span class="cline-any cline-yes">120x</span>
394
- <span class="cline-any cline-yes">72x</span>
395
- <span class="cline-any cline-yes">120x</span>
396
- <span class="cline-any cline-yes">72x</span>
397
- <span class="cline-any cline-yes">120x</span>
423
+ <span class="cline-any cline-yes">75x</span>
424
+ <span class="cline-any cline-yes">121x</span>
425
+ <span class="cline-any cline-yes">123x</span>
398
426
  <span class="cline-any cline-yes">73x</span>
427
+ <span class="cline-any cline-yes">123x</span>
399
428
  <span class="cline-any cline-yes">73x</span>
400
- <span class="cline-any cline-yes">45x</span>
401
- <span class="cline-any cline-yes">120x</span>
429
+ <span class="cline-any cline-yes">123x</span>
430
+ <span class="cline-any cline-yes">75x</span>
431
+ <span class="cline-any cline-yes">75x</span>
432
+ <span class="cline-any cline-yes">46x</span>
433
+ <span class="cline-any cline-yes">123x</span>
402
434
  <span class="cline-any cline-no">&nbsp;</span>
403
435
  <span class="cline-any cline-no">&nbsp;</span>
404
- <span class="cline-any cline-yes">45x</span>
405
- <span class="cline-any cline-yes">120x</span>
436
+ <span class="cline-any cline-yes">46x</span>
437
+ <span class="cline-any cline-yes">123x</span>
406
438
  <span class="cline-any cline-yes">2x</span>
407
439
  <span class="cline-any cline-yes">2x</span>
408
- <span class="cline-any cline-yes">43x</span>
409
- <span class="cline-any cline-yes">43x</span>
410
- <span class="cline-any cline-yes">43x</span>
411
- <span class="cline-any cline-yes">120x</span>
412
- <span class="cline-any cline-yes">120x</span>
413
- <span class="cline-any cline-yes">120x</span>
414
- <span class="cline-any cline-yes">120x</span>
415
- <span class="cline-any cline-yes">18x</span>
416
- <span class="cline-any cline-yes">18x</span>
417
- <span class="cline-any cline-yes">18x</span>
418
- <span class="cline-any cline-yes">18x</span>
419
- <span class="cline-any cline-yes">18x</span>
420
- <span class="cline-any cline-yes">18x</span>
421
- <span class="cline-any cline-yes">18x</span>
422
- <span class="cline-any cline-yes">18x</span>
423
- <span class="cline-any cline-yes">18x</span>
424
- <span class="cline-any cline-yes">18x</span>
425
- <span class="cline-any cline-yes">48x</span>
426
- <span class="cline-any cline-yes">48x</span>
427
- <span class="cline-any cline-yes">48x</span>
428
- <span class="cline-any cline-yes">48x</span>
429
- <span class="cline-any cline-yes">48x</span>
430
- <span class="cline-any cline-yes">48x</span>
431
- <span class="cline-any cline-yes">48x</span>
432
- <span class="cline-any cline-yes">48x</span>
433
- <span class="cline-any cline-yes">37x</span>
434
- <span class="cline-any cline-yes">37x</span>
435
- <span class="cline-any cline-yes">37x</span>
440
+ <span class="cline-any cline-yes">44x</span>
441
+ <span class="cline-any cline-yes">44x</span>
442
+ <span class="cline-any cline-yes">44x</span>
443
+ <span class="cline-any cline-yes">123x</span>
444
+ <span class="cline-any cline-yes">123x</span>
445
+ <span class="cline-any cline-yes">123x</span>
446
+ <span class="cline-any cline-yes">123x</span>
447
+ <span class="cline-any cline-yes">19x</span>
448
+ <span class="cline-any cline-yes">19x</span>
449
+ <span class="cline-any cline-yes">19x</span>
450
+ <span class="cline-any cline-yes">19x</span>
451
+ <span class="cline-any cline-yes">19x</span>
452
+ <span class="cline-any cline-yes">19x</span>
453
+ <span class="cline-any cline-yes">19x</span>
454
+ <span class="cline-any cline-yes">19x</span>
455
+ <span class="cline-any cline-yes">19x</span>
456
+ <span class="cline-any cline-yes">19x</span>
457
+ <span class="cline-any cline-yes">49x</span>
458
+ <span class="cline-any cline-yes">49x</span>
459
+ <span class="cline-any cline-yes">49x</span>
460
+ <span class="cline-any cline-yes">49x</span>
461
+ <span class="cline-any cline-yes">49x</span>
462
+ <span class="cline-any cline-yes">49x</span>
463
+ <span class="cline-any cline-yes">49x</span>
464
+ <span class="cline-any cline-yes">49x</span>
465
+ <span class="cline-any cline-yes">38x</span>
466
+ <span class="cline-any cline-yes">38x</span>
467
+ <span class="cline-any cline-yes">38x</span>
436
468
  <span class="cline-any cline-no">&nbsp;</span>
437
- <span class="cline-any cline-yes">37x</span>
438
- <span class="cline-any cline-yes">37x</span>
439
- <span class="cline-any cline-yes">37x</span>
440
- <span class="cline-any cline-yes">37x</span>
441
- <span class="cline-any cline-yes">48x</span>
442
- <span class="cline-any cline-yes">48x</span>
443
- <span class="cline-any cline-yes">48x</span>
444
- <span class="cline-any cline-yes">18x</span>
445
- <span class="cline-any cline-yes">18x</span>
446
- <span class="cline-any cline-yes">18x</span>
447
- <span class="cline-any cline-yes">18x</span>
448
- <span class="cline-any cline-yes">18x</span>
449
- <span class="cline-any cline-yes">18x</span>
450
- <span class="cline-any cline-yes">18x</span>
451
- <span class="cline-any cline-yes">18x</span>
452
- <span class="cline-any cline-yes">18x</span>
453
- <span class="cline-any cline-yes">18x</span>
469
+ <span class="cline-any cline-yes">38x</span>
470
+ <span class="cline-any cline-yes">38x</span>
471
+ <span class="cline-any cline-yes">38x</span>
472
+ <span class="cline-any cline-yes">38x</span>
473
+ <span class="cline-any cline-yes">49x</span>
474
+ <span class="cline-any cline-yes">49x</span>
475
+ <span class="cline-any cline-yes">49x</span>
476
+ <span class="cline-any cline-yes">19x</span>
477
+ <span class="cline-any cline-yes">19x</span>
478
+ <span class="cline-any cline-yes">19x</span>
479
+ <span class="cline-any cline-yes">19x</span>
480
+ <span class="cline-any cline-yes">19x</span>
481
+ <span class="cline-any cline-yes">19x</span>
482
+ <span class="cline-any cline-yes">19x</span>
483
+ <span class="cline-any cline-yes">19x</span>
484
+ <span class="cline-any cline-yes">19x</span>
485
+ <span class="cline-any cline-yes">19x</span>
486
+ <span class="cline-any cline-yes">27x</span>
487
+ <span class="cline-any cline-yes">26x</span>
488
+ <span class="cline-any cline-yes">26x</span>
489
+ <span class="cline-any cline-yes">26x</span>
490
+ <span class="cline-any cline-yes">26x</span>
454
491
  <span class="cline-any cline-yes">26x</span>
455
- <span class="cline-any cline-yes">25x</span>
456
- <span class="cline-any cline-yes">25x</span>
457
- <span class="cline-any cline-yes">25x</span>
458
- <span class="cline-any cline-yes">25x</span>
459
- <span class="cline-any cline-yes">25x</span>
460
- <span class="cline-any cline-yes">25x</span>
461
492
  <span class="cline-any cline-yes">26x</span>
493
+ <span class="cline-any cline-yes">27x</span>
462
494
  <span class="cline-any cline-yes">8x</span>
463
495
  <span class="cline-any cline-yes">8x</span>
464
496
  <span class="cline-any cline-yes">8x</span>
@@ -467,47 +499,47 @@
467
499
  <span class="cline-any cline-yes">6x</span>
468
500
  <span class="cline-any cline-yes">6x</span>
469
501
  <span class="cline-any cline-yes">8x</span>
470
- <span class="cline-any cline-yes">25x</span>
471
502
  <span class="cline-any cline-yes">26x</span>
472
- <span class="cline-any cline-yes">26x</span>
473
- <span class="cline-any cline-yes">18x</span>
474
- <span class="cline-any cline-yes">18x</span>
475
- <span class="cline-any cline-yes">18x</span>
476
- <span class="cline-any cline-yes">18x</span>
477
- <span class="cline-any cline-yes">18x</span>
478
- <span class="cline-any cline-yes">18x</span>
479
- <span class="cline-any cline-yes">18x</span>
480
- <span class="cline-any cline-yes">18x</span>
481
- <span class="cline-any cline-yes">18x</span>
482
- <span class="cline-any cline-yes">18x</span>
503
+ <span class="cline-any cline-yes">27x</span>
504
+ <span class="cline-any cline-yes">27x</span>
505
+ <span class="cline-any cline-yes">19x</span>
506
+ <span class="cline-any cline-yes">19x</span>
507
+ <span class="cline-any cline-yes">19x</span>
508
+ <span class="cline-any cline-yes">19x</span>
509
+ <span class="cline-any cline-yes">19x</span>
510
+ <span class="cline-any cline-yes">19x</span>
511
+ <span class="cline-any cline-yes">19x</span>
512
+ <span class="cline-any cline-yes">19x</span>
513
+ <span class="cline-any cline-yes">19x</span>
514
+ <span class="cline-any cline-yes">19x</span>
515
+ <span class="cline-any cline-yes">36x</span>
516
+ <span class="cline-any cline-yes">35x</span>
517
+ <span class="cline-any cline-yes">35x</span>
518
+ <span class="cline-any cline-yes">35x</span>
483
519
  <span class="cline-any cline-yes">35x</span>
484
- <span class="cline-any cline-yes">34x</span>
485
- <span class="cline-any cline-yes">34x</span>
486
- <span class="cline-any cline-yes">34x</span>
487
- <span class="cline-any cline-yes">34x</span>
488
- <span class="cline-any cline-yes">34x</span>
489
520
  <span class="cline-any cline-yes">35x</span>
521
+ <span class="cline-any cline-yes">36x</span>
490
522
  <span class="cline-any cline-yes">2x</span>
491
523
  <span class="cline-any cline-yes">2x</span>
492
524
  <span class="cline-any cline-yes">2x</span>
493
525
  <span class="cline-any cline-yes">2x</span>
494
- <span class="cline-any cline-yes">32x</span>
495
- <span class="cline-any cline-yes">32x</span>
496
- <span class="cline-any cline-yes">32x</span>
497
- <span class="cline-any cline-yes">32x</span>
498
- <span class="cline-any cline-yes">32x</span>
499
- <span class="cline-any cline-yes">32x</span>
500
- <span class="cline-any cline-yes">35x</span>
501
- <span class="cline-any cline-yes">18x</span>
502
- <span class="cline-any cline-yes">18x</span>
503
- <span class="cline-any cline-yes">18x</span>
504
- <span class="cline-any cline-yes">18x</span>
505
- <span class="cline-any cline-yes">18x</span>
506
- <span class="cline-any cline-yes">18x</span>
507
- <span class="cline-any cline-yes">18x</span>
508
- <span class="cline-any cline-yes">18x</span>
509
- <span class="cline-any cline-yes">18x</span>
510
- <span class="cline-any cline-yes">18x</span>
526
+ <span class="cline-any cline-yes">33x</span>
527
+ <span class="cline-any cline-yes">33x</span>
528
+ <span class="cline-any cline-yes">33x</span>
529
+ <span class="cline-any cline-yes">33x</span>
530
+ <span class="cline-any cline-yes">33x</span>
531
+ <span class="cline-any cline-yes">33x</span>
532
+ <span class="cline-any cline-yes">36x</span>
533
+ <span class="cline-any cline-yes">19x</span>
534
+ <span class="cline-any cline-yes">19x</span>
535
+ <span class="cline-any cline-yes">19x</span>
536
+ <span class="cline-any cline-yes">19x</span>
537
+ <span class="cline-any cline-yes">19x</span>
538
+ <span class="cline-any cline-yes">19x</span>
539
+ <span class="cline-any cline-yes">19x</span>
540
+ <span class="cline-any cline-yes">19x</span>
541
+ <span class="cline-any cline-yes">19x</span>
542
+ <span class="cline-any cline-yes">19x</span>
511
543
  <span class="cline-any cline-yes">5x</span>
512
544
  <span class="cline-any cline-yes">4x</span>
513
545
  <span class="cline-any cline-yes">4x</span>
@@ -524,68 +556,100 @@
524
556
  <span class="cline-any cline-yes">4x</span>
525
557
  <span class="cline-any cline-yes">4x</span>
526
558
  <span class="cline-any cline-yes">5x</span>
527
- <span class="cline-any cline-yes">18x</span>
528
- <span class="cline-any cline-yes">18x</span>
529
- <span class="cline-any cline-yes">18x</span>
530
- <span class="cline-any cline-yes">18x</span>
531
- <span class="cline-any cline-yes">18x</span>
532
- <span class="cline-any cline-yes">18x</span>
533
- <span class="cline-any cline-yes">18x</span>
534
- <span class="cline-any cline-yes">18x</span>
535
- <span class="cline-any cline-yes">42x</span>
536
- <span class="cline-any cline-yes">42x</span>
537
- <span class="cline-any cline-yes">42x</span>
538
- <span class="cline-any cline-yes">42x</span>
539
- <span class="cline-any cline-yes">18x</span>
540
- <span class="cline-any cline-yes">18x</span>
541
- <span class="cline-any cline-yes">18x</span>
542
- <span class="cline-any cline-yes">18x</span>
543
- <span class="cline-any cline-yes">18x</span>
544
- <span class="cline-any cline-yes">18x</span>
545
- <span class="cline-any cline-yes">18x</span>
559
+ <span class="cline-any cline-yes">19x</span>
560
+ <span class="cline-any cline-yes">19x</span>
561
+ <span class="cline-any cline-yes">19x</span>
562
+ <span class="cline-any cline-yes">19x</span>
563
+ <span class="cline-any cline-yes">19x</span>
564
+ <span class="cline-any cline-yes">19x</span>
565
+ <span class="cline-any cline-yes">19x</span>
566
+ <span class="cline-any cline-yes">19x</span>
567
+ <span class="cline-any cline-yes">48x</span>
568
+ <span class="cline-any cline-yes">48x</span>
569
+ <span class="cline-any cline-yes">48x</span>
570
+ <span class="cline-any cline-yes">48x</span>
571
+ <span class="cline-any cline-yes">19x</span>
572
+ <span class="cline-any cline-yes">19x</span>
573
+ <span class="cline-any cline-yes">19x</span>
574
+ <span class="cline-any cline-yes">19x</span>
575
+ <span class="cline-any cline-yes">19x</span>
576
+ <span class="cline-any cline-yes">19x</span>
577
+ <span class="cline-any cline-yes">19x</span>
578
+ <span class="cline-any cline-yes">21x</span>
579
+ <span class="cline-any cline-yes">21x</span>
580
+ <span class="cline-any cline-yes">21x</span>
581
+ <span class="cline-any cline-yes">21x</span>
582
+ <span class="cline-any cline-yes">1x</span>
583
+ <span class="cline-any cline-yes">1x</span>
584
+ <span class="cline-any cline-yes">1x</span>
585
+ <span class="cline-any cline-yes">1x</span>
546
586
  <span class="cline-any cline-yes">20x</span>
547
587
  <span class="cline-any cline-yes">20x</span>
548
588
  <span class="cline-any cline-yes">20x</span>
549
589
  <span class="cline-any cline-yes">20x</span>
590
+ <span class="cline-any cline-yes">20x</span>
591
+ <span class="cline-any cline-yes">21x</span>
550
592
  <span class="cline-any cline-yes">1x</span>
551
- <span class="cline-any cline-yes">1x</span>
552
- <span class="cline-any cline-yes">1x</span>
553
- <span class="cline-any cline-yes">1x</span>
593
+ <span class="cline-any cline-yes">21x</span>
594
+ <span class="cline-any cline-yes">19x</span>
595
+ <span class="cline-any cline-yes">19x</span>
596
+ <span class="cline-any cline-yes">19x</span>
597
+ <span class="cline-any cline-yes">19x</span>
598
+ <span class="cline-any cline-yes">19x</span>
599
+ <span class="cline-any cline-yes">19x</span>
554
600
  <span class="cline-any cline-yes">19x</span>
555
601
  <span class="cline-any cline-yes">19x</span>
556
602
  <span class="cline-any cline-yes">19x</span>
557
603
  <span class="cline-any cline-yes">19x</span>
558
604
  <span class="cline-any cline-yes">19x</span>
559
605
  <span class="cline-any cline-yes">20x</span>
560
- <span class="cline-any cline-yes">1x</span>
561
606
  <span class="cline-any cline-yes">20x</span>
562
- <span class="cline-any cline-yes">18x</span>
563
- <span class="cline-any cline-yes">18x</span>
564
- <span class="cline-any cline-yes">18x</span>
565
- <span class="cline-any cline-yes">18x</span>
566
- <span class="cline-any cline-yes">18x</span>
567
- <span class="cline-any cline-yes">18x</span>
568
- <span class="cline-any cline-yes">18x</span>
569
- <span class="cline-any cline-yes">18x</span>
570
- <span class="cline-any cline-yes">18x</span>
571
- <span class="cline-any cline-yes">18x</span>
572
- <span class="cline-any cline-yes">18x</span>
607
+ <span class="cline-any cline-yes">20x</span>
608
+ <span class="cline-any cline-yes">20x</span>
609
+ <span class="cline-any cline-yes">21x</span>
573
610
  <span class="cline-any cline-yes">19x</span>
574
611
  <span class="cline-any cline-yes">19x</span>
575
612
  <span class="cline-any cline-yes">19x</span>
576
613
  <span class="cline-any cline-yes">19x</span>
577
- <span class="cline-any cline-yes">20x</span>
578
- <span class="cline-any cline-yes">18x</span>
579
- <span class="cline-any cline-yes">18x</span>
580
- <span class="cline-any cline-yes">18x</span>
614
+ <span class="cline-any cline-yes">19x</span>
615
+ <span class="cline-any cline-yes">19x</span>
616
+ <span class="cline-any cline-yes">19x</span>
617
+ <span class="cline-any cline-yes">19x</span>
618
+ <span class="cline-any cline-yes">19x</span>
619
+ <span class="cline-any cline-yes">19x</span>
620
+ <span class="cline-any cline-yes">11x</span>
621
+ <span class="cline-any cline-yes">11x</span>
622
+ <span class="cline-any cline-yes">11x</span>
623
+ <span class="cline-any cline-yes">11x</span>
624
+ <span class="cline-any cline-yes">11x</span>
625
+ <span class="cline-any cline-yes">11x</span>
626
+ <span class="cline-any cline-no">&nbsp;</span>
627
+ <span class="cline-any cline-yes">11x</span>
628
+ <span class="cline-any cline-yes">11x</span>
629
+ <span class="cline-any cline-yes">11x</span>
630
+ <span class="cline-any cline-yes">11x</span>
631
+ <span class="cline-any cline-yes">11x</span>
632
+ <span class="cline-any cline-yes">10x</span>
633
+ <span class="cline-any cline-yes">10x</span>
634
+ <span class="cline-any cline-yes">1x</span>
635
+ <span class="cline-any cline-yes">1x</span>
636
+ <span class="cline-any cline-yes">1x</span>
637
+ <span class="cline-any cline-yes">11x</span>
638
+ <span class="cline-any cline-yes">11x</span>
639
+ <span class="cline-any cline-no">&nbsp;</span>
640
+ <span class="cline-any cline-yes">11x</span>
641
+ <span class="cline-any cline-yes">11x</span>
642
+ <span class="cline-any cline-yes">19x</span>
643
+ <span class="cline-any cline-yes">19x</span>
644
+ <span class="cline-any cline-yes">19x</span>
581
645
  <span class="cline-any cline-yes">1x</span>
582
646
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">"use strict";
583
647
  &nbsp;
584
648
  module.exports = function() {
585
649
  const api = this;
586
- const { models } = api.runtime;
650
+ const { models, services } = api.runtime;
587
651
  &nbsp;
588
- const DebugLog = api.log( "hitchy:plugin:auth:debug" );
652
+ const logDebug = api.log( "hitchy:plugin:auth:debug" );
589
653
  &nbsp;
590
654
  /**
591
655
  * Implements several helper methods meant to simplify user/role management.
@@ -808,7 +872,7 @@ module.exports = function() {
808
872
  const users = await this.listUsersOfRole( role );
809
873
  &nbsp;
810
874
  if ( users.length &gt; 0 ) {
811
- DebugLog( "admin user found" );
875
+ logDebug( "admin user found" );
812
876
  &nbsp;
813
877
  return users;
814
878
  }
@@ -822,7 +886,7 @@ module.exports = function() {
822
886
  } else {
823
887
  const config = api.config.auth.admin;
824
888
  &nbsp;
825
- DebugLog( "creating admin user" );
889
+ logDebug( "creating admin user" );
826
890
  &nbsp;
827
891
  user = new models.User();
828
892
  &nbsp;
@@ -836,6 +900,38 @@ module.exports = function() {
836
900
  &nbsp;
837
901
  return [user];
838
902
  }
903
+ &nbsp;
904
+ /**
905
+ * Checks if named user can be authenticated locally using provided
906
+ * password.
907
+ *
908
+ * @param {string} username name of user to authenticate
909
+ * @param {string} password password of named to user
910
+ * @return {Promise&lt;User&gt;} promises successfully authenticated user
911
+ */
912
+ static async checkAuthentication( username, password ) {
913
+ const candidates = ( await models.User
914
+ .find( { eq: { name: username } }, {}, { loadRecords: true } ) )
915
+ .filter( user =&gt; !user.strategy <span class="branch-0 cbranch-no" title="branch not covered" >|| user.strategy === "local" </span>);
916
+ &nbsp;
917
+ switch ( candidates.length ) {
918
+ <span class="branch-0 cbranch-no" title="branch not covered" > case 0 :</span>
919
+ <span class="cstat-no" title="statement not covered" > throw new services.HttpException( 400, `no such local user: ${username}` );</span>
920
+ &nbsp;
921
+ case 1 : {
922
+ const [user] = candidates;
923
+ &nbsp;
924
+ if ( await user.verifyPassword( password ) ) {
925
+ return user;
926
+ }
927
+ &nbsp;
928
+ throw new services.HttpException( 403, "invalid password" );
929
+ }
930
+ &nbsp;
931
+ <span class="branch-0 cbranch-no" title="branch not covered" > default :</span>
932
+ <span class="cstat-no" title="statement not covered" > throw new services.HttpException( 400, "ambiguous username" );</span>
933
+ }
934
+ }
839
935
  }
840
936
  &nbsp;
841
937
  return AuthManager;
@@ -847,7 +943,7 @@ module.exports = function() {
847
943
  <div class='footer quiet pad2 space-top1 center small'>
848
944
  Code coverage generated by
849
945
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
850
- at Sun Mar 27 2022 18:00:09 GMT+0200 (Mitteleuropäische Sommerzeit)
946
+ at Mon Mar 28 2022 22:26:49 GMT+0200 (Mitteleuropäische Sommerzeit)
851
947
  </div>
852
948
  </div>
853
949
  <script src="../../../../prettify.js"></script>