@budibase/worker 2.1.43-alpha.12 → 2.1.43-alpha.14

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 (107) hide show
  1. package/coverage/clover.xml +386 -376
  2. package/coverage/coverage-final.json +9 -9
  3. package/coverage/lcov-report/index.html +23 -23
  4. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +1 -1
  5. package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +1 -1
  6. package/coverage/lcov-report/src/api/controllers/global/email.ts.html +1 -1
  7. package/coverage/lcov-report/src/api/controllers/global/index.html +10 -10
  8. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +1 -1
  10. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +1 -1
  11. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +1 -1
  12. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +14 -11
  13. package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +1 -1
  14. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +1 -1
  15. package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +1 -1
  16. package/coverage/lcov-report/src/api/controllers/system/index.html +1 -1
  17. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +1 -1
  18. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/system/status.ts.html +1 -1
  20. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +1 -1
  21. package/coverage/lcov-report/src/api/index.html +1 -1
  22. package/coverage/lcov-report/src/api/index.ts.html +7 -7
  23. package/coverage/lcov-report/src/api/routes/global/auth.ts.html +1 -1
  24. package/coverage/lcov-report/src/api/routes/global/configs.ts.html +1 -1
  25. package/coverage/lcov-report/src/api/routes/global/email.ts.html +1 -1
  26. package/coverage/lcov-report/src/api/routes/global/index.html +1 -1
  27. package/coverage/lcov-report/src/api/routes/global/license.ts.html +1 -1
  28. package/coverage/lcov-report/src/api/routes/global/roles.ts.html +1 -1
  29. package/coverage/lcov-report/src/api/routes/global/self.ts.html +1 -1
  30. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +1 -1
  31. package/coverage/lcov-report/src/api/routes/global/users.ts.html +3 -3
  32. package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  34. package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
  35. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +1 -1
  36. package/coverage/lcov-report/src/api/routes/system/environment.ts.html +1 -1
  37. package/coverage/lcov-report/src/api/routes/system/index.html +1 -1
  38. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +1 -1
  39. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/routes/system/status.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/routes/validation/index.html +1 -1
  43. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +1 -1
  45. package/coverage/lcov-report/src/constants/index.html +1 -1
  46. package/coverage/lcov-report/src/constants/index.ts.html +1 -1
  47. package/coverage/lcov-report/src/constants/templates/index.html +1 -1
  48. package/coverage/lcov-report/src/constants/templates/index.ts.html +1 -1
  49. package/coverage/lcov-report/src/db/index.html +1 -1
  50. package/coverage/lcov-report/src/db/index.ts.html +1 -1
  51. package/coverage/lcov-report/src/environment.ts.html +2 -2
  52. package/coverage/lcov-report/src/index.html +1 -1
  53. package/coverage/lcov-report/src/index.ts.html +1 -1
  54. package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +1 -1
  55. package/coverage/lcov-report/src/middleware/index.html +1 -1
  56. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +1 -1
  57. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  58. package/coverage/lcov-report/src/migrations/index.html +1 -1
  59. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  60. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +1 -1
  61. package/coverage/lcov-report/src/sdk/accounts/index.html +1 -1
  62. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +1 -1
  63. package/coverage/lcov-report/src/sdk/index.html +1 -1
  64. package/coverage/lcov-report/src/sdk/index.ts.html +1 -1
  65. package/coverage/lcov-report/src/sdk/users/events.ts.html +43 -43
  66. package/coverage/lcov-report/src/sdk/users/index.html +22 -22
  67. package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
  68. package/coverage/lcov-report/src/sdk/users/users.ts.html +112 -73
  69. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +12 -12
  70. package/coverage/lcov-report/src/tests/api/accounts.ts.html +1 -1
  71. package/coverage/lcov-report/src/tests/api/auth.ts.html +1 -1
  72. package/coverage/lcov-report/src/tests/api/base.ts.html +1 -1
  73. package/coverage/lcov-report/src/tests/api/configs.ts.html +1 -1
  74. package/coverage/lcov-report/src/tests/api/email.ts.html +1 -1
  75. package/coverage/lcov-report/src/tests/api/environment.ts.html +1 -1
  76. package/coverage/lcov-report/src/tests/api/index.html +5 -5
  77. package/coverage/lcov-report/src/tests/api/index.ts.html +1 -1
  78. package/coverage/lcov-report/src/tests/api/migrations.ts.html +1 -1
  79. package/coverage/lcov-report/src/tests/api/restore.ts.html +1 -1
  80. package/coverage/lcov-report/src/tests/api/self.ts.html +1 -1
  81. package/coverage/lcov-report/src/tests/api/status.ts.html +1 -1
  82. package/coverage/lcov-report/src/tests/api/tenants.ts.html +1 -1
  83. package/coverage/lcov-report/src/tests/api/users.ts.html +7 -7
  84. package/coverage/lcov-report/src/tests/controllers.ts.html +1 -1
  85. package/coverage/lcov-report/src/tests/index.html +1 -1
  86. package/coverage/lcov-report/src/tests/index.ts.html +1 -1
  87. package/coverage/lcov-report/src/tests/mocks/email.js.html +1 -1
  88. package/coverage/lcov-report/src/tests/mocks/index.html +1 -1
  89. package/coverage/lcov-report/src/tests/mocks/index.ts.html +1 -1
  90. package/coverage/lcov-report/src/tests/structures/configs.ts.html +1 -1
  91. package/coverage/lcov-report/src/tests/structures/groups.ts.html +1 -1
  92. package/coverage/lcov-report/src/tests/structures/index.html +1 -1
  93. package/coverage/lcov-report/src/tests/structures/index.ts.html +1 -1
  94. package/coverage/lcov-report/src/tests/structures/users.ts.html +1 -1
  95. package/coverage/lcov-report/src/utilities/appService.ts.html +5 -5
  96. package/coverage/lcov-report/src/utilities/email.ts.html +1 -1
  97. package/coverage/lcov-report/src/utilities/fileSystem.ts.html +1 -1
  98. package/coverage/lcov-report/src/utilities/index.html +1 -1
  99. package/coverage/lcov-report/src/utilities/index.ts.html +1 -1
  100. package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
  101. package/coverage/lcov-report/src/utilities/templates.ts.html +1 -1
  102. package/coverage/lcov-report/src/utilities/users.ts.html +1 -1
  103. package/coverage/lcov.info +659 -640
  104. package/package.json +6 -6
  105. package/src/api/controllers/global/users.ts +2 -1
  106. package/src/api/routes/global/tests/users.spec.ts +18 -1
  107. package/src/sdk/users/users.ts +28 -15
