@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,136 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { ValidatedResponse } from '@txstate-mws/graphql-server';
11
+ import { Field, ID, InputType, ObjectType } from 'type-graphql';
12
+ import { RuleType } from '../internal.js';
13
+ let TemplateRuleGrants = class TemplateRuleGrants {
14
+ constructor(row) {
15
+ if (row) {
16
+ this.use = !!row.use;
17
+ }
18
+ }
19
+ };
20
+ __decorate([
21
+ Field({
22
+ description: `Grants ability to use the template in any site. Normally templates are authorized
23
+ for sites, but this allows certain users to use a template even if the site would not normally
24
+ allow it. Component templates are still subject to the template whitelist established by another
25
+ template's area.`
26
+ }),
27
+ __metadata("design:type", Boolean)
28
+ ], TemplateRuleGrants.prototype, "use", void 0);
29
+ TemplateRuleGrants = __decorate([
30
+ ObjectType(),
31
+ InputType('TemplateRuleGrantsInput'),
32
+ __metadata("design:paramtypes", [Object])
33
+ ], TemplateRuleGrants);
34
+ export { TemplateRuleGrants };
35
+ let TemplateRule = class TemplateRule {
36
+ constructor(row) {
37
+ this.type = RuleType.SITE;
38
+ this.id = String(row.id);
39
+ this.roleId = String(row.roleId);
40
+ this.templateId = row.templateId;
41
+ this.grants = new TemplateRuleGrants(row);
42
+ }
43
+ };
44
+ __decorate([
45
+ Field(type => ID),
46
+ __metadata("design:type", String)
47
+ ], TemplateRule.prototype, "id", void 0);
48
+ __decorate([
49
+ Field(type => RuleType, { description: 'The rule type as needed by the Role.rules types argument.' }),
50
+ __metadata("design:type", String)
51
+ ], TemplateRule.prototype, "type", void 0);
52
+ __decorate([
53
+ Field({ description: 'Permissions granted by this rule.' }),
54
+ __metadata("design:type", TemplateRuleGrants)
55
+ ], TemplateRule.prototype, "grants", void 0);
56
+ TemplateRule = __decorate([
57
+ ObjectType({ description: 'A template rule grants permissions applicable to a template.' }),
58
+ __metadata("design:paramtypes", [Object])
59
+ ], TemplateRule);
60
+ export { TemplateRule };
61
+ let TemplateRuleFilter = class TemplateRuleFilter {
62
+ };
63
+ __decorate([
64
+ Field(type => [ID], { nullable: true }),
65
+ __metadata("design:type", Array)
66
+ ], TemplateRuleFilter.prototype, "roleIds", void 0);
67
+ __decorate([
68
+ Field(type => [ID], { nullable: 'itemsAndList', description: 'Rules targeting all templates will NOT be returned when this filter is used. Include `null` to return those rules.' }),
69
+ __metadata("design:type", Array)
70
+ ], TemplateRuleFilter.prototype, "templateKeys", void 0);
71
+ __decorate([
72
+ Field({ nullable: true, description: 'Return rules that grant the use permission.' }),
73
+ __metadata("design:type", Boolean)
74
+ ], TemplateRuleFilter.prototype, "use", void 0);
75
+ TemplateRuleFilter = __decorate([
76
+ InputType()
77
+ ], TemplateRuleFilter);
78
+ export { TemplateRuleFilter };
79
+ let CreateTemplateRuleInput = class CreateTemplateRuleInput {
80
+ };
81
+ __decorate([
82
+ Field(),
83
+ __metadata("design:type", String)
84
+ ], CreateTemplateRuleInput.prototype, "roleId", void 0);
85
+ __decorate([
86
+ Field({ nullable: true }),
87
+ __metadata("design:type", String)
88
+ ], CreateTemplateRuleInput.prototype, "templateId", void 0);
89
+ __decorate([
90
+ Field(type => TemplateRuleGrants, { nullable: true }),
91
+ __metadata("design:type", TemplateRuleGrants)
92
+ ], CreateTemplateRuleInput.prototype, "grants", void 0);
93
+ CreateTemplateRuleInput = __decorate([
94
+ InputType()
95
+ ], CreateTemplateRuleInput);
96
+ export { CreateTemplateRuleInput };
97
+ let UpdateTemplateRuleInput = class UpdateTemplateRuleInput {
98
+ };
99
+ __decorate([
100
+ Field(),
101
+ __metadata("design:type", String)
102
+ ], UpdateTemplateRuleInput.prototype, "ruleId", void 0);
103
+ __decorate([
104
+ Field({ nullable: true }),
105
+ __metadata("design:type", String)
106
+ ], UpdateTemplateRuleInput.prototype, "templateId", void 0);
107
+ __decorate([
108
+ Field(type => TemplateRuleGrants, { nullable: true }),
109
+ __metadata("design:type", TemplateRuleGrants)
110
+ ], UpdateTemplateRuleInput.prototype, "grants", void 0);
111
+ UpdateTemplateRuleInput = __decorate([
112
+ InputType()
113
+ ], UpdateTemplateRuleInput);
114
+ export { UpdateTemplateRuleInput };
115
+ let TemplateRuleResponse = class TemplateRuleResponse extends ValidatedResponse {
116
+ constructor(config) {
117
+ super(config);
118
+ this.templateRule = config.templateRule;
119
+ }
120
+ };
121
+ __decorate([
122
+ Field({ nullable: true }),
123
+ __metadata("design:type", TemplateRule)
124
+ ], TemplateRuleResponse.prototype, "templateRule", void 0);
125
+ TemplateRuleResponse = __decorate([
126
+ ObjectType(),
127
+ __metadata("design:paramtypes", [Object])
128
+ ], TemplateRuleResponse);
129
+ export { TemplateRuleResponse };
130
+ let TemplateRulePermissions = class TemplateRulePermissions {
131
+ };
132
+ TemplateRulePermissions = __decorate([
133
+ ObjectType()
134
+ ], TemplateRulePermissions);
135
+ export { TemplateRulePermissions };
136
+ //# sourceMappingURL=templaterule.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templaterule.model.js","sourceRoot":"","sources":["../../src/templaterule/templaterule.model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Context } from '@txstate-mws/graphql-server';
2
+ import { Role, Template, TemplateRule, CreateTemplateRuleInput, UpdateTemplateRuleInput } from '../internal.js';
3
+ export declare class TemplateRuleResolver {
4
+ role(ctx: Context, templaterule: TemplateRule): Promise<Role | undefined>;
5
+ template(ctx: Context, templaterule: TemplateRule): Promise<Template | null | undefined>;
6
+ permissions(templaterule: TemplateRule): TemplateRule;
7
+ createTemplateRule(ctx: Context, args: CreateTemplateRuleInput): Promise<import("@txstate-mws/graphql-server").ValidatedResponse>;
8
+ updateTemplateRule(ctx: Context, args: UpdateTemplateRuleInput): Promise<import("@txstate-mws/graphql-server").ValidatedResponse>;
9
+ }
10
+ export declare class TemplateRulePermissionsResolver {
11
+ write(ctx: Context, rule: TemplateRule): Promise<boolean>;
12
+ }
@@ -0,0 +1,100 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Context } from '@txstate-mws/graphql-server';
14
+ import { isNull } from 'txstate-utils';
15
+ import { Resolver, Ctx, FieldResolver, Root, Mutation, Arg } from 'type-graphql';
16
+ import { Role, RoleService, Template, TemplateService, TemplateRule, TemplateRulePermissions, TemplateRuleResponse, TemplateRuleService, CreateTemplateRuleInput, UpdateTemplateRuleInput } from '../internal.js';
17
+ let TemplateRuleResolver = class TemplateRuleResolver {
18
+ async role(ctx, templaterule) {
19
+ return await ctx.svc(RoleService).getRoleForRule(templaterule.roleId);
20
+ }
21
+ async template(ctx, templaterule) {
22
+ if (isNull(templaterule.templateId))
23
+ return null;
24
+ else
25
+ return await ctx.svc(TemplateService).findById(templaterule.templateId);
26
+ }
27
+ permissions(templaterule) {
28
+ return templaterule;
29
+ }
30
+ async createTemplateRule(ctx, args) {
31
+ return await ctx.svc(TemplateRuleService).create(args);
32
+ }
33
+ async updateTemplateRule(ctx, args) {
34
+ return await ctx.svc(TemplateRuleService).update(args);
35
+ }
36
+ };
37
+ __decorate([
38
+ FieldResolver(returns => Role),
39
+ __param(0, Ctx()),
40
+ __param(1, Root()),
41
+ __metadata("design:type", Function),
42
+ __metadata("design:paramtypes", [Context, TemplateRule]),
43
+ __metadata("design:returntype", Promise)
44
+ ], TemplateRuleResolver.prototype, "role", null);
45
+ __decorate([
46
+ FieldResolver(returns => Template, { nullable: true, description: 'The template targeted by this rule. Null means it targets all templates.' }),
47
+ __param(0, Ctx()),
48
+ __param(1, Root()),
49
+ __metadata("design:type", Function),
50
+ __metadata("design:paramtypes", [Context, TemplateRule]),
51
+ __metadata("design:returntype", Promise)
52
+ ], TemplateRuleResolver.prototype, "template", null);
53
+ __decorate([
54
+ FieldResolver(returns => TemplateRulePermissions, {
55
+ description: `Reveal the simplified results after all authorization rules are taken into account
56
+ for the current user. Makes it easy to light up, disable, or hide buttons in the UI.`
57
+ }),
58
+ __param(0, Root()),
59
+ __metadata("design:type", Function),
60
+ __metadata("design:paramtypes", [TemplateRule]),
61
+ __metadata("design:returntype", void 0)
62
+ ], TemplateRuleResolver.prototype, "permissions", null);
63
+ __decorate([
64
+ Mutation(returns => TemplateRuleResponse),
65
+ __param(0, Ctx()),
66
+ __param(1, Arg('args', type => CreateTemplateRuleInput)),
67
+ __metadata("design:type", Function),
68
+ __metadata("design:paramtypes", [Context, CreateTemplateRuleInput]),
69
+ __metadata("design:returntype", Promise)
70
+ ], TemplateRuleResolver.prototype, "createTemplateRule", null);
71
+ __decorate([
72
+ Mutation(returns => TemplateRuleResponse),
73
+ __param(0, Ctx()),
74
+ __param(1, Arg('args', type => UpdateTemplateRuleInput)),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", [Context, UpdateTemplateRuleInput]),
77
+ __metadata("design:returntype", Promise)
78
+ ], TemplateRuleResolver.prototype, "updateTemplateRule", null);
79
+ TemplateRuleResolver = __decorate([
80
+ Resolver(of => TemplateRule)
81
+ ], TemplateRuleResolver);
82
+ export { TemplateRuleResolver };
83
+ let TemplateRulePermissionsResolver = class TemplateRulePermissionsResolver {
84
+ async write(ctx, rule) {
85
+ return await ctx.svc(TemplateRuleService).mayWrite(rule);
86
+ }
87
+ };
88
+ __decorate([
89
+ FieldResolver(returns => Boolean, { description: 'User may edit the grants on this rule.' }),
90
+ __param(0, Ctx()),
91
+ __param(1, Root()),
92
+ __metadata("design:type", Function),
93
+ __metadata("design:paramtypes", [Context, TemplateRule]),
94
+ __metadata("design:returntype", Promise)
95
+ ], TemplateRulePermissionsResolver.prototype, "write", null);
96
+ TemplateRulePermissionsResolver = __decorate([
97
+ Resolver(of => TemplateRulePermissions)
98
+ ], TemplateRulePermissionsResolver);
99
+ export { TemplateRulePermissionsResolver };
100
+ //# sourceMappingURL=templaterule.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templaterule.resolver.js","sourceRoot":"","sources":["../../src/templaterule/templaterule.resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server';
2
+ import { Template, DosGatoService, TemplateRule, TemplateRuleFilter, CreateTemplateRuleInput, UpdateTemplateRuleInput } from '../internal.js';
3
+ export declare class TemplateRuleServiceInternal extends BaseService {
4
+ findById(ruleId: string): Promise<TemplateRule | undefined>;
5
+ findByRoleId(roleId: string, filter?: TemplateRuleFilter): Promise<TemplateRule[]>;
6
+ }
7
+ export declare class TemplateRuleService extends DosGatoService<TemplateRule> {
8
+ raw: TemplateRuleServiceInternal;
9
+ findById(ruleId: string): Promise<TemplateRule | undefined>;
10
+ findByRoleId(roleId: string, filter?: TemplateRuleFilter): Promise<TemplateRule[]>;
11
+ create(args: CreateTemplateRuleInput): Promise<ValidatedResponse>;
12
+ update(args: UpdateTemplateRuleInput): Promise<ValidatedResponse>;
13
+ delete(ruleId: string): Promise<ValidatedResponse>;
14
+ applies(rule: TemplateRule, template: Template): Promise<boolean>;
15
+ asOrMorePowerful(ruleA: TemplateRule, ruleB: TemplateRule): boolean;
16
+ tooPowerful(rule: TemplateRule): Promise<boolean>;
17
+ mayWrite(rule: TemplateRule): Promise<boolean>;
18
+ mayView(rule: TemplateRule): Promise<boolean>;
19
+ }
@@ -0,0 +1,123 @@
1
+ import { OneToManyLoader, PrimaryKeyLoader } from 'dataloader-factory';
2
+ import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server';
3
+ import { Cache } from 'txstate-utils';
4
+ import { DosGatoService, tooPowerfulHelper, getTemplateRules, TemplateRule, RoleService, createTemplateRule, TemplateRuleResponse, updateTemplateRule, deleteTemplateRule, RoleServiceInternal } from '../internal.js';
5
+ const templateRulesByIdLoader = new PrimaryKeyLoader({
6
+ fetch: async (ids) => {
7
+ return await getTemplateRules({ ids });
8
+ }
9
+ });
10
+ const templateRulesByRoleLoader = new OneToManyLoader({
11
+ fetch: async (roleIds, filter) => {
12
+ return await getTemplateRules({ ...filter, roleIds });
13
+ },
14
+ extractKey: (r) => r.roleId,
15
+ keysFromFilter: (filter) => filter?.roleIds ?? []
16
+ });
17
+ const globalTemplateRulesCache = new Cache(async () => await getTemplateRules({ templateIds: [null] }), { freshseconds: 3 });
18
+ export class TemplateRuleServiceInternal extends BaseService {
19
+ async findById(ruleId) {
20
+ return await this.loaders.get(templateRulesByIdLoader).load(ruleId);
21
+ }
22
+ async findByRoleId(roleId, filter) {
23
+ return await this.loaders.get(templateRulesByRoleLoader, filter).load(roleId);
24
+ }
25
+ }
26
+ export class TemplateRuleService extends DosGatoService {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.raw = this.svc(TemplateRuleServiceInternal);
30
+ }
31
+ async findById(ruleId) {
32
+ return await this.removeUnauthorized(await this.raw.findById(ruleId));
33
+ }
34
+ async findByRoleId(roleId, filter) {
35
+ return await this.removeUnauthorized(await this.raw.findByRoleId(roleId, filter));
36
+ }
37
+ async create(args) {
38
+ const role = await this.svc(RoleServiceInternal).findById(args.roleId);
39
+ if (!role)
40
+ throw new Error('Role to be modified does not exist.');
41
+ if (!await this.svc(RoleService).mayCreateRules(role))
42
+ throw new Error('You are not permitted to add rules to this role.');
43
+ const newRule = new TemplateRule({ id: '0', roleId: args.roleId, templateId: args.templateId, ...args.grants });
44
+ if (await this.tooPowerful(newRule))
45
+ return ValidatedResponse.error('The proposed rule would have more privilege than you currently have, so you cannot create it.');
46
+ try {
47
+ const ruleId = await createTemplateRule(args);
48
+ this.loaders.clear();
49
+ if (!newRule.templateId)
50
+ await globalTemplateRulesCache.clear();
51
+ const rule = await this.raw.findById(String(ruleId));
52
+ return new TemplateRuleResponse({ success: true, templateRule: rule });
53
+ }
54
+ catch (err) {
55
+ console.error(err);
56
+ throw new Error('An unknown error occurred while creating the role.');
57
+ }
58
+ }
59
+ async update(args) {
60
+ const rule = await this.raw.findById(args.ruleId);
61
+ if (!rule)
62
+ throw new Error('Rule to be updated does not exist.');
63
+ if (!await this.mayWrite(rule))
64
+ throw new Error('Current user is not permitted to update this template rule.');
65
+ const newRule = new TemplateRule({
66
+ id: '0',
67
+ roleId: rule.roleId,
68
+ siteId: args.templateId ?? rule.templateId,
69
+ grants: { use: args.grants?.use ?? rule.grants.use }
70
+ });
71
+ if (await this.tooPowerful(newRule))
72
+ return ValidatedResponse.error('The updated template rule would have more privilege than you currently have, so you cannot update it.');
73
+ try {
74
+ await updateTemplateRule(args);
75
+ this.loaders.clear();
76
+ if (!rule.templateId || !newRule.templateId)
77
+ await globalTemplateRulesCache.clear();
78
+ const updatedRule = await this.raw.findById(args.ruleId);
79
+ return new TemplateRuleResponse({ templateRule: updatedRule, success: true });
80
+ }
81
+ catch (err) {
82
+ console.error(err);
83
+ throw new Error('An error occurred while updating the template rule.');
84
+ }
85
+ }
86
+ async delete(ruleId) {
87
+ const rule = await this.raw.findById(ruleId);
88
+ if (!rule)
89
+ throw new Error('Rule to be deleted does not exist.');
90
+ if (!await this.mayWrite(rule))
91
+ throw new Error('Current user is not permitted to remove this template rule.');
92
+ try {
93
+ await deleteTemplateRule(ruleId);
94
+ this.loaders.clear();
95
+ if (!rule.templateId)
96
+ await globalTemplateRulesCache.clear();
97
+ return new ValidatedResponse({ success: true });
98
+ }
99
+ catch (err) {
100
+ throw new Error('An error occurred while deleting the template rule.');
101
+ }
102
+ }
103
+ async applies(rule, template) {
104
+ return !rule.templateId || rule.templateId === template.id;
105
+ }
106
+ asOrMorePowerful(ruleA, ruleB) {
107
+ return !ruleA.templateId || ruleA.templateId === ruleB.templateId;
108
+ }
109
+ async tooPowerful(rule) {
110
+ return tooPowerfulHelper(rule, await this.currentTemplateRules(), this.asOrMorePowerful);
111
+ }
112
+ async mayWrite(rule) {
113
+ const role = await this.svc(RoleService).findById(rule.id);
114
+ return await this.svc(RoleService).mayUpdate(role);
115
+ }
116
+ async mayView(rule) {
117
+ if (await this.haveGlobalPerm('manageUsers'))
118
+ return true;
119
+ const role = await this.svc(RoleServiceInternal).findById(rule.roleId);
120
+ return !!role;
121
+ }
122
+ }
123
+ //# sourceMappingURL=templaterule.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templaterule.service.js","sourceRoot":"","sources":["../../src/templaterule/templaterule.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { User, UserFilter } from '../internal.js';
2
+ export declare function getUsers(filter: UserFilter): Promise<User[]>;
3
+ export declare function getUsersByInternalId(ids: number[]): Promise<User[]>;
4
+ export declare function getUsersInGroup(groupIds: string[], filter?: UserFilter): Promise<{
5
+ key: string;
6
+ value: User;
7
+ }[]>;
8
+ export declare function getUsersWithRole(roleIds: string[], filter?: UserFilter): Promise<{
9
+ key: string;
10
+ value: User;
11
+ }[]>;
12
+ export declare function getUsersBySite(siteIds: string[]): Promise<{
13
+ key: string;
14
+ value: User;
15
+ }[]>;
16
+ export declare function getUsersManagingGroups(groupIds: string[], direct?: boolean): Promise<{
17
+ key: string;
18
+ value: User;
19
+ }[]>;
20
+ export declare function updateUser(id: string, name: string | undefined, email: string | undefined): Promise<void>;
21
+ export declare function disableUsers(users: User[]): Promise<number>;
22
+ export declare function enableUsers(users: User[]): Promise<number>;
@@ -0,0 +1,116 @@
1
+ import db from 'mysql2-async/db';
2
+ import { isNotNull, unique } from 'txstate-utils';
3
+ import { User } from '../internal.js';
4
+ function processFilters(filter) {
5
+ const binds = [];
6
+ const where = [];
7
+ if (typeof filter !== 'undefined') {
8
+ if (filter.internalIds?.length) {
9
+ where.push(`users.id IN (${db.in(binds, filter.internalIds)})`);
10
+ }
11
+ if (filter.ids?.length) {
12
+ where.push(`users.login IN (${db.in(binds, filter.ids)})`);
13
+ }
14
+ if (isNotNull(filter.enabled)) {
15
+ if (filter.enabled) {
16
+ where.push('users.disabledAt IS NULL');
17
+ }
18
+ else {
19
+ where.push('users.disabledAt IS NOT NULL');
20
+ }
21
+ }
22
+ if (isNotNull(filter.hideDisabledBefore)) {
23
+ where.push('users.disabledAt > ?');
24
+ binds.push(filter.hideDisabledBefore.toISO());
25
+ }
26
+ }
27
+ return { binds, where };
28
+ }
29
+ export async function getUsers(filter) {
30
+ const { binds, where } = processFilters(filter);
31
+ const users = where.length
32
+ ? await db.getall(`SELECT * FROM users WHERE (${where.join(') AND (')}) ORDER BY login`, binds)
33
+ : await db.getall('SELECT * FROM users ORDER BY login');
34
+ return users.map(u => new User(u));
35
+ }
36
+ export async function getUsersByInternalId(ids) {
37
+ const binds = [];
38
+ const where = [];
39
+ where.push(`users.id IN (${db.in(binds, ids)})`);
40
+ const users = await db.getall(`SELECT users.* FROM users WHERE (${where.join(') AND (')})`, binds);
41
+ return users.map(u => new User(u));
42
+ }
43
+ export async function getUsersInGroup(groupIds, filter) {
44
+ const { binds, where } = processFilters(filter);
45
+ where.push(`users_groups.groupId IN (${db.in(binds, groupIds)})`);
46
+ const users = await db.getall(`SELECT users.*, users_groups.groupId AS groupId FROM users
47
+ INNER JOIN users_groups ON users.id = users_groups.userId
48
+ WHERE (${where.join(') AND (')})`, binds);
49
+ return users.map(row => ({ key: String(row.groupId), value: new User(row) }));
50
+ }
51
+ export async function getUsersWithRole(roleIds, filter) {
52
+ const { binds, where } = processFilters(filter);
53
+ where.push(`users_roles.roleId IN (${db.in(binds, roleIds)})`);
54
+ const users = await db.getall(`SELECT users.*, users_roles.roleId AS roleId
55
+ FROM users INNER JOIN users_roles ON users.id = users_roles.userId
56
+ WHERE (${where.join(') AND (')})`, binds);
57
+ return users.map(row => ({ key: String(row.roleId), value: new User(row) }));
58
+ }
59
+ export async function getUsersBySite(siteIds) {
60
+ const binds = [];
61
+ const where = [];
62
+ if (siteIds.length) {
63
+ where.push(`sites_managers.siteId IN (${db.in(binds, siteIds)})`);
64
+ }
65
+ const users = await db.getall(`SELECT users.*, sites_managers.siteId AS siteId
66
+ FROM users INNER JOIN sites_managers ON users.id = sites_managers.userId
67
+ WHERE (${where.join(') AND (')})`, binds);
68
+ return users.map(row => ({ key: String(row.siteId), value: new User(row) }));
69
+ }
70
+ export async function getUsersManagingGroups(groupIds, direct) {
71
+ if (!groupIds.length)
72
+ return [];
73
+ const [directManagers, siteManagers] = await Promise.all([
74
+ db.getall(`SELECT u.*, g.id AS groupId
75
+ FROM groups g
76
+ INNER JOIN groups_managers gm ON gm.groupId=g.id
77
+ INNER JOIN users u ON u.id=gm.userId
78
+ WHERE g.id IN (${db.in([], groupIds)})`, groupIds),
79
+ db.getall(`SELECT u.*, g.id AS groupId
80
+ FROM groups g
81
+ INNER JOIN groups_sites gs ON gs.groupId=g.id
82
+ INNER JOIN sites_managers sm ON sm.siteId=gs.siteId
83
+ INNER JOIN users u ON u.id=sm.userId
84
+ WHERE g.id IN (${db.in([], groupIds)})`, groupIds)
85
+ ]);
86
+ const all = !direct ? siteManagers : [];
87
+ if (direct !== false)
88
+ all.push(...directManagers);
89
+ return unique(all, row => [row.id, row.groupId])
90
+ .map(row => ({ key: String(row.groupId), value: new User(row) }));
91
+ }
92
+ export async function updateUser(id, name, email) {
93
+ const updates = [];
94
+ const binds = [];
95
+ if (name) {
96
+ updates.push('name = ?');
97
+ binds.push(name);
98
+ }
99
+ if (email) {
100
+ updates.push('email = ?');
101
+ binds.push(email);
102
+ }
103
+ if (updates.length) {
104
+ binds.push(id);
105
+ await db.update(`UPDATE users SET ${updates.join(',')} WHERE login = ?`, binds);
106
+ }
107
+ }
108
+ export async function disableUsers(users) {
109
+ const binds = [];
110
+ return await db.update(`UPDATE users SET disabledAt = NOW() WHERE disabledAt IS NULL AND id IN (${db.in(binds, users.map(u => u.internalId))})`, binds);
111
+ }
112
+ export async function enableUsers(users) {
113
+ const binds = [];
114
+ return await db.update(`UPDATE users SET disabledAt = NULL WHERE disabledAt IS NOT NULL AND id IN (${db.in(binds, users.map(u => u.internalId))})`, binds);
115
+ }
116
+ //# sourceMappingURL=user.database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.database.js","sourceRoot":"","sources":["../../src/user/user.database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { DateTime } from 'luxon';
2
+ import { ValidatedResponse, ValidatedResponseArgs } from '@txstate-mws/graphql-server';
3
+ export declare class User {
4
+ id: string;
5
+ name: string;
6
+ email: string;
7
+ disabled: boolean;
8
+ disabledAt?: DateTime;
9
+ lastlogin?: DateTime;
10
+ internalId: number;
11
+ lastlogout?: DateTime;
12
+ constructor(row: any);
13
+ }
14
+ export interface RedactedUser {
15
+ id: string;
16
+ internalId: number;
17
+ name: string;
18
+ }
19
+ export declare class UserFilter {
20
+ internalIds?: number[];
21
+ ids?: string[];
22
+ enabled?: boolean;
23
+ hideDisabledBefore?: DateTime;
24
+ }
25
+ export declare class UpdateUserInput {
26
+ name: string;
27
+ email: string;
28
+ }
29
+ export declare class UserResponse extends ValidatedResponse {
30
+ user?: User;
31
+ constructor(config?: ValidatedResponseArgs & {
32
+ user?: User;
33
+ });
34
+ }
35
+ export declare class UsersResponse extends ValidatedResponse {
36
+ users: User[];
37
+ constructor(config?: ValidatedResponseArgs & {
38
+ users?: User[];
39
+ });
40
+ }
41
+ export declare class UserPermissions {
42
+ }