@dosgato/api 0.0.2

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 (330) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/access/access.model.d.ts +2 -0
  4. package/dist/access/access.model.js +14 -0
  5. package/dist/access/access.model.js.map +1 -0
  6. package/dist/access/access.resolver.d.ts +15 -0
  7. package/dist/access/access.resolver.js +133 -0
  8. package/dist/access/access.resolver.js.map +1 -0
  9. package/dist/asset/asset.database.d.ts +12 -0
  10. package/dist/asset/asset.database.js +116 -0
  11. package/dist/asset/asset.database.js.map +1 -0
  12. package/dist/asset/asset.model.d.ts +81 -0
  13. package/dist/asset/asset.model.js +271 -0
  14. package/dist/asset/asset.model.js.map +1 -0
  15. package/dist/asset/asset.resolver.d.ts +32 -0
  16. package/dist/asset/asset.resolver.js +325 -0
  17. package/dist/asset/asset.resolver.js.map +1 -0
  18. package/dist/asset/asset.service.d.ts +35 -0
  19. package/dist/asset/asset.service.js +225 -0
  20. package/dist/asset/asset.service.js.map +1 -0
  21. package/dist/assetfolder/assetfolder.database.d.ts +7 -0
  22. package/dist/assetfolder/assetfolder.database.js +85 -0
  23. package/dist/assetfolder/assetfolder.database.js.map +1 -0
  24. package/dist/assetfolder/assetfolder.model.d.ts +56 -0
  25. package/dist/assetfolder/assetfolder.model.js +160 -0
  26. package/dist/assetfolder/assetfolder.model.js.map +1 -0
  27. package/dist/assetfolder/assetfolder.resolver.d.ts +25 -0
  28. package/dist/assetfolder/assetfolder.resolver.js +255 -0
  29. package/dist/assetfolder/assetfolder.resolver.js.map +1 -0
  30. package/dist/assetfolder/assetfolder.service.d.ts +39 -0
  31. package/dist/assetfolder/assetfolder.service.js +355 -0
  32. package/dist/assetfolder/assetfolder.service.js.map +1 -0
  33. package/dist/assetrule/assetrule.database.d.ts +5 -0
  34. package/dist/assetrule/assetrule.database.js +161 -0
  35. package/dist/assetrule/assetrule.database.js.map +1 -0
  36. package/dist/assetrule/assetrule.model.d.ts +71 -0
  37. package/dist/assetrule/assetrule.model.js +221 -0
  38. package/dist/assetrule/assetrule.model.js.map +1 -0
  39. package/dist/assetrule/assetrule.resolver.d.ts +12 -0
  40. package/dist/assetrule/assetrule.resolver.js +100 -0
  41. package/dist/assetrule/assetrule.resolver.js.map +1 -0
  42. package/dist/assetrule/assetrule.service.d.ts +26 -0
  43. package/dist/assetrule/assetrule.service.js +184 -0
  44. package/dist/assetrule/assetrule.service.js.map +1 -0
  45. package/dist/createdb.d.ts +2 -0
  46. package/dist/createdb.js +541 -0
  47. package/dist/createdb.js.map +1 -0
  48. package/dist/data/data.database.d.ts +7 -0
  49. package/dist/data/data.database.js +265 -0
  50. package/dist/data/data.database.js.map +1 -0
  51. package/dist/data/data.indexing.d.ts +2 -0
  52. package/dist/data/data.indexing.js +23 -0
  53. package/dist/data/data.indexing.js.map +1 -0
  54. package/dist/data/data.model.d.ts +69 -0
  55. package/dist/data/data.model.js +206 -0
  56. package/dist/data/data.model.js.map +1 -0
  57. package/dist/data/data.resolver.d.ts +36 -0
  58. package/dist/data/data.resolver.js +384 -0
  59. package/dist/data/data.resolver.js.map +1 -0
  60. package/dist/data/data.service.d.ts +41 -0
  61. package/dist/data/data.service.js +374 -0
  62. package/dist/data/data.service.js.map +1 -0
  63. package/dist/datafolder/datafolder.database.d.ts +7 -0
  64. package/dist/datafolder/datafolder.database.js +72 -0
  65. package/dist/datafolder/datafolder.database.js.map +1 -0
  66. package/dist/datafolder/datafolder.model.d.ts +48 -0
  67. package/dist/datafolder/datafolder.model.js +139 -0
  68. package/dist/datafolder/datafolder.model.js.map +1 -0
  69. package/dist/datafolder/datafolder.resolver.d.ts +24 -0
  70. package/dist/datafolder/datafolder.resolver.js +243 -0
  71. package/dist/datafolder/datafolder.resolver.js.map +1 -0
  72. package/dist/datafolder/datafolder.service.d.ts +32 -0
  73. package/dist/datafolder/datafolder.service.js +223 -0
  74. package/dist/datafolder/datafolder.service.js.map +1 -0
  75. package/dist/dataroot/dataroot.model.d.ts +19 -0
  76. package/dist/dataroot/dataroot.model.js +72 -0
  77. package/dist/dataroot/dataroot.model.js.map +1 -0
  78. package/dist/dataroot/dataroot.resolver.d.ts +11 -0
  79. package/dist/dataroot/dataroot.resolver.js +87 -0
  80. package/dist/dataroot/dataroot.resolver.js.map +1 -0
  81. package/dist/dataroot/dataroot.service.d.ts +12 -0
  82. package/dist/dataroot/dataroot.service.js +62 -0
  83. package/dist/dataroot/dataroot.service.js.map +1 -0
  84. package/dist/datarule/datarule.database.d.ts +5 -0
  85. package/dist/datarule/datarule.database.js +144 -0
  86. package/dist/datarule/datarule.database.js.map +1 -0
  87. package/dist/datarule/datarule.model.d.ts +55 -0
  88. package/dist/datarule/datarule.model.js +200 -0
  89. package/dist/datarule/datarule.model.js.map +1 -0
  90. package/dist/datarule/datarule.resolver.d.ts +13 -0
  91. package/dist/datarule/datarule.resolver.js +114 -0
  92. package/dist/datarule/datarule.resolver.js.map +1 -0
  93. package/dist/datarule/datarule.service.d.ts +27 -0
  94. package/dist/datarule/datarule.service.js +191 -0
  95. package/dist/datarule/datarule.service.js.map +1 -0
  96. package/dist/fixtures.d.ts +1 -0
  97. package/dist/fixtures.js +697 -0
  98. package/dist/fixtures.js.map +1 -0
  99. package/dist/fixturetemplates.d.ts +110 -0
  100. package/dist/fixturetemplates.js +178 -0
  101. package/dist/fixturetemplates.js.map +1 -0
  102. package/dist/globalrule/globalrule.database.d.ts +5 -0
  103. package/dist/globalrule/globalrule.database.js +65 -0
  104. package/dist/globalrule/globalrule.database.js.map +1 -0
  105. package/dist/globalrule/globalrule.model.d.ts +34 -0
  106. package/dist/globalrule/globalrule.model.js +120 -0
  107. package/dist/globalrule/globalrule.model.js.map +1 -0
  108. package/dist/globalrule/globalrule.resolver.d.ts +11 -0
  109. package/dist/globalrule/globalrule.resolver.js +85 -0
  110. package/dist/globalrule/globalrule.resolver.js.map +1 -0
  111. package/dist/globalrule/globalrule.service.d.ts +18 -0
  112. package/dist/globalrule/globalrule.service.js +111 -0
  113. package/dist/globalrule/globalrule.service.js.map +1 -0
  114. package/dist/group/group.database.d.ts +41 -0
  115. package/dist/group/group.database.js +190 -0
  116. package/dist/group/group.database.js.map +1 -0
  117. package/dist/group/group.model.d.ts +19 -0
  118. package/dist/group/group.model.js +70 -0
  119. package/dist/group/group.model.js.map +1 -0
  120. package/dist/group/group.resolver.d.ts +27 -0
  121. package/dist/group/group.resolver.js +275 -0
  122. package/dist/group/group.resolver.js.map +1 -0
  123. package/dist/group/group.service.d.ts +46 -0
  124. package/dist/group/group.service.js +384 -0
  125. package/dist/group/group.service.js.map +1 -0
  126. package/dist/index.d.ts +18 -0
  127. package/dist/index.js +109 -0
  128. package/dist/index.js.map +1 -0
  129. package/dist/internal.d.ts +88 -0
  130. package/dist/internal.js +89 -0
  131. package/dist/internal.js.map +1 -0
  132. package/dist/migrations.d.ts +2 -0
  133. package/dist/migrations.js +41 -0
  134. package/dist/migrations.js.map +1 -0
  135. package/dist/organization/organization.database.d.ts +2 -0
  136. package/dist/organization/organization.database.js +16 -0
  137. package/dist/organization/organization.database.js.map +1 -0
  138. package/dist/organization/organization.model.d.ts +5 -0
  139. package/dist/organization/organization.model.js +35 -0
  140. package/dist/organization/organization.model.js.map +1 -0
  141. package/dist/organization/organization.resolver.d.ts +6 -0
  142. package/dist/organization/organization.resolver.js +43 -0
  143. package/dist/organization/organization.resolver.js.map +1 -0
  144. package/dist/organization/organization.service.d.ts +12 -0
  145. package/dist/organization/organization.service.js +35 -0
  146. package/dist/organization/organization.service.js.map +1 -0
  147. package/dist/page/page.database.d.ts +10 -0
  148. package/dist/page/page.database.js +269 -0
  149. package/dist/page/page.database.js.map +1 -0
  150. package/dist/page/page.indexing.d.ts +3 -0
  151. package/dist/page/page.indexing.js +26 -0
  152. package/dist/page/page.indexing.js.map +1 -0
  153. package/dist/page/page.migrations.d.ts +13 -0
  154. package/dist/page/page.migrations.js +55 -0
  155. package/dist/page/page.migrations.js.map +1 -0
  156. package/dist/page/page.model.d.ts +88 -0
  157. package/dist/page/page.model.js +272 -0
  158. package/dist/page/page.model.js.map +1 -0
  159. package/dist/page/page.resolver.d.ts +48 -0
  160. package/dist/page/page.resolver.js +542 -0
  161. package/dist/page/page.resolver.js.map +1 -0
  162. package/dist/page/page.service.d.ts +59 -0
  163. package/dist/page/page.service.js +399 -0
  164. package/dist/page/page.service.js.map +1 -0
  165. package/dist/page/page.util.d.ts +3 -0
  166. package/dist/page/page.util.js +16 -0
  167. package/dist/page/page.util.js.map +1 -0
  168. package/dist/page/page.validation.d.ts +2 -0
  169. package/dist/page/page.validation.js +21 -0
  170. package/dist/page/page.validation.js.map +1 -0
  171. package/dist/pagerule/pagerule.database.d.ts +5 -0
  172. package/dist/pagerule/pagerule.database.js +212 -0
  173. package/dist/pagerule/pagerule.database.js.map +1 -0
  174. package/dist/pagerule/pagerule.model.d.ts +71 -0
  175. package/dist/pagerule/pagerule.model.js +272 -0
  176. package/dist/pagerule/pagerule.model.js.map +1 -0
  177. package/dist/pagerule/pagerule.resolver.d.ts +13 -0
  178. package/dist/pagerule/pagerule.resolver.js +114 -0
  179. package/dist/pagerule/pagerule.resolver.js.map +1 -0
  180. package/dist/pagerule/pagerule.service.d.ts +23 -0
  181. package/dist/pagerule/pagerule.service.js +180 -0
  182. package/dist/pagerule/pagerule.service.js.map +1 -0
  183. package/dist/pagetree/pagetree.database.d.ts +13 -0
  184. package/dist/pagetree/pagetree.database.js +84 -0
  185. package/dist/pagetree/pagetree.database.js.map +1 -0
  186. package/dist/pagetree/pagetree.model.d.ts +43 -0
  187. package/dist/pagetree/pagetree.model.js +146 -0
  188. package/dist/pagetree/pagetree.model.js.map +1 -0
  189. package/dist/pagetree/pagetree.resolver.d.ts +23 -0
  190. package/dist/pagetree/pagetree.resolver.js +238 -0
  191. package/dist/pagetree/pagetree.resolver.js.map +1 -0
  192. package/dist/pagetree/pagetree.service.d.ts +25 -0
  193. package/dist/pagetree/pagetree.service.js +221 -0
  194. package/dist/pagetree/pagetree.service.js.map +1 -0
  195. package/dist/role/role.database.d.ts +17 -0
  196. package/dist/role/role.database.js +74 -0
  197. package/dist/role/role.database.js.map +1 -0
  198. package/dist/role/role.model.d.ts +26 -0
  199. package/dist/role/role.model.js +84 -0
  200. package/dist/role/role.model.js.map +1 -0
  201. package/dist/role/role.resolver.d.ts +27 -0
  202. package/dist/role/role.resolver.js +294 -0
  203. package/dist/role/role.resolver.js.map +1 -0
  204. package/dist/role/role.service.d.ts +33 -0
  205. package/dist/role/role.service.js +265 -0
  206. package/dist/role/role.service.js.map +1 -0
  207. package/dist/run.d.ts +1 -0
  208. package/dist/run.js +29 -0
  209. package/dist/run.js.map +1 -0
  210. package/dist/scalars/datetime.d.ts +2 -0
  211. package/dist/scalars/datetime.js +19 -0
  212. package/dist/scalars/datetime.js.map +1 -0
  213. package/dist/scalars/index.d.ts +3 -0
  214. package/dist/scalars/index.js +4 -0
  215. package/dist/scalars/index.js.map +1 -0
  216. package/dist/scalars/jsondata.d.ts +2 -0
  217. package/dist/scalars/jsondata.js +15 -0
  218. package/dist/scalars/jsondata.js.map +1 -0
  219. package/dist/scalars/urlsafestring.d.ts +4 -0
  220. package/dist/scalars/urlsafestring.js +28 -0
  221. package/dist/scalars/urlsafestring.js.map +1 -0
  222. package/dist/site/site.database.d.ts +15 -0
  223. package/dist/site/site.database.js +164 -0
  224. package/dist/site/site.database.js.map +1 -0
  225. package/dist/site/site.model.d.ts +62 -0
  226. package/dist/site/site.model.js +197 -0
  227. package/dist/site/site.model.js.map +1 -0
  228. package/dist/site/site.resolver.d.ts +30 -0
  229. package/dist/site/site.resolver.js +326 -0
  230. package/dist/site/site.resolver.js.map +1 -0
  231. package/dist/site/site.service.d.ts +35 -0
  232. package/dist/site/site.service.js +199 -0
  233. package/dist/site/site.service.js.map +1 -0
  234. package/dist/siterule/siterule.database.d.ts +5 -0
  235. package/dist/siterule/siterule.database.js +139 -0
  236. package/dist/siterule/siterule.database.js.map +1 -0
  237. package/dist/siterule/siterule.model.d.ts +53 -0
  238. package/dist/siterule/siterule.model.js +203 -0
  239. package/dist/siterule/siterule.model.js.map +1 -0
  240. package/dist/siterule/siterule.resolver.d.ts +12 -0
  241. package/dist/siterule/siterule.resolver.js +100 -0
  242. package/dist/siterule/siterule.resolver.js.map +1 -0
  243. package/dist/siterule/siterule.service.d.ts +23 -0
  244. package/dist/siterule/siterule.service.js +148 -0
  245. package/dist/siterule/siterule.service.js.map +1 -0
  246. package/dist/template/template.database.d.ts +15 -0
  247. package/dist/template/template.database.js +61 -0
  248. package/dist/template/template.database.js.map +1 -0
  249. package/dist/template/template.model.d.ts +32 -0
  250. package/dist/template/template.model.js +124 -0
  251. package/dist/template/template.model.js.map +1 -0
  252. package/dist/template/template.resolver.d.ts +22 -0
  253. package/dist/template/template.resolver.js +216 -0
  254. package/dist/template/template.resolver.js.map +1 -0
  255. package/dist/template/template.service.d.ts +27 -0
  256. package/dist/template/template.service.js +192 -0
  257. package/dist/template/template.service.js.map +1 -0
  258. package/dist/templaterule/templaterule.database.d.ts +5 -0
  259. package/dist/templaterule/templaterule.database.js +80 -0
  260. package/dist/templaterule/templaterule.database.js.map +1 -0
  261. package/dist/templaterule/templaterule.model.d.ts +38 -0
  262. package/dist/templaterule/templaterule.model.js +136 -0
  263. package/dist/templaterule/templaterule.model.js.map +1 -0
  264. package/dist/templaterule/templaterule.resolver.d.ts +12 -0
  265. package/dist/templaterule/templaterule.resolver.js +100 -0
  266. package/dist/templaterule/templaterule.resolver.js.map +1 -0
  267. package/dist/templaterule/templaterule.service.d.ts +19 -0
  268. package/dist/templaterule/templaterule.service.js +123 -0
  269. package/dist/templaterule/templaterule.service.js.map +1 -0
  270. package/dist/user/user.database.d.ts +22 -0
  271. package/dist/user/user.database.js +116 -0
  272. package/dist/user/user.database.js.map +1 -0
  273. package/dist/user/user.model.d.ts +42 -0
  274. package/dist/user/user.model.js +122 -0
  275. package/dist/user/user.model.js.map +1 -0
  276. package/dist/user/user.resolver.d.ts +16 -0
  277. package/dist/user/user.resolver.js +140 -0
  278. package/dist/user/user.resolver.js.map +1 -0
  279. package/dist/user/user.service.d.ts +29 -0
  280. package/dist/user/user.service.js +195 -0
  281. package/dist/user/user.service.js.map +1 -0
  282. package/dist/util/authservice.d.ts +28 -0
  283. package/dist/util/authservice.js +131 -0
  284. package/dist/util/authservice.js.map +1 -0
  285. package/dist/util/dates.d.ts +2 -0
  286. package/dist/util/dates.js +4 -0
  287. package/dist/util/dates.js.map +1 -0
  288. package/dist/util/filehandler.d.ts +15 -0
  289. package/dist/util/filehandler.js +48 -0
  290. package/dist/util/filehandler.js.map +1 -0
  291. package/dist/util/index.d.ts +13 -0
  292. package/dist/util/index.js +26 -0
  293. package/dist/util/index.js.map +1 -0
  294. package/dist/util/indexing.d.ts +12 -0
  295. package/dist/util/indexing.js +74 -0
  296. package/dist/util/indexing.js.map +1 -0
  297. package/dist/util/migrations.d.ts +15 -0
  298. package/dist/util/migrations.js +2 -0
  299. package/dist/util/migrations.js.map +1 -0
  300. package/dist/util/mutationlogger.d.ts +1 -0
  301. package/dist/util/mutationlogger.js +9 -0
  302. package/dist/util/mutationlogger.js.map +1 -0
  303. package/dist/util/registry.d.ts +25 -0
  304. package/dist/util/registry.js +66 -0
  305. package/dist/util/registry.js.map +1 -0
  306. package/dist/util/rules.d.ts +6 -0
  307. package/dist/util/rules.js +31 -0
  308. package/dist/util/rules.js.map +1 -0
  309. package/dist/util/sharedtypes.d.ts +3 -0
  310. package/dist/util/sharedtypes.js +2 -0
  311. package/dist/util/sharedtypes.js.map +1 -0
  312. package/dist/util/stopwords.d.ts +1 -0
  313. package/dist/util/stopwords.js +152 -0
  314. package/dist/util/stopwords.js.map +1 -0
  315. package/dist/version/version.model.d.ts +11 -0
  316. package/dist/version/version.model.js +46 -0
  317. package/dist/version/version.model.js.map +1 -0
  318. package/dist/version/version.resolver.d.ts +6 -0
  319. package/dist/version/version.resolver.js +45 -0
  320. package/dist/version/version.resolver.js.map +1 -0
  321. package/dist/versionedservice/service.d.ts +148 -0
  322. package/dist/versionedservice/service.js +547 -0
  323. package/dist/versionedservice/service.js.map +1 -0
  324. package/dist/versionedservice/types.d.ts +87 -0
  325. package/dist/versionedservice/types.js +11 -0
  326. package/dist/versionedservice/types.js.map +1 -0
  327. package/package.json +50 -0
  328. package/readme/DosGato.mwb +0 -0
  329. package/readme/DosGato.mwb.bak +0 -0
  330. package/readme/upgradeflow2.png +0 -0