@@ -73,7 +73,7 @@
73
73
  <div class='footer quiet pad2 space-top1 center small'>
74
74
  Code coverage generated by
75
75
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
76
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
76
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
77
77
  </div>
78
78
  <script src="../../../prettify.js"></script>
79
79
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">86.17% </span>
26
+ <span class="strong">86.94% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>243/282</span>
28
+ <span class='fraction'>253/291</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">76% </span>
33
+ <span class="strong">79.76% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>57/75</span>
35
+ <span class='fraction'>67/84</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">86.34% </span>
47
+ <span class="strong">87.2% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>215/249</span>
49
+ <span class='fraction'>225/258</span>
50
50
  </div>
51
51
 
52
52
 
@@ -669,7 +669,20 @@
669
669
  <a name='L604'></a><a href='#L604'>604</a>
670
670
  <a name='L605'></a><a href='#L605'>605</a>
671
671
  <a name='L606'></a><a href='#L606'>606</a>
672
- <a name='L607'></a><a href='#L607'>607</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a>
680
+ <a name='L615'></a><a href='#L615'>615</a>
681
+ <a name='L616'></a><a href='#L616'>616</a>
682
+ <a name='L617'></a><a href='#L617'>617</a>
683
+ <a name='L618'></a><a href='#L618'>618</a>
684
+ <a name='L619'></a><a href='#L619'>619</a>
685
+ <a name='L620'></a><a href='#L620'>620</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
673
686
  <span class="cline-any cline-yes">17x</span>
