@budibase/server 1.0.46-alpha.4 → 1.0.46-alpha.8
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.
- package/builder/assets/{index.c21ee1fb.js → index.51efc215.js} +243 -243
- package/builder/assets/{index.243ca52c.css → index.dd9e386f.css} +1 -1
- package/builder/assets/{vendor.10e2ad1b.js → vendor.3bd2f661.js} +1 -1
- package/builder/index.html +3 -3
- package/coverage/clover.xml +1794 -1793
- package/coverage/coverage-final.json +136 -138
- package/coverage/lcov-report/api/controllers/analytics.js.html +6 -6
- package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
- package/coverage/lcov-report/api/controllers/application.js.html +209 -125
- package/coverage/lcov-report/api/controllers/auth.js.html +23 -11
- package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
- package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
- package/coverage/lcov-report/api/controllers/cloud.js.html +12 -12
- package/coverage/lcov-report/api/controllers/component.js.html +5 -5
- package/coverage/lcov-report/api/controllers/datasource.js.html +58 -22
- package/coverage/lcov-report/api/controllers/dev.js.html +19 -19
- package/coverage/lcov-report/api/controllers/index.html +38 -53
- package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
- package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
- package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
- package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
- package/coverage/lcov-report/api/controllers/query/index.html +15 -15
- package/coverage/lcov-report/api/controllers/query/index.js.html +61 -28
- package/coverage/lcov-report/api/controllers/query/validation.js.html +9 -9
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
- package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
- package/coverage/lcov-report/api/controllers/row/index.html +5 -5
- package/coverage/lcov-report/api/controllers/row/index.js.html +13 -13
- package/coverage/lcov-report/api/controllers/row/internal.js.html +26 -26
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +8 -8
- package/coverage/lcov-report/api/controllers/row/utils.js.html +17 -26
- package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
- package/coverage/lcov-report/api/controllers/script.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +14 -14
- package/coverage/lcov-report/api/controllers/table/internal.js.html +10 -10
- package/coverage/lcov-report/api/controllers/table/utils.js.html +26 -26
- package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
- package/coverage/lcov-report/api/controllers/user.js.html +30 -24
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
- package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
- package/coverage/lcov-report/api/controllers/webhook.js.html +15 -15
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +26 -26
- package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
- package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
- package/coverage/lcov-report/api/routes/application.js.html +9 -9
- package/coverage/lcov-report/api/routes/auth.js.html +6 -6
- package/coverage/lcov-report/api/routes/automation.js.html +14 -14
- package/coverage/lcov-report/api/routes/backup.js.html +8 -8
- package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
- package/coverage/lcov-report/api/routes/component.js.html +8 -8
- package/coverage/lcov-report/api/routes/datasource.js.html +13 -13
- package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
- package/coverage/lcov-report/api/routes/dev.js.html +13 -13
- package/coverage/lcov-report/api/routes/index.html +7 -22
- package/coverage/lcov-report/api/routes/index.js.html +31 -37
- package/coverage/lcov-report/api/routes/integration.js.html +8 -8
- package/coverage/lcov-report/api/routes/layout.js.html +8 -8
- package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
- package/coverage/lcov-report/api/routes/permission.js.html +12 -12
- package/coverage/lcov-report/api/routes/query.js.html +10 -10
- package/coverage/lcov-report/api/routes/role.js.html +12 -12
- package/coverage/lcov-report/api/routes/routing.js.html +8 -8
- package/coverage/lcov-report/api/routes/row.js.html +10 -10
- package/coverage/lcov-report/api/routes/screen.js.html +11 -11
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +13 -13
- package/coverage/lcov-report/api/routes/table.js.html +12 -12
- package/coverage/lcov-report/api/routes/templates.js.html +8 -8
- package/coverage/lcov-report/api/routes/user.js.html +8 -8
- package/coverage/lcov-report/api/routes/view.js.html +10 -10
- package/coverage/lcov-report/api/routes/webhook.js.html +11 -11
- package/coverage/lcov-report/automations/actions.js.html +24 -24
- package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
- package/coverage/lcov-report/automations/bullboard.js.html +16 -16
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +7 -7
- package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
- package/coverage/lcov-report/automations/steps/createRow.js.html +7 -7
- package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
- package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
- package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
- package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
- package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
- package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
- package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
- package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
- package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
- package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/triggers.js.html +18 -18
- package/coverage/lcov-report/automations/utils.js.html +32 -32
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +36 -24
- package/coverage/lcov-report/constants/layouts.js.html +5 -5
- package/coverage/lcov-report/constants/screens.js.html +4 -4
- package/coverage/lcov-report/db/client.js.html +18 -18
- package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +7 -7
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +18 -18
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +13 -13
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +73 -73
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +6 -6
- package/coverage/lcov-report/events/utils.js.html +3 -3
- package/coverage/lcov-report/index.html +62 -62
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
- package/coverage/lcov-report/middleware/authorized.js.html +171 -69
- package/coverage/lcov-report/middleware/builder.js.html +16 -16
- package/coverage/lcov-report/middleware/currentapp.js.html +46 -73
- package/coverage/lcov-report/middleware/index.html +24 -24
- package/coverage/lcov-report/middleware/joi-validator.js.html +6 -6
- package/coverage/lcov-report/middleware/resourceId.js.html +22 -22
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +17 -17
- package/coverage/lcov-report/middleware/utils.js.html +4 -4
- package/coverage/lcov-report/migrations/usageQuotas/index.html +1 -1
- package/coverage/lcov-report/migrations/usageQuotas/index.js.html +6 -6
- package/coverage/lcov-report/migrations/usageQuotas/syncApps.js.html +6 -6
- package/coverage/lcov-report/migrations/usageQuotas/syncRows.js.html +7 -7
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +15 -15
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +23 -8
- package/coverage/lcov-report/threads/utils.js.html +14 -14
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
- package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
- package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
- package/coverage/lcov-report/utilities/global.js.html +26 -26
- package/coverage/lcov-report/utilities/index.html +19 -19
- package/coverage/lcov-report/utilities/index.js.html +25 -25
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -9
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +17 -17
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +4 -4
- package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
- package/coverage/lcov-report/utilities/security.js.html +8 -8
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +8 -8
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +8 -8
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +5 -5
- package/coverage/lcov-report/utilities/workerRequests.js.html +39 -108
- package/coverage/lcov.info +2292 -2272
- package/dist/api/controllers/application.js +49 -20
- package/dist/api/controllers/auth.js +4 -0
- package/dist/api/controllers/datasource.js +11 -0
- package/dist/api/controllers/query/index.js +11 -3
- package/dist/api/controllers/row/utils.js +1 -2
- package/dist/api/controllers/static/index.js +9 -10
- package/dist/api/controllers/user.js +2 -0
- package/dist/api/routes/index.js +0 -2
- package/dist/constants/index.js +3 -0
- package/dist/definitions/datasource.js +1 -0
- package/dist/integrations/googlesheets.js +340 -0
- package/dist/integrations/index.js +3 -0
- package/dist/integrations/utils.js +6 -3
- package/dist/middleware/authorized.js +55 -30
- package/dist/middleware/currentapp.js +0 -9
- package/dist/package.json +8 -5
- package/dist/tests/utilities/TestConfiguration.js +10 -6
- package/dist/threads/query.js +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/workerRequests.js +0 -20
- package/nodemon.json +1 -1
- package/package.json +9 -6
- package/src/api/controllers/application.js +52 -24
- package/src/api/controllers/auth.js +4 -0
- package/src/api/controllers/datasource.js +12 -0
- package/src/api/controllers/query/index.js +14 -3
- package/src/api/controllers/row/utils.js +1 -4
- package/src/api/controllers/static/index.js +13 -10
- package/src/api/controllers/user.js +2 -0
- package/src/api/routes/index.js +0 -2
- package/src/api/routes/tests/application.spec.js +2 -2
- package/src/api/routes/tests/auth.spec.js +1 -2
- package/src/constants/index.js +4 -0
- package/src/definitions/datasource.ts +3 -0
- package/src/integrations/googlesheets.ts +353 -0
- package/src/integrations/index.ts +3 -0
- package/src/integrations/utils.ts +18 -5
- package/src/middleware/authorized.js +64 -30
- package/src/middleware/currentapp.js +0 -9
- package/src/middleware/tests/authorized.spec.js +6 -4
- package/src/migrations/tests/usageQuotas/syncRows.spec.js +1 -1
- package/src/tests/utilities/TestConfiguration.js +10 -6
- package/src/threads/query.js +5 -0
- package/src/utilities/workerRequests.js +0 -23
- package/coverage/lcov-report/api/controllers/hosting.js.html +0 -146
- package/coverage/lcov-report/api/routes/hosting.js.html +0 -119
- package/dist/api/controllers/hosting.js +0 -30
- package/dist/api/routes/hosting.js +0 -11
- package/src/api/controllers/hosting.js +0 -22
- package/src/api/routes/hosting.js +0 -13
- package/src/api/routes/tests/hosting.spec.js +0 -36
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">90.47% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>38/42</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">87.5% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>28/32</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">83.33% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>5/6</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">92.68% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>38/41</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -127,75 +127,143 @@
|
|
|
127
127
|
<a name='L68'></a><a href='#L68'>68</a>
|
|
128
128
|
<a name='L69'></a><a href='#L69'>69</a>
|
|
129
129
|
<a name='L70'></a><a href='#L70'>70</a>
|
|
130
|
-
<a name='L71'></a><a href='#L71'>71</a
|
|
130
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
131
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
132
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
133
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
134
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
135
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
136
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
137
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
138
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
139
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
140
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
141
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
142
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
143
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
144
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
145
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
146
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
147
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
154
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
155
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
159
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
160
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
161
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
162
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
163
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
164
|
+
<a name='L105'></a><a href='#L105'>105</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
131
165
|
<span class="cline-any cline-neutral"> </span>
|
|
132
166
|
<span class="cline-any cline-neutral"> </span>
|
|
133
167
|
<span class="cline-any cline-neutral"> </span>
|
|
134
|
-
<span class="cline-any cline-yes">
|
|
168
|
+
<span class="cline-any cline-yes">24x</span>
|
|
135
169
|
<span class="cline-any cline-neutral"> </span>
|
|
136
170
|
<span class="cline-any cline-neutral"> </span>
|
|
137
171
|
<span class="cline-any cline-neutral"> </span>
|
|
138
|
-
<span class="cline-any cline-yes">
|
|
139
|
-
<span class="cline-any cline-yes">
|
|
140
|
-
<span class="cline-any cline-yes">
|
|
172
|
+
<span class="cline-any cline-yes">24x</span>
|
|
173
|
+
<span class="cline-any cline-yes">24x</span>
|
|
174
|
+
<span class="cline-any cline-yes">24x</span>
|
|
175
|
+
<span class="cline-any cline-yes">24x</span>
|
|
141
176
|
<span class="cline-any cline-neutral"> </span>
|
|
142
177
|
<span class="cline-any cline-neutral"> </span>
|
|
143
|
-
<span class="cline-any cline-yes">
|
|
178
|
+
<span class="cline-any cline-yes">155x</span>
|
|
179
|
+
<span class="cline-any cline-neutral"> </span>
|
|
180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
181
|
+
<span class="cline-any cline-yes">24x</span>
|
|
182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
144
183
|
<span class="cline-any cline-neutral"> </span>
|
|
145
184
|
<span class="cline-any cline-neutral"> </span>
|
|
146
|
-
<span class="cline-any cline-yes">25x</span>
|
|
147
185
|
<span class="cline-any cline-neutral"> </span>
|
|
148
|
-
<span class="cline-any cline-yes">2463x</span>
|
|
149
186
|
<span class="cline-any cline-neutral"> </span>
|
|
150
187
|
<span class="cline-any cline-neutral"> </span>
|
|
151
|
-
<span class="cline-any cline-yes">164x</span>
|
|
152
|
-
<span class="cline-any cline-yes">1x</span>
|
|
153
188
|
<span class="cline-any cline-neutral"> </span>
|
|
189
|
+
<span class="cline-any cline-yes">24x</span>
|
|
154
190
|
<span class="cline-any cline-neutral"> </span>
|
|
155
|
-
<span class="cline-any cline-yes">
|
|
191
|
+
<span class="cline-any cline-yes">129x</span>
|
|
192
|
+
<span class="cline-any cline-yes">129x</span>
|
|
193
|
+
<span class="cline-any cline-yes">129x</span>
|
|
156
194
|
<span class="cline-any cline-yes">1x</span>
|
|
157
195
|
<span class="cline-any cline-neutral"> </span>
|
|
158
196
|
<span class="cline-any cline-neutral"> </span>
|
|
159
197
|
<span class="cline-any cline-neutral"> </span>
|
|
198
|
+
<span class="cline-any cline-yes">128x</span>
|
|
199
|
+
<span class="cline-any cline-yes">3x</span>
|
|
160
200
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
-
<span class="cline-any cline-yes">162x</span>
|
|
162
201
|
<span class="cline-any cline-neutral"> </span>
|
|
163
|
-
<span class="cline-any cline-yes">162x</span>
|
|
164
202
|
<span class="cline-any cline-neutral"> </span>
|
|
165
|
-
<span class="cline-any cline-yes">
|
|
166
|
-
<span class="cline-any cline-
|
|
167
|
-
<span class="cline-any cline-yes">162x</span>
|
|
168
|
-
<span class="cline-any cline-yes">126x</span>
|
|
169
|
-
<span class="cline-any cline-yes">36x</span>
|
|
170
|
-
<span class="cline-any cline-yes">29x</span>
|
|
203
|
+
<span class="cline-any cline-yes">24x</span>
|
|
204
|
+
<span class="cline-any cline-neutral"> </span>
|
|
171
205
|
<span class="cline-any cline-neutral"> </span>
|
|
172
206
|
<span class="cline-any cline-neutral"> </span>
|
|
173
207
|
<span class="cline-any cline-neutral"> </span>
|
|
174
|
-
<span class="cline-any cline-yes">7x</span>
|
|
175
|
-
<span class="cline-any cline-yes">7x</span>
|
|
176
208
|
<span class="cline-any cline-neutral"> </span>
|
|
177
209
|
<span class="cline-any cline-neutral"> </span>
|
|
178
|
-
<span class="cline-any cline-yes">7x</span>
|
|
179
|
-
<span class="cline-any cline-yes">7x</span>
|
|
180
|
-
<span class="cline-any cline-yes">7x</span>
|
|
181
210
|
<span class="cline-any cline-yes">3x</span>
|
|
211
|
+
<span class="cline-any cline-yes">3x</span>
|
|
212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
213
|
<span class="cline-any cline-neutral"> </span>
|
|
214
|
+
<span class="cline-any cline-yes">3x</span>
|
|
183
215
|
<span class="cline-any cline-neutral"> </span>
|
|
184
|
-
<span class="cline-any cline-yes">
|
|
216
|
+
<span class="cline-any cline-yes">3x</span>
|
|
217
|
+
<span class="cline-any cline-neutral"> </span>
|
|
218
|
+
<span class="cline-any cline-no"> </span>
|
|
219
|
+
<span class="cline-any cline-no"> </span>
|
|
220
|
+
<span class="cline-any cline-no"> </span>
|
|
221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-yes">3x</span>
|
|
224
|
+
<span class="cline-any cline-yes">3x</span>
|
|
225
|
+
<span class="cline-any cline-neutral"> </span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
228
|
+
<span class="cline-any cline-yes">24x</span>
|
|
229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
230
|
+
<span class="cline-any cline-yes">2338x</span>
|
|
231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
233
|
+
<span class="cline-any cline-yes">162x</span>
|
|
185
234
|
<span class="cline-any cline-yes">1x</span>
|
|
235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
237
|
+
<span class="cline-any cline-yes">161x</span>
|
|
186
238
|
<span class="cline-any cline-yes">1x</span>
|
|
187
239
|
<span class="cline-any cline-neutral"> </span>
|
|
240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
|
+
<span class="cline-any cline-yes">160x</span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-yes">160x</span>
|
|
247
|
+
<span class="cline-any cline-yes">160x</span>
|
|
248
|
+
<span class="cline-any cline-yes">55x</span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
252
|
+
<span class="cline-any cline-yes">160x</span>
|
|
253
|
+
<span class="cline-any cline-yes">160x</span>
|
|
188
254
|
<span class="cline-any cline-yes">1x</span>
|
|
189
|
-
<span class="cline-any cline-yes">6x</span>
|
|
190
|
-
<span class="cline-any cline-yes">6x</span>
|
|
191
255
|
<span class="cline-any cline-neutral"> </span>
|
|
192
256
|
<span class="cline-any cline-neutral"> </span>
|
|
193
257
|
<span class="cline-any cline-neutral"> </span>
|
|
194
|
-
<span class="cline-any cline-yes">
|
|
195
|
-
<span class="cline-any cline-yes">
|
|
258
|
+
<span class="cline-any cline-yes">159x</span>
|
|
259
|
+
<span class="cline-any cline-yes">30x</span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
196
261
|
<span class="cline-any cline-neutral"> </span>
|
|
197
262
|
<span class="cline-any cline-neutral"> </span>
|
|
198
|
-
<span class="cline-any cline-yes">
|
|
263
|
+
<span class="cline-any cline-yes">129x</span>
|
|
264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-yes">129x</span>
|
|
199
267
|
<span class="cline-any cline-neutral"> </span>
|
|
200
268
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
201
269
|
getUserRoleHierarchy,
|
|
@@ -208,11 +276,59 @@ const {
|
|
|
208
276
|
} = require("@budibase/backend-core/permissions")
|
|
209
277
|
const builderMiddleware = require("./builder")
|
|
210
278
|
const { isWebhookEndpoint } = require("./utils")
|
|
279
|
+
const { buildCsrfMiddleware } = require("@budibase/backend-core/auth")
|
|
211
280
|
|
|
212
281
|
function hasResource(ctx) {
|
|
213
282
|
return ctx.resourceId != null
|
|
214
283
|
}
|
|
215
284
|
|
|
285
|
+
const csrf = buildCsrfMiddleware()
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Apply authorization to the requested resource:
|
|
289
|
+
* - If this is a builder resource the user must be a builder.
|
|
290
|
+
* - Builders can access all resources.
|
|
291
|
+
* - Otherwise the user must have the required role.
|
|
292
|
+
*/
|
|
293
|
+
const checkAuthorized = async (ctx, resourceRoles, permType, permLevel) => {
|
|
294
|
+
// check if this is a builder api and the user is not a builder
|
|
295
|
+
const isBuilder = ctx.user && ctx.user.builder && ctx.user.builder.global
|
|
296
|
+
const isBuilderApi = permType === PermissionTypes.BUILDER
|
|
297
|
+
if (isBuilderApi && !isBuilder) {
|
|
298
|
+
return ctx.throw(403, "Not Authorized")
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// check for resource authorization
|
|
302
|
+
if (!isBuilder) {
|
|
303
|
+
await checkAuthorizedResource(ctx, resourceRoles, permType, permLevel)
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
const checkAuthorizedResource = async (
|
|
308
|
+
ctx,
|
|
309
|
+
resourceRoles,
|
|
310
|
+
permType,
|
|
311
|
+
permLevel
|
|
312
|
+
) => {
|
|
313
|
+
// get the user's roles
|
|
314
|
+
const roleId = ctx.roleId || BUILTIN_ROLE_IDS.PUBLIC
|
|
315
|
+
const userRoles = await getUserRoleHierarchy(ctx.appId, roleId, {
|
|
316
|
+
idOnly: false,
|
|
317
|
+
})
|
|
318
|
+
const permError = "User does not have permission"
|
|
319
|
+
// check if the user has the required role
|
|
320
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (resourceRoles.length > 0) {
|
|
321
|
+
// deny access if the user doesn't have the required resource role
|
|
322
|
+
const found = <span class="cstat-no" title="statement not covered" >userRoles.find(<span class="fstat-no" title="function not covered" >ro</span>le => <span class="cstat-no" title="statement not covered" >resourceRoles.indexOf(role._id) !== -1)</span></span>
|
|
323
|
+
<span class="cstat-no" title="statement not covered" > if (!found) {</span>
|
|
324
|
+
<span class="cstat-no" title="statement not covered" > ctx.throw(403, permError)</span>
|
|
325
|
+
}
|
|
326
|
+
// fallback to the base permissions when no resource roles are found
|
|
327
|
+
} else if (!doesHaveBasePermission(permType, permLevel, userRoles)) {
|
|
328
|
+
ctx.throw(403, permError)
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
216
332
|
module.exports =
|
|
217
333
|
(permType, permLevel = null) =>
|
|
218
334
|
async (ctx, next) => {
|
|
@@ -230,42 +346,28 @@ module.exports =
|
|
|
230
346
|
// to find API endpoints which are builder focused
|
|
231
347
|
await builderMiddleware(ctx, permType)
|
|
232
348
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
if (isBuilder) {
|
|
238
|
-
return next()
|
|
239
|
-
} else if (isBuilderApi && !isBuilder) {
|
|
240
|
-
return ctx.throw(403, "Not Authorized")
|
|
349
|
+
// get the resource roles
|
|
350
|
+
let resourceRoles = []
|
|
351
|
+
if (ctx.appId && hasResource(ctx)) {
|
|
352
|
+
resourceRoles = await getRequiredResourceRole(ctx.appId, permLevel, ctx)
|
|
241
353
|
}
|
|
242
354
|
|
|
243
|
-
//
|
|
244
|
-
const
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
})
|
|
248
|
-
const permError = "User does not have permission"
|
|
249
|
-
let possibleRoleIds = []
|
|
250
|
-
if (hasResource(ctx)) {
|
|
251
|
-
possibleRoleIds = await getRequiredResourceRole(ctx.appId, permLevel, ctx)
|
|
252
|
-
}
|
|
253
|
-
// check if we found a role, if not fallback to base permissions
|
|
254
|
-
if (possibleRoleIds.length > 0) {
|
|
255
|
-
const found = hierarchy.find(
|
|
256
|
-
role => possibleRoleIds.indexOf(role._id) !== -1
|
|
257
|
-
)
|
|
258
|
-
return found ? next() : <span class="branch-1 cbranch-no" title="branch not covered" >ctx.throw(403, permError)</span>
|
|
259
|
-
} else if (!doesHaveBasePermission(permType, permLevel, hierarchy)) {
|
|
260
|
-
ctx.throw(403, permError)
|
|
355
|
+
// if the resource is public, proceed
|
|
356
|
+
const isPublicResource = resourceRoles.includes(BUILTIN_ROLE_IDS.PUBLIC)
|
|
357
|
+
if (isPublicResource) {
|
|
358
|
+
return next()
|
|
261
359
|
}
|
|
262
360
|
|
|
263
|
-
//
|
|
264
|
-
if (!
|
|
265
|
-
ctx.throw(403, "Session not authenticated")
|
|
361
|
+
// check authenticated
|
|
362
|
+
if (!ctx.isAuthenticated) {
|
|
363
|
+
return ctx.throw(403, "Session not authenticated")
|
|
266
364
|
}
|
|
267
365
|
|
|
268
|
-
|
|
366
|
+
// check authorized
|
|
367
|
+
await checkAuthorized(ctx, resourceRoles, permType, permLevel)
|
|
368
|
+
|
|
369
|
+
// csrf protection
|
|
370
|
+
return csrf(ctx, next)
|
|
269
371
|
}
|
|
270
372
|
</pre></td></tr></table></pre>
|
|
271
373
|
|
|
@@ -274,7 +376,7 @@ module.exports =
|
|
|
274
376
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
275
377
|
Code coverage generated by
|
|
276
378
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
277
|
-
at
|
|
379
|
+
at Sun Jan 30 2022 21:42:59 GMT+0000 (Coordinated Universal Time)
|
|
278
380
|
</div>
|
|
279
381
|
</div>
|
|
280
382
|
<script src="../prettify.js"></script>
|
|
@@ -135,19 +135,19 @@
|
|
|
135
135
|
<a name='L76'></a><a href='#L76'>76</a>
|
|
136
136
|
<a name='L77'></a><a href='#L77'>77</a>
|
|
137
137
|
<a name='L78'></a><a href='#L78'>78</a>
|
|
138
|
-
<a name='L79'></a><a href='#L79'>79</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
138
|
+
<a name='L79'></a><a href='#L79'>79</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
|
|
139
139
|
<span class="cline-any cline-neutral"> </span>
|
|
140
140
|
<span class="cline-any cline-neutral"> </span>
|
|
141
141
|
<span class="cline-any cline-neutral"> </span>
|
|
142
142
|
<span class="cline-any cline-neutral"> </span>
|
|
143
143
|
<span class="cline-any cline-neutral"> </span>
|
|
144
|
-
<span class="cline-any cline-yes">
|
|
145
|
-
<span class="cline-any cline-yes">
|
|
146
|
-
<span class="cline-any cline-yes">
|
|
147
|
-
<span class="cline-any cline-yes">
|
|
148
|
-
<span class="cline-any cline-yes">
|
|
144
|
+
<span class="cline-any cline-yes">24x</span>
|
|
145
|
+
<span class="cline-any cline-yes">24x</span>
|
|
146
|
+
<span class="cline-any cline-yes">24x</span>
|
|
147
|
+
<span class="cline-any cline-yes">24x</span>
|
|
148
|
+
<span class="cline-any cline-yes">24x</span>
|
|
149
149
|
<span class="cline-any cline-neutral"> </span>
|
|
150
|
-
<span class="cline-any cline-yes">
|
|
150
|
+
<span class="cline-any cline-yes">24x</span>
|
|
151
151
|
<span class="cline-any cline-neutral"> </span>
|
|
152
152
|
<span class="cline-any cline-neutral"> </span>
|
|
153
153
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -195,18 +195,18 @@
|
|
|
195
195
|
<span class="cline-any cline-yes">1x</span>
|
|
196
196
|
<span class="cline-any cline-neutral"> </span>
|
|
197
197
|
<span class="cline-any cline-neutral"> </span>
|
|
198
|
-
<span class="cline-any cline-yes">
|
|
199
|
-
<span class="cline-any cline-yes">
|
|
198
|
+
<span class="cline-any cline-yes">24x</span>
|
|
199
|
+
<span class="cline-any cline-yes">160x</span>
|
|
200
200
|
<span class="cline-any cline-neutral"> </span>
|
|
201
|
-
<span class="cline-any cline-yes">
|
|
201
|
+
<span class="cline-any cline-yes">160x</span>
|
|
202
202
|
<span class="cline-any cline-yes">5x</span>
|
|
203
203
|
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-yes">
|
|
205
|
-
<span class="cline-any cline-yes">
|
|
206
|
-
<span class="cline-any cline-yes">
|
|
204
|
+
<span class="cline-any cline-yes">155x</span>
|
|
205
|
+
<span class="cline-any cline-yes">155x</span>
|
|
206
|
+
<span class="cline-any cline-yes">155x</span>
|
|
207
207
|
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-yes">
|
|
209
|
-
<span class="cline-any cline-yes">
|
|
208
|
+
<span class="cline-any cline-yes">155x</span>
|
|
209
|
+
<span class="cline-any cline-yes">154x</span>
|
|
210
210
|
<span class="cline-any cline-neutral"> </span>
|
|
211
211
|
<span class="cline-any cline-neutral"> </span>
|
|
212
212
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -298,7 +298,7 @@ module.exports = async (ctx, permType) => {
|
|
|
298
298
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
299
299
|
Code coverage generated by
|
|
300
300
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
301
|
-
at
|
|
301
|
+
at Sun Jan 30 2022 21:42:59 GMT+0000 (Coordinated Universal Time)
|
|
302
302
|
</div>
|
|
303
303
|
</div>
|
|
304
304
|
<script src="../prettify.js"></script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">83.
|
|
26
|
+
<span class="strong">83.01% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>44/53</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">83.
|
|
47
|
+
<span class="strong">83.01% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>44/53</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -168,98 +168,80 @@
|
|
|
168
168
|
<a name='L109'></a><a href='#L109'>109</a>
|
|
169
169
|
<a name='L110'></a><a href='#L110'>110</a>
|
|
170
170
|
<a name='L111'></a><a href='#L111'>111</a>
|
|
171
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
172
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
173
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
174
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
175
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
176
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
177
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
178
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
179
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
180
|
-
<a name='L121'></a><a href='#L121'>121</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
171
|
+
<a name='L112'></a><a href='#L112'>112</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
181
172
|
<span class="cline-any cline-neutral"> </span>
|
|
182
173
|
<span class="cline-any cline-neutral"> </span>
|
|
183
174
|
<span class="cline-any cline-neutral"> </span>
|
|
184
175
|
<span class="cline-any cline-neutral"> </span>
|
|
185
|
-
<span class="cline-any cline-yes">
|
|
186
|
-
<span class="cline-any cline-yes">
|
|
187
|
-
<span class="cline-any cline-yes">
|
|
188
|
-
<span class="cline-any cline-yes">
|
|
189
|
-
<span class="cline-any cline-yes">
|
|
190
|
-
<span class="cline-any cline-yes">
|
|
191
|
-
<span class="cline-any cline-yes">
|
|
192
|
-
<span class="cline-any cline-yes">
|
|
193
|
-
<span class="cline-any cline-yes">
|
|
194
|
-
<span class="cline-any cline-yes">
|
|
195
|
-
<span class="cline-any cline-yes">
|
|
176
|
+
<span class="cline-any cline-yes">28x</span>
|
|
177
|
+
<span class="cline-any cline-yes">28x</span>
|
|
178
|
+
<span class="cline-any cline-yes">28x</span>
|
|
179
|
+
<span class="cline-any cline-yes">28x</span>
|
|
180
|
+
<span class="cline-any cline-yes">28x</span>
|
|
181
|
+
<span class="cline-any cline-yes">28x</span>
|
|
182
|
+
<span class="cline-any cline-yes">28x</span>
|
|
183
|
+
<span class="cline-any cline-yes">28x</span>
|
|
184
|
+
<span class="cline-any cline-yes">28x</span>
|
|
185
|
+
<span class="cline-any cline-yes">28x</span>
|
|
186
|
+
<span class="cline-any cline-yes">28x</span>
|
|
196
187
|
<span class="cline-any cline-neutral"> </span>
|
|
197
|
-
<span class="cline-any cline-yes">
|
|
188
|
+
<span class="cline-any cline-yes">28x</span>
|
|
198
189
|
<span class="cline-any cline-neutral"> </span>
|
|
199
|
-
<span class="cline-any cline-yes">
|
|
190
|
+
<span class="cline-any cline-yes">172x</span>
|
|
200
191
|
<span class="cline-any cline-neutral"> </span>
|
|
201
|
-
<span class="cline-any cline-yes">
|
|
202
|
-
<span class="cline-any cline-yes">
|
|
203
|
-
<span class="cline-any cline-yes">
|
|
192
|
+
<span class="cline-any cline-yes">172x</span>
|
|
193
|
+
<span class="cline-any cline-yes">172x</span>
|
|
194
|
+
<span class="cline-any cline-yes">172x</span>
|
|
204
195
|
<span class="cline-any cline-neutral"> </span>
|
|
205
196
|
<span class="cline-any cline-no"> </span>
|
|
206
197
|
<span class="cline-any cline-neutral"> </span>
|
|
207
|
-
<span class="cline-any cline-yes">
|
|
198
|
+
<span class="cline-any cline-yes">172x</span>
|
|
208
199
|
<span class="cline-any cline-yes">1x</span>
|
|
209
200
|
<span class="cline-any cline-neutral"> </span>
|
|
210
201
|
<span class="cline-any cline-neutral"> </span>
|
|
211
|
-
<span class="cline-any cline-yes">
|
|
212
|
-
<span class="cline-any cline-yes">
|
|
213
|
-
<span class="cline-any cline-yes">
|
|
214
|
-
<span class="cline-any cline-yes">
|
|
202
|
+
<span class="cline-any cline-yes">171x</span>
|
|
203
|
+
<span class="cline-any cline-yes">165x</span>
|
|
204
|
+
<span class="cline-any cline-yes">165x</span>
|
|
205
|
+
<span class="cline-any cline-yes">165x</span>
|
|
215
206
|
<span class="cline-any cline-no"> </span>
|
|
216
207
|
<span class="cline-any cline-no"> </span>
|
|
217
208
|
<span class="cline-any cline-neutral"> </span>
|
|
218
209
|
<span class="cline-any cline-neutral"> </span>
|
|
219
|
-
<span class="cline-any cline-yes">
|
|
210
|
+
<span class="cline-any cline-yes">165x</span>
|
|
220
211
|
<span class="cline-any cline-neutral"> </span>
|
|
221
212
|
<span class="cline-any cline-neutral"> </span>
|
|
222
213
|
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-yes">
|
|
214
|
+
<span class="cline-any cline-yes">171x</span>
|
|
224
215
|
<span class="cline-any cline-neutral"> </span>
|
|
225
216
|
<span class="cline-any cline-neutral"> </span>
|
|
226
217
|
<span class="cline-any cline-neutral"> </span>
|
|
227
218
|
<span class="cline-any cline-neutral"> </span>
|
|
228
219
|
<span class="cline-any cline-yes">2x</span>
|
|
229
|
-
<span class="cline-any cline-neutral"> </span>
|
|
230
220
|
<span class="cline-any cline-yes">2x</span>
|
|
231
221
|
<span class="cline-any cline-neutral"> </span>
|
|
232
222
|
<span class="cline-any cline-neutral"> </span>
|
|
233
223
|
<span class="cline-any cline-neutral"> </span>
|
|
224
|
+
<span class="cline-any cline-yes">169x</span>
|
|
225
|
+
<span class="cline-any cline-yes">169x</span>
|
|
234
226
|
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-yes">32x</span>
|
|
228
|
+
<span class="cline-any cline-yes">137x</span>
|
|
235
229
|
<span class="cline-any cline-neutral"> </span>
|
|
230
|
+
<span class="cline-any cline-yes">137x</span>
|
|
231
|
+
<span class="cline-any cline-yes">137x</span>
|
|
236
232
|
<span class="cline-any cline-neutral"> </span>
|
|
233
|
+
<span class="cline-any cline-yes">137x</span>
|
|
237
234
|
<span class="cline-any cline-neutral"> </span>
|
|
238
|
-
<span class="cline-any cline-yes">2x</span>
|
|
239
|
-
<span class="cline-any cline-neutral"> </span>
|
|
240
|
-
<span class="cline-any cline-neutral"> </span>
|
|
241
|
-
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-yes">171x</span>
|
|
243
|
-
<span class="cline-any cline-yes">171x</span>
|
|
244
|
-
<span class="cline-any cline-neutral"> </span>
|
|
245
|
-
<span class="cline-any cline-yes">33x</span>
|
|
246
|
-
<span class="cline-any cline-yes">138x</span>
|
|
247
|
-
<span class="cline-any cline-neutral"> </span>
|
|
248
|
-
<span class="cline-any cline-yes">138x</span>
|
|
249
|
-
<span class="cline-any cline-yes">138x</span>
|
|
250
|
-
<span class="cline-any cline-neutral"> </span>
|
|
251
|
-
<span class="cline-any cline-yes">138x</span>
|
|
252
235
|
<span class="cline-any cline-neutral"> </span>
|
|
253
236
|
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-
|
|
255
|
-
<span class="cline-any cline-yes">171x</span>
|
|
237
|
+
<span class="cline-any cline-yes">169x</span>
|
|
256
238
|
<span class="cline-any cline-no"> </span>
|
|
257
239
|
<span class="cline-any cline-neutral"> </span>
|
|
258
240
|
<span class="cline-any cline-neutral"> </span>
|
|
259
|
-
<span class="cline-any cline-yes">
|
|
241
|
+
<span class="cline-any cline-yes">169x</span>
|
|
260
242
|
<span class="cline-any cline-neutral"> </span>
|
|
261
243
|
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-yes">
|
|
244
|
+
<span class="cline-any cline-yes">169x</span>
|
|
263
245
|
<span class="cline-any cline-neutral"> </span>
|
|
264
246
|
<span class="cline-any cline-neutral"> </span>
|
|
265
247
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -273,11 +255,11 @@
|
|
|
273
255
|
<span class="cline-any cline-no"> </span>
|
|
274
256
|
<span class="cline-any cline-neutral"> </span>
|
|
275
257
|
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-yes">
|
|
277
|
-
<span class="cline-any cline-yes">
|
|
278
|
-
<span class="cline-any cline-yes">
|
|
279
|
-
<span class="cline-any cline-yes">
|
|
280
|
-
<span class="cline-any cline-yes">
|
|
258
|
+
<span class="cline-any cline-yes">169x</span>
|
|
259
|
+
<span class="cline-any cline-yes">169x</span>
|
|
260
|
+
<span class="cline-any cline-yes">169x</span>
|
|
261
|
+
<span class="cline-any cline-yes">169x</span>
|
|
262
|
+
<span class="cline-any cline-yes">169x</span>
|
|
281
263
|
<span class="cline-any cline-neutral"> </span>
|
|
282
264
|
<span class="cline-any cline-neutral"> </span>
|
|
283
265
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -286,7 +268,7 @@
|
|
|
286
268
|
<span class="cline-any cline-neutral"> </span>
|
|
287
269
|
<span class="cline-any cline-neutral"> </span>
|
|
288
270
|
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-yes">
|
|
271
|
+
<span class="cline-any cline-yes">169x</span>
|
|
290
272
|
<span class="cline-any cline-neutral"> </span>
|
|
291
273
|
<span class="cline-any cline-neutral"> </span>
|
|
292
274
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -295,7 +277,7 @@
|
|
|
295
277
|
<span class="cline-any cline-yes">7x</span>
|
|
296
278
|
<span class="cline-any cline-neutral"> </span>
|
|
297
279
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">
|
|
280
|
+
<span class="cline-any cline-yes">169x</span>
|
|
299
281
|
<span class="cline-any cline-neutral"> </span>
|
|
300
282
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
301
283
|
getAppId,
|
|
@@ -346,15 +328,6 @@ module.exports = async (ctx, next) => {
|
|
|
346
328
|
(!ctx.user || !ctx.user.builder || !ctx.user.builder.global)
|
|
347
329
|
) {
|
|
348
330
|
clearCookie(ctx, Cookies.CurrentApp)
|
|
349
|
-
// have to set the return url on the server side as client side is not available
|
|
350
|
-
setCookie(ctx, ctx.url, Cookies.RETURN_URL, {
|
|
351
|
-
// don't sign so the browser can easily read
|
|
352
|
-
sign: false,
|
|
353
|
-
// use the request domain to match how ui handles the return url cookie.
|
|
354
|
-
// it's important we don't use the shared domain here as the builder
|
|
355
|
-
// can't delete from it without awareness of the domain.
|
|
356
|
-
requestDomain: true,
|
|
357
|
-
})
|
|
358
331
|
return ctx.redirect("/")
|
|
359
332
|
}
|
|
360
333
|
|
|
@@ -424,7 +397,7 @@ module.exports = async (ctx, next) => {
|
|
|
424
397
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
425
398
|
Code coverage generated by
|
|
426
399
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
427
|
-
at
|
|
400
|
+
at Sun Jan 30 2022 21:42:59 GMT+0000 (Coordinated Universal Time)
|
|
428
401
|
</div>
|
|
429
402
|
</div>
|
|
430
403
|
<script src="../prettify.js"></script>
|