@@ -0,0 +1,26 @@
1
+ import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server';
2
+ import { Asset, AssetRule, AssetRuleFilter, AssetFolder, CreateAssetRuleInput, DosGatoService, UpdateAssetRuleInput } from '../internal.js';
3
+ export declare class AssetRuleServiceInternal extends BaseService {
4
+ findById(ruleId: string): Promise<AssetRule | undefined>;
5
+ findByRoleId(roleId: string, filter?: AssetRuleFilter): Promise<AssetRule[]>;
6
+ findBySiteId(siteId?: string): Promise<AssetRule[]>;
7
+ findByAsset(asset: Asset): Promise<AssetRule[]>;
8
+ findByAssetFolder(folder: AssetFolder): Promise<AssetRule[]>;
9
+ }
10
+ export declare class AssetRuleService extends DosGatoService<AssetRule> {
11
+ raw: AssetRuleServiceInternal;
12
+ findById(ruleId: string): Promise<AssetRule | undefined>;
13
+ findByRoleId(roleId: string, filter?: AssetRuleFilter): Promise<AssetRule[]>;
14
+ findBySiteId(siteId?: string): Promise<AssetRule[]>;
15
+ findByAsset(asset: Asset): Promise<AssetRule[]>;
16
+ findByAssetFolder(folder: AssetFolder): Promise<AssetRule[]>;
17
+ create(args: CreateAssetRuleInput): Promise<ValidatedResponse>;
18
+ update(args: UpdateAssetRuleInput): Promise<ValidatedResponse>;
19
+ delete(ruleId: string): Promise<ValidatedResponse>;
20
+ applies(rule: AssetRule, asset: Asset): Promise<boolean>;
21
+ appliesToFolder(rule: AssetRule, folder: AssetFolder): Promise<boolean>;
22
+ asOrMorePowerful(ruleA: AssetRule, ruleB: AssetRule): boolean;
23
+ tooPowerful(rule: AssetRule): Promise<boolean>;
24
+ mayView(rule: AssetRule): Promise<boolean>;
25
+ mayWrite(rule: AssetRule): Promise<boolean>;
26
+ }
@@ -0,0 +1,184 @@
1
+ import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server';
2
+ import { OneToManyLoader, PrimaryKeyLoader } from 'dataloader-factory';
3
+ import { Cache, filterAsync } from 'txstate-utils';
4
+ import { AssetRule, AssetRuleResponse, comparePathsWithMode, createAssetRule, DosGatoService, getAssetRules, RulePathMode, RoleService, tooPowerfulHelper, updateAssetRule, deleteAssetRule, AssetServiceInternal, AssetFolderServiceInternal, RoleServiceInternal } from '../internal.js';
5
+ const assetRulesByIdLoader = new PrimaryKeyLoader({
6
+ fetch: async (ids) => {
7
+ return await getAssetRules({ ids });
8
+ }
9
+ });
10
+ const assetRulesByRoleLoader = new OneToManyLoader({
11
+ fetch: async (roleIds, filter) => {
12
+ return await getAssetRules({ ...filter, roleIds });
13
+ },
14
+ keysFromFilter: (filter) => filter?.roleIds ?? [],
15
+ extractKey: (r) => r.roleId,
16
+ idLoader: assetRulesByIdLoader
17
+ });
18
+ const assetRulesBySiteLoader = new OneToManyLoader({
19
+ fetch: async (siteIds) => await getAssetRules({ siteIds }),
20
+ extractKey: r => r.siteId,
21
+ idLoader: assetRulesByIdLoader
22
+ });
23
+ const globalAssetRulesCache = new Cache(async () => await getAssetRules({ siteIds: [null] }), { freshseconds: 3 });
24
+ export class AssetRuleServiceInternal extends BaseService {
25
+ async findById(ruleId) {
26
+ return await this.loaders.get(assetRulesByIdLoader).load(ruleId);
27
+ }
28
+ async findByRoleId(roleId, filter) {
29
+ return await this.loaders.get(assetRulesByRoleLoader, filter).load(roleId);
30
+ }
31
+ async findBySiteId(siteId) {
32
+ // dataloader can't handle loading nulls so we have to grab global assetrules separately
33
+ const [siteRules, globalRules] = await Promise.all([
34
+ siteId ? this.loaders.get(assetRulesBySiteLoader).load(siteId) : [],
35
+ globalAssetRulesCache.get()
36
+ ]);
37
+ return [...siteRules, ...globalRules];
38
+ }
39
+ async findByAsset(asset) {
40
+ const folder = await this.svc(AssetFolderServiceInternal).findByInternalId(asset.folderInternalId);
41
+ const rules = await this.findBySiteId(folder?.siteId);
42
+ return await filterAsync(rules, async (r) => await this.svc(AssetRuleService).applies(r, asset));
43
+ }
44
+ async findByAssetFolder(folder) {
45
+ const rules = await this.findBySiteId(folder?.siteId);
46
+ return await filterAsync(rules, async (r) => await this.svc(AssetRuleService).appliesToFolder(r, folder));
47
+ }
48
+ }
49
+ export class AssetRuleService extends DosGatoService {
50
+ constructor() {
51
+ super(...arguments);
52
+ this.raw = this.svc(AssetRuleServiceInternal);
53
+ }
54
+ async findById(ruleId) {
55
+ return await this.removeUnauthorized(await this.raw.findById(ruleId));
56
+ }
57
+ async findByRoleId(roleId, filter) {
58
+ return await this.removeUnauthorized(await this.raw.findByRoleId(roleId, filter));
59
+ }
60
+ async findBySiteId(siteId) {
61
+ return await this.removeUnauthorized(await this.raw.findBySiteId(siteId));
62
+ }
63
+ async findByAsset(asset) {
64
+ return await this.removeUnauthorized(await this.raw.findByAsset(asset));
65
+ }
66
+ async findByAssetFolder(folder) {
67
+ return await this.removeUnauthorized(await this.raw.findByAssetFolder(folder));
68
+ }
69
+ async create(args) {
70
+ const role = await this.svc(RoleServiceInternal).findById(args.roleId);
71
+ if (!role)
72
+ throw new Error('Role to be modified does not exist.');
73
+ if (!await this.svc(RoleService).mayCreateRules(role))
74
+ throw new Error('You are not permitted to add rules to this role.');
75
+ const newRule = new AssetRule({ id: '0', roleId: args.roleId, siteId: args.siteId, path: args.path ?? '/', mode: args.mode ?? RulePathMode.SELFANDSUB, ...args.grants });
76
+ if (await this.tooPowerful(newRule))
77
+ return ValidatedResponse.error('The proposed rule would have more privilege than you currently have, so you cannot create it.');
78
+ try {
79
+ const ruleId = await createAssetRule(args);
80
+ this.loaders.clear();
81
+ if (!newRule.siteId)
82
+ await globalAssetRulesCache.clear();
83
+ const rule = await this.raw.findById(String(ruleId));
84
+ return new AssetRuleResponse({ assetRule: rule, success: true });
85
+ }
86
+ catch (err) {
87
+ console.error(err);
88
+ throw new Error('An unknown error occurred while creating the role.');
89
+ }
90
+ }
91
+ async update(args) {
92
+ const rule = await this.raw.findById(args.ruleId);
93
+ if (!rule)
94
+ throw new Error('Rule to be updated does not exist.');
95
+ if (!await this.mayWrite(rule))
96
+ throw new Error('Current user is not permitted to update this asset rule.');
97
+ const updatedGrants = { ...rule.grants, ...args.grants };
98
+ const newRule = new AssetRule({
99
+ id: '0',
100
+ roleId: rule.roleId,
101
+ siteId: args.siteId ?? rule.siteId,
102
+ path: args.path ?? rule.path,
103
+ mode: args.mode ?? rule.mode,
104
+ ...updatedGrants
105
+ });
106
+ if (await this.tooPowerful(newRule))
107
+ return ValidatedResponse.error('The updated rule would have more privilege than you currently have, so you cannot create it.');
108
+ try {
109
+ await updateAssetRule(args);
110
+ this.loaders.clear();
111
+ if (!rule.siteId || !newRule.siteId)
112
+ await globalAssetRulesCache.clear();
113
+ const updatedRule = await this.raw.findById(args.ruleId);
114
+ return new AssetRuleResponse({ assetRule: updatedRule, success: true });
115
+ }
116
+ catch (err) {
117
+ console.error(err);
118
+ throw new Error('An error occurred while updating the asset rule.');
119
+ }
120
+ }
121
+ async delete(ruleId) {
122
+ const rule = await this.loaders.get(assetRulesByIdLoader).load(ruleId);
123
+ if (!rule)
124
+ throw new Error('Rule to be deleted does not exist.');
125
+ if (!(await this.mayWrite(rule)))
126
+ throw new Error('Current user is not permitted to delete this asset rule.');
127
+ try {
128
+ await deleteAssetRule(ruleId);
129
+ this.loaders.clear();
130
+ if (!rule.siteId)
131
+ await globalAssetRulesCache.clear();
132
+ return new ValidatedResponse({ success: true });
133
+ }
134
+ catch (err) {
135
+ throw new Error('An error occurred while deleting the asset rule.');
136
+ }
137
+ }
138
+ async applies(rule, asset) {
139
+ const site = await this.svc(AssetServiceInternal).getSite(asset);
140
+ if (!site)
141
+ return false;
142
+ if (rule.siteId && rule.siteId !== site.id)
143
+ return false;
144
+ const assetPath = await this.svc(AssetServiceInternal).getPath(asset);
145
+ if (rule.mode === RulePathMode.SELF && rule.path !== assetPath)
146
+ return false;
147
+ if (rule.mode === RulePathMode.SELFANDSUB && !assetPath.startsWith(rule.path))
148
+ return false;
149
+ if (rule.mode === RulePathMode.SUB && (rule.path === assetPath || !assetPath.startsWith(rule.path)))
150
+ return false;
151
+ return true;
152
+ }
153
+ async appliesToFolder(rule, folder) {
154
+ if (rule.siteId && rule.siteId !== folder.siteId)
155
+ return false;
156
+ const folderPath = await this.svc(AssetFolderServiceInternal).getPath(folder);
157
+ if (rule.mode === RulePathMode.SELF && rule.path !== folderPath)
158
+ return false;
159
+ if (rule.mode === RulePathMode.SELFANDSUB && !folderPath.startsWith(rule.path))
160
+ return false;
161
+ if (rule.mode === RulePathMode.SUB && (rule.path === folderPath || !folderPath.startsWith(rule.path)))
162
+ return false;
163
+ return true;
164
+ }
165
+ asOrMorePowerful(ruleA, ruleB) {
166
+ if (ruleA.siteId && ruleA.siteId !== ruleB.siteId)
167
+ return false;
168
+ return comparePathsWithMode(ruleA, ruleB);
169
+ }
170
+ async tooPowerful(rule) {
171
+ return tooPowerfulHelper(rule, await this.currentAssetRules(), this.asOrMorePowerful);
172
+ }
173
+ async mayView(rule) {
174
+ if (await this.haveGlobalPerm('manageUsers'))
175
+ return true;
176
+ const role = await this.svc(RoleServiceInternal).findById(rule.roleId);
177
+ return !!role;
178
+ }
179
+ async mayWrite(rule) {
180
+ const role = await this.svc(RoleService).findById(rule.id);
181
+ return await this.svc(RoleService).mayUpdate(role);
182
+ }
183
+ }
184
+ //# sourceMappingURL=assetrule.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetrule.service.js","sourceRoot":"","sources":["../../src/assetrule/assetrule.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Queryable } from 'mysql2-async';
2
+ export declare function init(db: Queryable): Promise<void>;