674
687
  <span class="cline-any cline-yes">17x</span>
675
688
  <span class="cline-any cline-yes">17x</span>
@@ -701,6 +714,7 @@
701
714
  <span class="cline-any cline-neutral">&nbsp;</span>
702
715
  <span class="cline-any cline-neutral">&nbsp;</span>
703
716
  <span class="cline-any cline-neutral">&nbsp;</span>
717
+ <span class="cline-any cline-neutral">&nbsp;</span>
704
718
  <span class="cline-any cline-yes">17x</span>
705
719
  <span class="cline-any cline-yes">17x</span>
706
720
  <span class="cline-any cline-yes">17x</span>
@@ -766,12 +780,13 @@
766
780
  <span class="cline-any cline-neutral">&nbsp;</span>
767
781
  <span class="cline-any cline-neutral">&nbsp;</span>
768
782
  <span class="cline-any cline-yes">17x</span>
769
- <span class="cline-any cline-yes">7x</span>
770
- <span class="cline-any cline-yes">7x</span>
771
- <span class="cline-any cline-yes">7x</span>
772
- <span class="cline-any cline-yes">7x</span>
783
+ <span class="cline-any cline-yes">9x</span>
784
+ <span class="cline-any cline-yes">9x</span>
785
+ <span class="cline-any cline-yes">9x</span>
786
+ <span class="cline-any cline-yes">9x</span>
787
+ <span class="cline-any cline-neutral">&nbsp;</span>
788
+ <span class="cline-any cline-yes">9x</span>
773
789
  <span class="cline-any cline-neutral">&nbsp;</span>
774
- <span class="cline-any cline-yes">7x</span>
775
790
  <span class="cline-any cline-neutral">&nbsp;</span>
776
791
  <span class="cline-any cline-neutral">&nbsp;</span>
777
792
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -787,21 +802,22 @@
787
802
  <span class="cline-any cline-neutral">&nbsp;</span>
788
803
  <span class="cline-any cline-neutral">&nbsp;</span>
789
804
  <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-yes">91x</span>
791
- <span class="cline-any cline-yes">91x</span>
805
+ <span class="cline-any cline-yes">92x</span>
806
+ <span class="cline-any cline-yes">92x</span>
807
+ <span class="cline-any cline-yes">92x</span>
792
808
  <span class="cline-any cline-neutral">&nbsp;</span>
793
809
  <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-yes">91x</span>
810
+ <span class="cline-any cline-yes">92x</span>
795
811
  <span class="cline-any cline-yes">90x</span>
812
+ <span class="cline-any cline-yes">2x</span>
796
813
  <span class="cline-any cline-yes">1x</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
814
  <span class="cline-any cline-yes">1x</span>
799
815
  <span class="cline-any cline-no">&nbsp;</span>
800
816
  <span class="cline-any cline-neutral">&nbsp;</span>
801
817
  <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-yes">91x</span>
818
+ <span class="cline-any cline-yes">92x</span>
803
819
  <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-yes">91x</span>
820
+ <span class="cline-any cline-yes">92x</span>
805
821
  <span class="cline-any cline-neutral">&nbsp;</span>
806
822
  <span class="cline-any cline-neutral">&nbsp;</span>
807
823
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -810,30 +826,30 @@
810
826
  <span class="cline-any cline-neutral">&nbsp;</span>
811
827
  <span class="cline-any cline-neutral">&nbsp;</span>
812
828
  <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-yes">91x</span>
829
+ <span class="cline-any cline-yes">92x</span>
814
830
  <span class="cline-any cline-yes">1x</span>
815
831
  <span class="cline-any cline-neutral">&nbsp;</span>
816
832
  <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-yes">91x</span>
833
+ <span class="cline-any cline-yes">92x</span>
818
834
  <span class="cline-any cline-yes">81x</span>
819
835
  <span class="cline-any cline-neutral">&nbsp;</span>
820
836
  <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-yes">91x</span>
837
+ <span class="cline-any cline-yes">92x</span>
822
838
  <span class="cline-any cline-neutral">&nbsp;</span>
823
839
  <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-yes">87x</span>
840
+ <span class="cline-any cline-yes">88x</span>
825
841
  <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-yes">87x</span>
827
- <span class="cline-any cline-yes">87x</span>
828
- <span class="cline-any cline-yes">87x</span>
842
+ <span class="cline-any cline-yes">88x</span>
843
+ <span class="cline-any cline-yes">88x</span>
844
+ <span class="cline-any cline-yes">88x</span>
829
845
  <span class="cline-any cline-yes">1x</span>
830
846
  <span class="cline-any cline-neutral">&nbsp;</span>
831
847
  <span class="cline-any cline-neutral">&nbsp;</span>
832
848
  <span class="cline-any cline-neutral">&nbsp;</span>
833
849
  <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-yes">86x</span>
835
- <span class="cline-any cline-yes">86x</span>
836
- <span class="cline-any cline-yes">86x</span>
850
+ <span class="cline-any cline-yes">87x</span>
851
+ <span class="cline-any cline-yes">87x</span>
852
+ <span class="cline-any cline-yes">87x</span>
837
853
  <span class="cline-any cline-yes">1x</span>
838
854
  <span class="cline-any cline-neutral">&nbsp;</span>
839
855
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -842,28 +858,32 @@
842
858
  <span class="cline-any cline-yes">17x</span>
843
859
  <span class="cline-any cline-neutral">&nbsp;</span>
844
860
  <span class="cline-any cline-neutral">&nbsp;</span>
861
+ <span class="cline-any cline-yes">91x</span>
845
862
  <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-yes">91x</span>
864
+ <span class="cline-any cline-yes">84x</span>
846
865
  <span class="cline-any cline-neutral">&nbsp;</span>
866
+ <span class="cline-any cline-yes">91x</span>
867
+ <span class="cline-any cline-yes">84x</span>
847
868
  <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-yes">90x</span>
849
- <span class="cline-any cline-yes">90x</span>
850
- <span class="cline-any cline-yes">90x</span>
869
+ <span class="cline-any cline-yes">91x</span>
870
+ <span class="cline-any cline-yes">91x</span>
851
871
  <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-yes">90x</span>
872
+ <span class="cline-any cline-yes">91x</span>
853
873
  <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-yes">90x</span>
874
+ <span class="cline-any cline-yes">91x</span>
855
875
  <span class="cline-any cline-no">&nbsp;</span>
856
876
  <span class="cline-any cline-neutral">&nbsp;</span>
857
877
  <span class="cline-any cline-neutral">&nbsp;</span>
858
878
  <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-yes">90x</span>
879
+ <span class="cline-any cline-yes">91x</span>
860
880
  <span class="cline-any cline-neutral">&nbsp;</span>
881
+ <span class="cline-any cline-yes">13x</span>
882
+ <span class="cline-any cline-yes">13x</span>
861
883
  <span class="cline-any cline-yes">12x</span>
862
- <span class="cline-any cline-yes">12x</span>
863
- <span class="cline-any cline-yes">11x</span>
864
884
  <span class="cline-any cline-yes">1x</span>
865
885
  <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-yes">10x</span>
886
+ <span class="cline-any cline-yes">11x</span>
867
887
  <span class="cline-any cline-neutral">&nbsp;</span>
868
888
  <span class="cline-any cline-yes">2x</span>
869
889
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -873,7 +893,7 @@
873
893
  <span class="cline-any cline-neutral">&nbsp;</span>
874
894
  <span class="cline-any cline-neutral">&nbsp;</span>
875
895
  <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-yes">89x</span>
896
+ <span class="cline-any cline-yes">90x</span>
877
897
  <span class="cline-any cline-neutral">&nbsp;</span>
878
898
  <span class="cline-any cline-yes">79x</span>
879
899
  <span class="cline-any cline-yes">79x</span>
@@ -881,14 +901,20 @@
881
901
  <span class="cline-any cline-neutral">&nbsp;</span>
882
902
  <span class="cline-any cline-neutral">&nbsp;</span>
883
903
  <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-yes">87x</span>
904
+ <span class="cline-any cline-yes">88x</span>
905
+ <span class="cline-any cline-neutral">&nbsp;</span>
906
+ <span class="cline-any cline-yes">86x</span>
907
+ <span class="cline-any cline-neutral">&nbsp;</span>
908
+ <span class="cline-any cline-yes">86x</span>
909
+ <span class="cline-any cline-yes">1x</span>
910
+ <span class="cline-any cline-yes">1x</span>
911
+ <span class="cline-any cline-yes">1x</span>
885
912
  <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-yes">85x</span>
887
913
  <span class="cline-any cline-neutral">&nbsp;</span>
888
914
  <span class="cline-any cline-neutral">&nbsp;</span>
889
915
  <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-yes">85x</span>
891
- <span class="cline-any cline-yes">85x</span>
916
+ <span class="cline-any cline-yes">86x</span>
917
+ <span class="cline-any cline-yes">86x</span>
892
918
  <span class="cline-any cline-yes">74x</span>
893
919
  <span class="cline-any cline-neutral">&nbsp;</span>
894
920
  <span class="cline-any cline-yes">74x</span>
@@ -898,20 +924,20 @@
898
924
  <span class="cline-any cline-neutral">&nbsp;</span>
899
925
  <span class="cline-any cline-neutral">&nbsp;</span>
900
926
  <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-yes">85x</span>
927
+ <span class="cline-any cline-yes">86x</span>
902
928
  <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-yes">85x</span>
904
- <span class="cline-any cline-yes">85x</span>
929
+ <span class="cline-any cline-yes">86x</span>
930
+ <span class="cline-any cline-yes">86x</span>
905
931
  <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-yes">85x</span>
907
- <span class="cline-any cline-yes">85x</span>
908
- <span class="cline-any cline-yes">85x</span>
932
+ <span class="cline-any cline-yes">86x</span>
933
+ <span class="cline-any cline-yes">86x</span>
934
+ <span class="cline-any cline-yes">86x</span>
909
935
  <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-yes">85x</span>
936
+ <span class="cline-any cline-yes">86x</span>
911
937
  <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-yes">85x</span>
938
+ <span class="cline-any cline-yes">86x</span>
913
939
  <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-yes">85x</span>
940
+ <span class="cline-any cline-yes">86x</span>
915
941
  <span class="cline-any cline-neutral">&nbsp;</span>
916
942
  <span class="cline-any cline-neutral">&nbsp;</span>
917
943
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -929,14 +955,14 @@
929
955
  <span class="cline-any cline-neutral">&nbsp;</span>
930
956
  <span class="cline-any cline-neutral">&nbsp;</span>
931
957
  <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-yes">91x</span>
933
- <span class="cline-any cline-yes">91x</span>
934
- <span class="cline-any cline-yes">91x</span>
958
+ <span class="cline-any cline-yes">92x</span>
959
+ <span class="cline-any cline-yes">92x</span>
960
+ <span class="cline-any cline-yes">92x</span>
935
961
  <span class="cline-any cline-yes">40x</span>
936
962
  <span class="cline-any cline-neutral">&nbsp;</span>
937
963
  <span class="cline-any cline-neutral">&nbsp;</span>
938
964
  <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-yes">91x</span>
965
+ <span class="cline-any cline-yes">92x</span>
940
966
  <span class="cline-any cline-neutral">&nbsp;</span>
941
967
  <span class="cline-any cline-neutral">&nbsp;</span>
942
968
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1306,6 +1332,7 @@ import {
1306
1332
  RowResponse,
1307
1333
  SearchUsersRequest,
1308
1334
  User,
1335
+ ThirdPartyUser,
1309
1336
  } from "@budibase/types"
1310
1337
  import { sendEmail } from "../../utilities/email"
1311
1338
  import { EmailTemplatePurpose } from "../../constants"
@@ -1380,13 +1407,14 @@ export const getUser = async (userId: string) =&gt; {
1380
1407
  return user
1381
1408
  }
1382
1409
  &nbsp;
1383
- interface SaveUserOpts {
1410
+ export interface SaveUserOpts {
1384
1411
  hashPassword?: boolean
1385
1412
  requirePassword?: boolean
1413
+ currentUserId?: string
1386
1414
  }
1387
1415
  &nbsp;
1388
1416
  const buildUser = async (
1389
- user: User,
1417
+ user: User | ThirdPartyUser,
1390
1418
  opts: SaveUserOpts = <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1391
1419
  hashPassword: true,
1392
1420
  requirePassword: true,
@@ -1394,37 +1422,38 @@ const buildUser = async (
1394
1422
  tenantId: string,
1395
1423
  dbUser?: any
1396
1424
  ): Promise&lt;User&gt; =&gt; {
1397
- let { password, _id } = user
1425
+ let fullUser = user as User
1426
+ let { password, _id } = fullUser
1398
1427
  &nbsp;
1399
1428
  let hashedPassword
1400
1429
  if (password) {
1401
1430
  hashedPassword = opts.hashPassword ? await utils.hash(password) : <span class="branch-1 cbranch-no" title="branch not covered" >password</span>
1402
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (dbUser) {
1403
- <span class="cstat-no" title="statement not covered" > hashedPassword = dbUser.password</span>
1431
+ } else if (dbUser) {
1432
+ hashedPassword = dbUser.password
1404
1433
  } else <span class="missing-if-branch" title="if path not taken" >I</span>if (opts.requirePassword) {
1405
1434
  <span class="cstat-no" title="statement not covered" > throw "Password must be specified."</span>
1406
1435
  }
1407
1436
  &nbsp;
1408
1437
  _id = _id || dbUtils.generateGlobalUserID()
1409
1438
  &nbsp;
1410
- user = {
1439
+ fullUser = {
1411
1440
  createdAt: Date.now(),
1412
1441
  ...dbUser,
1413
- ...user,
1442
+ ...fullUser,
1414
1443
  _id,
1415
1444
  password: hashedPassword,
1416
1445
  tenantId,
1417
1446
  }
1418
1447
  // make sure the roles object is always present
1419
- if (!user.roles) {
1420
- user.roles = {}
1448
+ if (!fullUser.roles) {
1449
+ fullUser.roles = {}
1421
1450
  }
1422
1451
  // add the active status to a user if its not provided
1423
- if (user.status == null) {
1424
- user.status = constants.UserStatus.ACTIVE
1452
+ if (fullUser.status == null) {
1453
+ fullUser.status = constants.UserStatus.ACTIVE
1425
1454
  }
1426
1455
  &nbsp;
1427
- return user
1456
+ return fullUser
1428
1457
  }
1429
1458
  &nbsp;
1430
1459
  const validateUniqueUser = async (email: string, tenantId: string) =&gt; {
@@ -1446,12 +1475,16 @@ const validateUniqueUser = async (email: string, tenantId: string) =&gt; {
1446
1475
  }
1447
1476
  &nbsp;
1448
1477
  export const save = async (
1449
- user: User,
1450
- opts: SaveUserOpts = {
1451
- hashPassword: true,
1452
- requirePassword: true,
1453
- }
1478
+ user: User | ThirdPartyUser,
1479
+ opts: SaveUserOpts = {}
1454
1480
  ): Promise&lt;CreateUserResponse&gt; =&gt; {
1481
+ // default booleans to true
1482
+ if (opts.hashPassword == null) {
1483
+ opts.hashPassword = true
1484
+ }
1485
+ if (opts.requirePassword == null) {
1486
+ opts.requirePassword = true
1487
+ }
1455
1488
  const tenantId = tenancy.getTenantId()
1456
1489
  const db = tenancy.getGlobalDB()
1457
1490
  &nbsp;
@@ -1490,6 +1523,12 @@ export const save = async (
1490
1523
  await validateUniqueUser(email, tenantId)
1491
1524
  &nbsp;
1492
1525
  let builtUser = await buildUser(user, opts, tenantId, dbUser)
1526
+ // don't allow a user to update its own roles/perms
1527
+ if (opts.currentUserId &amp;&amp; opts.currentUserId === dbUser?._id) {
1528
+ builtUser.builder = dbUser.builder
1529
+ builtUser.admin = dbUser.admin
1530
+ builtUser.roles = dbUser.roles
1531
+ }
1493
1532
  &nbsp;
1494
1533
  // make sure we set the _id field for a new user
1495
1534
  // Also if this is a new user, associate groups with them
@@ -1888,7 +1927,7 @@ export const invite = async (
1888
1927
  <div class='footer quiet pad2 space-top1 center small'>
1889
1928
  Code coverage generated by
1890
1929
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1891
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
1930
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
1892
1931
  </div>
1893
1932
  <script src="../../../prettify.js"></script>
1894
1933
  <script>
@@ -528,10 +528,10 @@
528
528
  <span class="cline-any cline-neutral">&nbsp;</span>
529
529
  <span class="cline-any cline-neutral">&nbsp;</span>
530
530
  <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-yes">449x</span>
532
- <span class="cline-any cline-yes">449x</span>
531
+ <span class="cline-any cline-yes">452x</span>
532
+ <span class="cline-any cline-yes">452x</span>
533
533
  <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-yes">382x</span>
534
+ <span class="cline-any cline-yes">385x</span>
535
535
  <span class="cline-any cline-neutral">&nbsp;</span>
536
536
  <span class="cline-any cline-neutral">&nbsp;</span>
537
537
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -556,22 +556,22 @@
556
556
  <span class="cline-any cline-neutral">&nbsp;</span>
557
557
  <span class="cline-any cline-neutral">&nbsp;</span>
558
558
  <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-yes">70x</span>
559
+ <span class="cline-any cline-yes">73x</span>
560
560
  <span class="cline-any cline-no">&nbsp;</span>
561
561
  <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-yes">70x</span>
562
+ <span class="cline-any cline-yes">73x</span>
563
563
  <span class="cline-any cline-neutral">&nbsp;</span>
564
564
  <span class="cline-any cline-neutral">&nbsp;</span>
565
565
  <span class="cline-any cline-neutral">&nbsp;</span>
566
566
  <span class="cline-any cline-neutral">&nbsp;</span>
567
567
  <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-yes">69x</span>
568
+ <span class="cline-any cline-yes">72x</span>
569
569
  <span class="cline-any cline-neutral">&nbsp;</span>
570
570
  <span class="cline-any cline-neutral">&nbsp;</span>
571
571
  <span class="cline-any cline-neutral">&nbsp;</span>
572
572
  <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-yes">69x</span>
574
- <span class="cline-any cline-yes">69x</span>
573
+ <span class="cline-any cline-yes">72x</span>
574
+ <span class="cline-any cline-yes">72x</span>
575
575
  <span class="cline-any cline-neutral">&nbsp;</span>
576
576
  <span class="cline-any cline-neutral">&nbsp;</span>
577
577
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -579,9 +579,9 @@
579
579
  <span class="cline-any cline-neutral">&nbsp;</span>
580
580
  <span class="cline-any cline-neutral">&nbsp;</span>
581
581
  <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-yes">61x</span>
583
- <span class="cline-any cline-yes">61x</span>
584
- <span class="cline-any cline-yes">59x</span>
582
+ <span class="cline-any cline-yes">64x</span>
583
+ <span class="cline-any cline-yes">64x</span>
584
+ <span class="cline-any cline-yes">62x</span>
585
585
  <span class="cline-any cline-yes">2x</span>
586
586
  <span class="cline-any cline-yes">2x</span>
587
587
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1036,7 +1036,7 @@ export = TestConfiguration
1036
1036
  <div class='footer quiet pad2 space-top1 center small'>
1037
1037
  Code coverage generated by
1038
1038
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1039
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
1039
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
1040
1040
  </div>
1041
1041
  <script src="../../prettify.js"></script>
1042
1042
  <script>
@@ -145,7 +145,7 @@ export class AccountAPI extends TestAPI {
145
145
  <div class='footer quiet pad2 space-top1 center small'>
146
146
  Code coverage generated by
147
147
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
148
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
148
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
149
149
  </div>
150
150
  <script src="../../../prettify.js"></script>
151
151
  <script>
@@ -205,7 +205,7 @@ export class AuthAPI extends TestAPI {
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
208
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
208
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
209
209
  </div>
210
210
  <script src="../../../prettify.js"></script>
211
211
  <script>
@@ -118,7 +118,7 @@ export abstract class TestAPI {
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
121
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
121
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
122
122
  </div>
123
123
  <script src="../../../prettify.js"></script>
124
124
  <script>
@@ -211,7 +211,7 @@ export class ConfigAPI extends TestAPI {
211
211
  <div class='footer quiet pad2 space-top1 center small'>
212
212
  Code coverage generated by
213
213
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
214
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
214
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
215
215
  </div>
216
216
  <script src="../../../prettify.js"></script>
217
217
  <script>
@@ -133,7 +133,7 @@ export class EmailAPI extends TestAPI {
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
136
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
137
137
  </div>
138
138
  <script src="../../../prettify.js"></script>
139
139
  <script>
@@ -115,7 +115,7 @@ export class EnvironmentAPI extends TestAPI {
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
118
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
119
119
  </div>
120
120
  <script src="../../../prettify.js"></script>
121
121
  <script>
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">89.04% </span>
33
+ <span class="strong">93.15% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>65/73</span>
35
+ <span class='fraction'>68/73</span>
36
36
  </div>
37
37
 
38
38
 
@@ -265,8 +265,8 @@
265
265
  </td>
266
266
  <td data-value="100" class="pct high">100%</td>
267
267
  <td data-value="45" class="abs high">45/45</td>
268
- <td data-value="81.81" class="pct high">81.81%</td>
269
- <td data-value="33" class="abs high">27/33</td>
268
+ <td data-value="90.9" class="pct high">90.9%</td>
269
+ <td data-value="33" class="abs high">30/33</td>
270
270
  <td data-value="100" class="pct high">100%</td>
271
271
  <td data-value="15" class="abs high">15/15</td>
272
272
  <td data-value="100" class="pct high">100%</td>
@@ -281,7 +281,7 @@
281
281
  <div class='footer quiet pad2 space-top1 center small'>
282
282
  Code coverage generated by
283
283
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
284
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
284
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
285
285
  </div>
286
286
  <script src="../../../prettify.js"></script>
287
287
  <script>
@@ -190,7 +190,7 @@ export default class API {
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
193
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
193
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  <script src="../../../prettify.js"></script>
196
196
  <script>
@@ -136,7 +136,7 @@ export class MigrationAPI extends TestAPI {
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
139
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  <script src="../../../prettify.js"></script>
142
142
  <script>
@@ -112,7 +112,7 @@ export class RestoreAPI extends TestAPI {
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
115
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
115
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  <script src="../../../prettify.js"></script>
118
118
  <script>
@@ -148,7 +148,7 @@ export class SelfAPI extends TestAPI {
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
151
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
151
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
152
152
  </div>
153
153
  <script src="../../../prettify.js"></script>
154
154
  <script>
@@ -106,7 +106,7 @@ export class StatusAPI extends TestAPI {
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
109
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -115,7 +115,7 @@ export class TenantAPI extends TestAPI {
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
- at Wed Dec 07 2022 13:25:30 GMT+0000 (Coordinated Universal Time)
118
+ at Thu Dec 08 2022 10:26:27 GMT+0000 (Coordinated Universal Time)
119
119
  </div>
120
120
  <script src="../../../prettify.js"></script>
121
121
  <script>