@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.
- package/LICENSE +21 -0
- package/README.md +74 -0
- package/dist/access/access.model.d.ts +2 -0
- package/dist/access/access.model.js +14 -0
- package/dist/access/access.model.js.map +1 -0
- package/dist/access/access.resolver.d.ts +15 -0
- package/dist/access/access.resolver.js +133 -0
- package/dist/access/access.resolver.js.map +1 -0
- package/dist/asset/asset.database.d.ts +12 -0
- package/dist/asset/asset.database.js +116 -0
- package/dist/asset/asset.database.js.map +1 -0
- package/dist/asset/asset.model.d.ts +81 -0
- package/dist/asset/asset.model.js +271 -0
- package/dist/asset/asset.model.js.map +1 -0
- package/dist/asset/asset.resolver.d.ts +32 -0
- package/dist/asset/asset.resolver.js +325 -0
- package/dist/asset/asset.resolver.js.map +1 -0
- package/dist/asset/asset.service.d.ts +35 -0
- package/dist/asset/asset.service.js +225 -0
- package/dist/asset/asset.service.js.map +1 -0
- package/dist/assetfolder/assetfolder.database.d.ts +7 -0
- package/dist/assetfolder/assetfolder.database.js +85 -0
- package/dist/assetfolder/assetfolder.database.js.map +1 -0
- package/dist/assetfolder/assetfolder.model.d.ts +56 -0
- package/dist/assetfolder/assetfolder.model.js +160 -0
- package/dist/assetfolder/assetfolder.model.js.map +1 -0
- package/dist/assetfolder/assetfolder.resolver.d.ts +25 -0
- package/dist/assetfolder/assetfolder.resolver.js +255 -0
- package/dist/assetfolder/assetfolder.resolver.js.map +1 -0
- package/dist/assetfolder/assetfolder.service.d.ts +39 -0
- package/dist/assetfolder/assetfolder.service.js +355 -0
- package/dist/assetfolder/assetfolder.service.js.map +1 -0
- package/dist/assetrule/assetrule.database.d.ts +5 -0
- package/dist/assetrule/assetrule.database.js +161 -0
- package/dist/assetrule/assetrule.database.js.map +1 -0
- package/dist/assetrule/assetrule.model.d.ts +71 -0
- package/dist/assetrule/assetrule.model.js +221 -0
- package/dist/assetrule/assetrule.model.js.map +1 -0
- package/dist/assetrule/assetrule.resolver.d.ts +12 -0
- package/dist/assetrule/assetrule.resolver.js +100 -0
- package/dist/assetrule/assetrule.resolver.js.map +1 -0
- package/dist/assetrule/assetrule.service.d.ts +26 -0
- package/dist/assetrule/assetrule.service.js +184 -0
- package/dist/assetrule/assetrule.service.js.map +1 -0
- package/dist/createdb.d.ts +2 -0
- package/dist/createdb.js +541 -0
- package/dist/createdb.js.map +1 -0
- package/dist/data/data.database.d.ts +7 -0
- package/dist/data/data.database.js +265 -0
- package/dist/data/data.database.js.map +1 -0
- package/dist/data/data.indexing.d.ts +2 -0
- package/dist/data/data.indexing.js +23 -0
- package/dist/data/data.indexing.js.map +1 -0
- package/dist/data/data.model.d.ts +69 -0
- package/dist/data/data.model.js +206 -0
- package/dist/data/data.model.js.map +1 -0
- package/dist/data/data.resolver.d.ts +36 -0
- package/dist/data/data.resolver.js +384 -0
- package/dist/data/data.resolver.js.map +1 -0
- package/dist/data/data.service.d.ts +41 -0
- package/dist/data/data.service.js +374 -0
- package/dist/data/data.service.js.map +1 -0
- package/dist/datafolder/datafolder.database.d.ts +7 -0
- package/dist/datafolder/datafolder.database.js +72 -0
- package/dist/datafolder/datafolder.database.js.map +1 -0
- package/dist/datafolder/datafolder.model.d.ts +48 -0
- package/dist/datafolder/datafolder.model.js +139 -0
- package/dist/datafolder/datafolder.model.js.map +1 -0
- package/dist/datafolder/datafolder.resolver.d.ts +24 -0
- package/dist/datafolder/datafolder.resolver.js +243 -0
- package/dist/datafolder/datafolder.resolver.js.map +1 -0
- package/dist/datafolder/datafolder.service.d.ts +32 -0
- package/dist/datafolder/datafolder.service.js +223 -0
- package/dist/datafolder/datafolder.service.js.map +1 -0
- package/dist/dataroot/dataroot.model.d.ts +19 -0
- package/dist/dataroot/dataroot.model.js +72 -0
- package/dist/dataroot/dataroot.model.js.map +1 -0
- package/dist/dataroot/dataroot.resolver.d.ts +11 -0
- package/dist/dataroot/dataroot.resolver.js +87 -0
- package/dist/dataroot/dataroot.resolver.js.map +1 -0
- package/dist/dataroot/dataroot.service.d.ts +12 -0
- package/dist/dataroot/dataroot.service.js +62 -0
- package/dist/dataroot/dataroot.service.js.map +1 -0
- package/dist/datarule/datarule.database.d.ts +5 -0
- package/dist/datarule/datarule.database.js +144 -0
- package/dist/datarule/datarule.database.js.map +1 -0
- package/dist/datarule/datarule.model.d.ts +55 -0
- package/dist/datarule/datarule.model.js +200 -0
- package/dist/datarule/datarule.model.js.map +1 -0
- package/dist/datarule/datarule.resolver.d.ts +13 -0
- package/dist/datarule/datarule.resolver.js +114 -0
- package/dist/datarule/datarule.resolver.js.map +1 -0
- package/dist/datarule/datarule.service.d.ts +27 -0
- package/dist/datarule/datarule.service.js +191 -0
- package/dist/datarule/datarule.service.js.map +1 -0
- package/dist/fixtures.d.ts +1 -0
- package/dist/fixtures.js +697 -0
- package/dist/fixtures.js.map +1 -0
- package/dist/fixturetemplates.d.ts +110 -0
- package/dist/fixturetemplates.js +178 -0
- package/dist/fixturetemplates.js.map +1 -0
- package/dist/globalrule/globalrule.database.d.ts +5 -0
- package/dist/globalrule/globalrule.database.js +65 -0
- package/dist/globalrule/globalrule.database.js.map +1 -0
- package/dist/globalrule/globalrule.model.d.ts +34 -0
- package/dist/globalrule/globalrule.model.js +120 -0
- package/dist/globalrule/globalrule.model.js.map +1 -0
- package/dist/globalrule/globalrule.resolver.d.ts +11 -0
- package/dist/globalrule/globalrule.resolver.js +85 -0
- package/dist/globalrule/globalrule.resolver.js.map +1 -0
- package/dist/globalrule/globalrule.service.d.ts +18 -0
- package/dist/globalrule/globalrule.service.js +111 -0
- package/dist/globalrule/globalrule.service.js.map +1 -0
- package/dist/group/group.database.d.ts +41 -0
- package/dist/group/group.database.js +190 -0
- package/dist/group/group.database.js.map +1 -0
- package/dist/group/group.model.d.ts +19 -0
- package/dist/group/group.model.js +70 -0
- package/dist/group/group.model.js.map +1 -0
- package/dist/group/group.resolver.d.ts +27 -0
- package/dist/group/group.resolver.js +275 -0
- package/dist/group/group.resolver.js.map +1 -0
- package/dist/group/group.service.d.ts +46 -0
- package/dist/group/group.service.js +384 -0
- package/dist/group/group.service.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +88 -0
- package/dist/internal.js +89 -0
- package/dist/internal.js.map +1 -0
- package/dist/migrations.d.ts +2 -0
- package/dist/migrations.js +41 -0
- package/dist/migrations.js.map +1 -0
- package/dist/organization/organization.database.d.ts +2 -0
- package/dist/organization/organization.database.js +16 -0
- package/dist/organization/organization.database.js.map +1 -0
- package/dist/organization/organization.model.d.ts +5 -0
- package/dist/organization/organization.model.js +35 -0
- package/dist/organization/organization.model.js.map +1 -0
- package/dist/organization/organization.resolver.d.ts +6 -0
- package/dist/organization/organization.resolver.js +43 -0
- package/dist/organization/organization.resolver.js.map +1 -0
- package/dist/organization/organization.service.d.ts +12 -0
- package/dist/organization/organization.service.js +35 -0
- package/dist/organization/organization.service.js.map +1 -0
- package/dist/page/page.database.d.ts +10 -0
- package/dist/page/page.database.js +269 -0
- package/dist/page/page.database.js.map +1 -0
- package/dist/page/page.indexing.d.ts +3 -0
- package/dist/page/page.indexing.js +26 -0
- package/dist/page/page.indexing.js.map +1 -0
- package/dist/page/page.migrations.d.ts +13 -0
- package/dist/page/page.migrations.js +55 -0
- package/dist/page/page.migrations.js.map +1 -0
- package/dist/page/page.model.d.ts +88 -0
- package/dist/page/page.model.js +272 -0
- package/dist/page/page.model.js.map +1 -0
- package/dist/page/page.resolver.d.ts +48 -0
- package/dist/page/page.resolver.js +542 -0
- package/dist/page/page.resolver.js.map +1 -0
- package/dist/page/page.service.d.ts +59 -0
- package/dist/page/page.service.js +399 -0
- package/dist/page/page.service.js.map +1 -0
- package/dist/page/page.util.d.ts +3 -0
- package/dist/page/page.util.js +16 -0
- package/dist/page/page.util.js.map +1 -0
- package/dist/page/page.validation.d.ts +2 -0
- package/dist/page/page.validation.js +21 -0
- package/dist/page/page.validation.js.map +1 -0
- package/dist/pagerule/pagerule.database.d.ts +5 -0
- package/dist/pagerule/pagerule.database.js +212 -0
- package/dist/pagerule/pagerule.database.js.map +1 -0
- package/dist/pagerule/pagerule.model.d.ts +71 -0
- package/dist/pagerule/pagerule.model.js +272 -0
- package/dist/pagerule/pagerule.model.js.map +1 -0
- package/dist/pagerule/pagerule.resolver.d.ts +13 -0
- package/dist/pagerule/pagerule.resolver.js +114 -0
- package/dist/pagerule/pagerule.resolver.js.map +1 -0
- package/dist/pagerule/pagerule.service.d.ts +23 -0
- package/dist/pagerule/pagerule.service.js +180 -0
- package/dist/pagerule/pagerule.service.js.map +1 -0
- package/dist/pagetree/pagetree.database.d.ts +13 -0
- package/dist/pagetree/pagetree.database.js +84 -0
- package/dist/pagetree/pagetree.database.js.map +1 -0
- package/dist/pagetree/pagetree.model.d.ts +43 -0
- package/dist/pagetree/pagetree.model.js +146 -0
- package/dist/pagetree/pagetree.model.js.map +1 -0
- package/dist/pagetree/pagetree.resolver.d.ts +23 -0
- package/dist/pagetree/pagetree.resolver.js +238 -0
- package/dist/pagetree/pagetree.resolver.js.map +1 -0
- package/dist/pagetree/pagetree.service.d.ts +25 -0
- package/dist/pagetree/pagetree.service.js +221 -0
- package/dist/pagetree/pagetree.service.js.map +1 -0
- package/dist/role/role.database.d.ts +17 -0
- package/dist/role/role.database.js +74 -0
- package/dist/role/role.database.js.map +1 -0
- package/dist/role/role.model.d.ts +26 -0
- package/dist/role/role.model.js +84 -0
- package/dist/role/role.model.js.map +1 -0
- package/dist/role/role.resolver.d.ts +27 -0
- package/dist/role/role.resolver.js +294 -0
- package/dist/role/role.resolver.js.map +1 -0
- package/dist/role/role.service.d.ts +33 -0
- package/dist/role/role.service.js +265 -0
- package/dist/role/role.service.js.map +1 -0
- package/dist/run.d.ts +1 -0
- package/dist/run.js +29 -0
- package/dist/run.js.map +1 -0
- package/dist/scalars/datetime.d.ts +2 -0
- package/dist/scalars/datetime.js +19 -0
- package/dist/scalars/datetime.js.map +1 -0
- package/dist/scalars/index.d.ts +3 -0
- package/dist/scalars/index.js +4 -0
- package/dist/scalars/index.js.map +1 -0
- package/dist/scalars/jsondata.d.ts +2 -0
- package/dist/scalars/jsondata.js +15 -0
- package/dist/scalars/jsondata.js.map +1 -0
- package/dist/scalars/urlsafestring.d.ts +4 -0
- package/dist/scalars/urlsafestring.js +28 -0
- package/dist/scalars/urlsafestring.js.map +1 -0
- package/dist/site/site.database.d.ts +15 -0
- package/dist/site/site.database.js +164 -0
- package/dist/site/site.database.js.map +1 -0
- package/dist/site/site.model.d.ts +62 -0
- package/dist/site/site.model.js +197 -0
- package/dist/site/site.model.js.map +1 -0
- package/dist/site/site.resolver.d.ts +30 -0
- package/dist/site/site.resolver.js +326 -0
- package/dist/site/site.resolver.js.map +1 -0
- package/dist/site/site.service.d.ts +35 -0
- package/dist/site/site.service.js +199 -0
- package/dist/site/site.service.js.map +1 -0
- package/dist/siterule/siterule.database.d.ts +5 -0
- package/dist/siterule/siterule.database.js +139 -0
- package/dist/siterule/siterule.database.js.map +1 -0
- package/dist/siterule/siterule.model.d.ts +53 -0
- package/dist/siterule/siterule.model.js +203 -0
- package/dist/siterule/siterule.model.js.map +1 -0
- package/dist/siterule/siterule.resolver.d.ts +12 -0
- package/dist/siterule/siterule.resolver.js +100 -0
- package/dist/siterule/siterule.resolver.js.map +1 -0
- package/dist/siterule/siterule.service.d.ts +23 -0
- package/dist/siterule/siterule.service.js +148 -0
- package/dist/siterule/siterule.service.js.map +1 -0
- package/dist/template/template.database.d.ts +15 -0
- package/dist/template/template.database.js +61 -0
- package/dist/template/template.database.js.map +1 -0
- package/dist/template/template.model.d.ts +32 -0
- package/dist/template/template.model.js +124 -0
- package/dist/template/template.model.js.map +1 -0
- package/dist/template/template.resolver.d.ts +22 -0
- package/dist/template/template.resolver.js +216 -0
- package/dist/template/template.resolver.js.map +1 -0
- package/dist/template/template.service.d.ts +27 -0
- package/dist/template/template.service.js +192 -0
- package/dist/template/template.service.js.map +1 -0
- package/dist/templaterule/templaterule.database.d.ts +5 -0
- package/dist/templaterule/templaterule.database.js +80 -0
- package/dist/templaterule/templaterule.database.js.map +1 -0
- package/dist/templaterule/templaterule.model.d.ts +38 -0
- package/dist/templaterule/templaterule.model.js +136 -0
- package/dist/templaterule/templaterule.model.js.map +1 -0
- package/dist/templaterule/templaterule.resolver.d.ts +12 -0
- package/dist/templaterule/templaterule.resolver.js +100 -0
- package/dist/templaterule/templaterule.resolver.js.map +1 -0
- package/dist/templaterule/templaterule.service.d.ts +19 -0
- package/dist/templaterule/templaterule.service.js +123 -0
- package/dist/templaterule/templaterule.service.js.map +1 -0
- package/dist/user/user.database.d.ts +22 -0
- package/dist/user/user.database.js +116 -0
- package/dist/user/user.database.js.map +1 -0
- package/dist/user/user.model.d.ts +42 -0
- package/dist/user/user.model.js +122 -0
- package/dist/user/user.model.js.map +1 -0
- package/dist/user/user.resolver.d.ts +16 -0
- package/dist/user/user.resolver.js +140 -0
- package/dist/user/user.resolver.js.map +1 -0
- package/dist/user/user.service.d.ts +29 -0
- package/dist/user/user.service.js +195 -0
- package/dist/user/user.service.js.map +1 -0
- package/dist/util/authservice.d.ts +28 -0
- package/dist/util/authservice.js +131 -0
- package/dist/util/authservice.js.map +1 -0
- package/dist/util/dates.d.ts +2 -0
- package/dist/util/dates.js +4 -0
- package/dist/util/dates.js.map +1 -0
- package/dist/util/filehandler.d.ts +15 -0
- package/dist/util/filehandler.js +48 -0
- package/dist/util/filehandler.js.map +1 -0
- package/dist/util/index.d.ts +13 -0
- package/dist/util/index.js +26 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/indexing.d.ts +12 -0
- package/dist/util/indexing.js +74 -0
- package/dist/util/indexing.js.map +1 -0
- package/dist/util/migrations.d.ts +15 -0
- package/dist/util/migrations.js +2 -0
- package/dist/util/migrations.js.map +1 -0
- package/dist/util/mutationlogger.d.ts +1 -0
- package/dist/util/mutationlogger.js +9 -0
- package/dist/util/mutationlogger.js.map +1 -0
- package/dist/util/registry.d.ts +25 -0
- package/dist/util/registry.js +66 -0
- package/dist/util/registry.js.map +1 -0
- package/dist/util/rules.d.ts +6 -0
- package/dist/util/rules.js +31 -0
- package/dist/util/rules.js.map +1 -0
- package/dist/util/sharedtypes.d.ts +3 -0
- package/dist/util/sharedtypes.js +2 -0
- package/dist/util/sharedtypes.js.map +1 -0
- package/dist/util/stopwords.d.ts +1 -0
- package/dist/util/stopwords.js +152 -0
- package/dist/util/stopwords.js.map +1 -0
- package/dist/version/version.model.d.ts +11 -0
- package/dist/version/version.model.js +46 -0
- package/dist/version/version.model.js.map +1 -0
- package/dist/version/version.resolver.d.ts +6 -0
- package/dist/version/version.resolver.js +45 -0
- package/dist/version/version.resolver.js.map +1 -0
- package/dist/versionedservice/service.d.ts +148 -0
- package/dist/versionedservice/service.js +547 -0
- package/dist/versionedservice/service.js.map +1 -0
- package/dist/versionedservice/types.d.ts +87 -0
- package/dist/versionedservice/types.js +11 -0
- package/dist/versionedservice/types.js.map +1 -0
- package/package.json +50 -0
- package/readme/DosGato.mwb +0 -0
- package/readme/DosGato.mwb.bak +0 -0
- package/readme/upgradeflow2.png +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
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 { DateTime } from 'luxon';
|
|
11
|
+
import { Field, ID, InputType, ObjectType } from 'type-graphql';
|
|
12
|
+
import { ValidatedResponse } from '@txstate-mws/graphql-server';
|
|
13
|
+
let User = class User {
|
|
14
|
+
constructor(row) {
|
|
15
|
+
this.internalId = row.id;
|
|
16
|
+
this.id = row.login;
|
|
17
|
+
this.name = row.name;
|
|
18
|
+
this.email = row.email;
|
|
19
|
+
this.disabledAt = row.disabledAt ? DateTime.fromJSDate(row.disabledAt) : undefined;
|
|
20
|
+
this.disabled = this.disabledAt != null;
|
|
21
|
+
this.lastlogin = row.lastlogin ? DateTime.fromJSDate(row.lastlogin) : undefined;
|
|
22
|
+
this.lastlogout = row.lastlogout ? DateTime.fromJSDate(row.lastlogout) : undefined;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
__decorate([
|
|
26
|
+
Field(type => ID),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], User.prototype, "id", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
Field(),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], User.prototype, "name", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
Field(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], User.prototype, "email", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
Field(),
|
|
39
|
+
__metadata("design:type", Boolean)
|
|
40
|
+
], User.prototype, "disabled", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
Field({ nullable: true, description: 'When the user was disabled. The UI may want to do something to hide these users.' }),
|
|
43
|
+
__metadata("design:type", DateTime)
|
|
44
|
+
], User.prototype, "disabledAt", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
Field({ nullable: true }),
|
|
47
|
+
__metadata("design:type", DateTime)
|
|
48
|
+
], User.prototype, "lastlogin", void 0);
|
|
49
|
+
User = __decorate([
|
|
50
|
+
ObjectType(),
|
|
51
|
+
__metadata("design:paramtypes", [Object])
|
|
52
|
+
], User);
|
|
53
|
+
export { User };
|
|
54
|
+
let UserFilter = class UserFilter {
|
|
55
|
+
};
|
|
56
|
+
__decorate([
|
|
57
|
+
Field(type => [ID], { nullable: true, description: 'Accepts a special value \'self\' to represent the currently authenticated user.' }),
|
|
58
|
+
__metadata("design:type", Array)
|
|
59
|
+
], UserFilter.prototype, "ids", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
Field({ nullable: true, description: 'true -> enabled users, false -> disabled users, null -> all users' }),
|
|
62
|
+
__metadata("design:type", Boolean)
|
|
63
|
+
], UserFilter.prototype, "enabled", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
Field({ nullable: true, description: 'When specified, get rid of any users that became disabled before the given date. Typically used to hide long-disabled users.' }),
|
|
66
|
+
__metadata("design:type", DateTime)
|
|
67
|
+
], UserFilter.prototype, "hideDisabledBefore", void 0);
|
|
68
|
+
UserFilter = __decorate([
|
|
69
|
+
InputType()
|
|
70
|
+
], UserFilter);
|
|
71
|
+
export { UserFilter };
|
|
72
|
+
let UpdateUserInput = class UpdateUserInput {
|
|
73
|
+
};
|
|
74
|
+
__decorate([
|
|
75
|
+
Field({ nullable: true }),
|
|
76
|
+
__metadata("design:type", String)
|
|
77
|
+
], UpdateUserInput.prototype, "name", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
Field({ nullable: true }),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], UpdateUserInput.prototype, "email", void 0);
|
|
82
|
+
UpdateUserInput = __decorate([
|
|
83
|
+
InputType()
|
|
84
|
+
], UpdateUserInput);
|
|
85
|
+
export { UpdateUserInput };
|
|
86
|
+
let UserResponse = class UserResponse extends ValidatedResponse {
|
|
87
|
+
constructor(config) {
|
|
88
|
+
super(config ?? {});
|
|
89
|
+
this.user = config?.user;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
__decorate([
|
|
93
|
+
Field({ nullable: true }),
|
|
94
|
+
__metadata("design:type", User)
|
|
95
|
+
], UserResponse.prototype, "user", void 0);
|
|
96
|
+
UserResponse = __decorate([
|
|
97
|
+
ObjectType(),
|
|
98
|
+
__metadata("design:paramtypes", [Object])
|
|
99
|
+
], UserResponse);
|
|
100
|
+
export { UserResponse };
|
|
101
|
+
let UsersResponse = class UsersResponse extends ValidatedResponse {
|
|
102
|
+
constructor(config) {
|
|
103
|
+
super(config ?? {});
|
|
104
|
+
this.users = config?.users ?? [];
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
__decorate([
|
|
108
|
+
Field(type => [User]),
|
|
109
|
+
__metadata("design:type", Array)
|
|
110
|
+
], UsersResponse.prototype, "users", void 0);
|
|
111
|
+
UsersResponse = __decorate([
|
|
112
|
+
ObjectType(),
|
|
113
|
+
__metadata("design:paramtypes", [Object])
|
|
114
|
+
], UsersResponse);
|
|
115
|
+
export { UsersResponse };
|
|
116
|
+
let UserPermissions = class UserPermissions {
|
|
117
|
+
};
|
|
118
|
+
UserPermissions = __decorate([
|
|
119
|
+
ObjectType()
|
|
120
|
+
], UserPermissions);
|
|
121
|
+
export { UserPermissions };
|
|
122
|
+
//# sourceMappingURL=user.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../src/user/user.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Context } from '@txstate-mws/graphql-server';
|
|
2
|
+
import { Group, Role, User, UserFilter, UserResponse, UpdateUserInput, UsersResponse } from '../internal.js';
|
|
3
|
+
export declare class UserResolver {
|
|
4
|
+
users(ctx: Context, filter: UserFilter): Promise<User[] | (User | import("./user.model.js").RedactedUser)[]>;
|
|
5
|
+
groups(ctx: Context, user: User, direct: boolean): Promise<Group[]>;
|
|
6
|
+
roles(ctx: Context, user: User, direct: boolean): Promise<Role[]>;
|
|
7
|
+
permissions(user: User): User;
|
|
8
|
+
updateUser(ctx: Context, userId: string, args: UpdateUserInput): Promise<UserResponse>;
|
|
9
|
+
disableUsers(ctx: Context, userIds: string[]): Promise<UsersResponse>;
|
|
10
|
+
enableUsers(ctx: Context, userIds: string[]): Promise<UsersResponse>;
|
|
11
|
+
}
|
|
12
|
+
export declare class UserPermissionsResolver {
|
|
13
|
+
update(ctx: Context, user: User): Promise<boolean>;
|
|
14
|
+
disable(ctx: Context, user: User): Promise<boolean>;
|
|
15
|
+
enable(ctx: Context, user: User): Promise<boolean>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
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 { Resolver, Query, Arg, Ctx, FieldResolver, Root, Mutation, ID } from 'type-graphql';
|
|
15
|
+
import { Group, GroupService, Role, RoleService, User, UserFilter, UserPermissions, UserResponse, UpdateUserInput, UserService, UsersResponse } from '../internal.js';
|
|
16
|
+
let UserResolver = class UserResolver {
|
|
17
|
+
async users(ctx, filter) {
|
|
18
|
+
return await ctx.svc(UserService).find(filter);
|
|
19
|
+
}
|
|
20
|
+
async groups(ctx, user, direct) {
|
|
21
|
+
return await ctx.svc(GroupService).findByUserId(user.id, direct);
|
|
22
|
+
}
|
|
23
|
+
async roles(ctx, user, direct) {
|
|
24
|
+
return await ctx.svc(RoleService).findByUserId(user.id, direct);
|
|
25
|
+
}
|
|
26
|
+
permissions(user) {
|
|
27
|
+
return user;
|
|
28
|
+
}
|
|
29
|
+
async updateUser(ctx, userId, args) {
|
|
30
|
+
return await ctx.svc(UserService).updateUser(userId, args);
|
|
31
|
+
}
|
|
32
|
+
async disableUsers(ctx, userIds) {
|
|
33
|
+
return await ctx.svc(UserService).disableUsers(userIds);
|
|
34
|
+
}
|
|
35
|
+
async enableUsers(ctx, userIds) {
|
|
36
|
+
return await ctx.svc(UserService).enableUsers(userIds);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
__decorate([
|
|
40
|
+
Query(returns => [User]),
|
|
41
|
+
__param(0, Ctx()),
|
|
42
|
+
__param(1, Arg('filter')),
|
|
43
|
+
__metadata("design:type", Function),
|
|
44
|
+
__metadata("design:paramtypes", [Context, UserFilter]),
|
|
45
|
+
__metadata("design:returntype", Promise)
|
|
46
|
+
], UserResolver.prototype, "users", null);
|
|
47
|
+
__decorate([
|
|
48
|
+
FieldResolver(returns => [Group], { description: 'Groups related to the user, either directly or through a subgroup membership.' }),
|
|
49
|
+
__param(0, Ctx()),
|
|
50
|
+
__param(1, Root()),
|
|
51
|
+
__param(2, Arg('direct', { nullable: true, description: 'true -> groups where user is direct member, false -> groups where the user is an indirect member but not a direct member, null -> all groups where the user is a member.' })),
|
|
52
|
+
__metadata("design:type", Function),
|
|
53
|
+
__metadata("design:paramtypes", [Context, User, Boolean]),
|
|
54
|
+
__metadata("design:returntype", Promise)
|
|
55
|
+
], UserResolver.prototype, "groups", null);
|
|
56
|
+
__decorate([
|
|
57
|
+
FieldResolver(returns => [Role], { description: 'Roles related to the user, either directly or through a group.' }),
|
|
58
|
+
__param(0, Ctx()),
|
|
59
|
+
__param(1, Root()),
|
|
60
|
+
__param(2, Arg('direct', { nullable: true, description: 'true -> only roles the user has directly, false -> only roles the user has indirectly and not directly, null -> all roles the user has.' })),
|
|
61
|
+
__metadata("design:type", Function),
|
|
62
|
+
__metadata("design:paramtypes", [Context, User, Boolean]),
|
|
63
|
+
__metadata("design:returntype", Promise)
|
|
64
|
+
], UserResolver.prototype, "roles", null);
|
|
65
|
+
__decorate([
|
|
66
|
+
FieldResolver(returns => UserPermissions),
|
|
67
|
+
__param(0, Root()),
|
|
68
|
+
__metadata("design:type", Function),
|
|
69
|
+
__metadata("design:paramtypes", [User]),
|
|
70
|
+
__metadata("design:returntype", void 0)
|
|
71
|
+
], UserResolver.prototype, "permissions", null);
|
|
72
|
+
__decorate([
|
|
73
|
+
Mutation(returns => UserResponse),
|
|
74
|
+
__param(0, Ctx()),
|
|
75
|
+
__param(1, Arg('userId', type => ID)),
|
|
76
|
+
__param(2, Arg('args', type => UpdateUserInput)),
|
|
77
|
+
__metadata("design:type", Function),
|
|
78
|
+
__metadata("design:paramtypes", [Context, String, UpdateUserInput]),
|
|
79
|
+
__metadata("design:returntype", Promise)
|
|
80
|
+
], UserResolver.prototype, "updateUser", null);
|
|
81
|
+
__decorate([
|
|
82
|
+
Mutation(returns => UsersResponse, { description: 'Disabled users will stay in the system with their previous roles and group memberships for referential integrity and easy re-enable.' }),
|
|
83
|
+
__param(0, Ctx()),
|
|
84
|
+
__param(1, Arg('userIds', type => [ID])),
|
|
85
|
+
__metadata("design:type", Function),
|
|
86
|
+
__metadata("design:paramtypes", [Context, Array]),
|
|
87
|
+
__metadata("design:returntype", Promise)
|
|
88
|
+
], UserResolver.prototype, "disableUsers", null);
|
|
89
|
+
__decorate([
|
|
90
|
+
Mutation(returns => UsersResponse, { description: 'Re-enable users that have previously been disabled.' }),
|
|
91
|
+
__param(0, Ctx()),
|
|
92
|
+
__param(1, Arg('userIds', type => [ID])),
|
|
93
|
+
__metadata("design:type", Function),
|
|
94
|
+
__metadata("design:paramtypes", [Context, Array]),
|
|
95
|
+
__metadata("design:returntype", Promise)
|
|
96
|
+
], UserResolver.prototype, "enableUsers", null);
|
|
97
|
+
UserResolver = __decorate([
|
|
98
|
+
Resolver(of => User)
|
|
99
|
+
], UserResolver);
|
|
100
|
+
export { UserResolver };
|
|
101
|
+
let UserPermissionsResolver = class UserPermissionsResolver {
|
|
102
|
+
async update(ctx, user) {
|
|
103
|
+
return await ctx.svc(UserService).mayUpdate(user);
|
|
104
|
+
}
|
|
105
|
+
async disable(ctx, user) {
|
|
106
|
+
return await ctx.svc(UserService).mayDisable(user);
|
|
107
|
+
}
|
|
108
|
+
async enable(ctx, user) {
|
|
109
|
+
return await ctx.svc(UserService).mayCreate();
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
__decorate([
|
|
113
|
+
FieldResolver(returns => Boolean, { description: 'Current user may update this user\'s name or email.' }),
|
|
114
|
+
__param(0, Ctx()),
|
|
115
|
+
__param(1, Root()),
|
|
116
|
+
__metadata("design:type", Function),
|
|
117
|
+
__metadata("design:paramtypes", [Context, User]),
|
|
118
|
+
__metadata("design:returntype", Promise)
|
|
119
|
+
], UserPermissionsResolver.prototype, "update", null);
|
|
120
|
+
__decorate([
|
|
121
|
+
FieldResolver(returns => Boolean, { description: 'Current user may disable this account. Returns true even if account is already disabled.' }),
|
|
122
|
+
__param(0, Ctx()),
|
|
123
|
+
__param(1, Root()),
|
|
124
|
+
__metadata("design:type", Function),
|
|
125
|
+
__metadata("design:paramtypes", [Context, User]),
|
|
126
|
+
__metadata("design:returntype", Promise)
|
|
127
|
+
], UserPermissionsResolver.prototype, "disable", null);
|
|
128
|
+
__decorate([
|
|
129
|
+
FieldResolver(returns => Boolean, { description: 'Current user may re-enable this account. Returns true even if account is already enabled.' }),
|
|
130
|
+
__param(0, Ctx()),
|
|
131
|
+
__param(1, Root()),
|
|
132
|
+
__metadata("design:type", Function),
|
|
133
|
+
__metadata("design:paramtypes", [Context, User]),
|
|
134
|
+
__metadata("design:returntype", Promise)
|
|
135
|
+
], UserPermissionsResolver.prototype, "enable", null);
|
|
136
|
+
UserPermissionsResolver = __decorate([
|
|
137
|
+
Resolver(of => UserPermissions)
|
|
138
|
+
], UserPermissionsResolver);
|
|
139
|
+
export { UserPermissionsResolver };
|
|
140
|
+
//# sourceMappingURL=user.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.resolver.js","sourceRoot":"","sources":["../../src/user/user.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BaseService } from '@txstate-mws/graphql-server';
|
|
2
|
+
import { DosGatoService, User, UserFilter, UserResponse, RedactedUser, UsersResponse, UpdateUserInput } from '../internal.js';
|
|
3
|
+
export declare class UserServiceInternal extends BaseService {
|
|
4
|
+
find(filter: UserFilter): Promise<User[]>;
|
|
5
|
+
findByGroupId(groupId: string, direct?: boolean, filter?: UserFilter): Promise<User[]>;
|
|
6
|
+
findByRoleId(roleId: string, direct?: boolean, filter?: UserFilter): Promise<User[]>;
|
|
7
|
+
findSiteManagers(siteId: string): Promise<User[]>;
|
|
8
|
+
findGroupManagers(groupId: string, direct?: boolean): Promise<User[]>;
|
|
9
|
+
findByInternalId(id: number): Promise<User | undefined>;
|
|
10
|
+
findById(id: string): Promise<User | undefined>;
|
|
11
|
+
}
|
|
12
|
+
export declare class UserService extends DosGatoService<User, RedactedUser | User> {
|
|
13
|
+
raw: UserServiceInternal;
|
|
14
|
+
find(filter: UserFilter): Promise<User[] | (User | RedactedUser)[]>;
|
|
15
|
+
findByGroupId(groupId: string, direct?: boolean, filter?: UserFilter): Promise<User[] | (User | RedactedUser)[]>;
|
|
16
|
+
findByRoleId(roleId: string, direct?: boolean, filter?: UserFilter): Promise<User[] | (User | RedactedUser)[]>;
|
|
17
|
+
findSiteManagers(siteId: string): Promise<User[] | (User | RedactedUser)[]>;
|
|
18
|
+
findGroupManagers(groupId: string, direct?: boolean): Promise<User[] | (User | RedactedUser)[]>;
|
|
19
|
+
findByInternalId(id: number): Promise<User | RedactedUser | undefined>;
|
|
20
|
+
findById(id: string): Promise<User | RedactedUser | undefined>;
|
|
21
|
+
updateUser(id: string, args: UpdateUserInput): Promise<UserResponse>;
|
|
22
|
+
disableUsers(ids: string[]): Promise<UsersResponse>;
|
|
23
|
+
enableUsers(ids: string[]): Promise<UsersResponse>;
|
|
24
|
+
mayCreate(): Promise<boolean>;
|
|
25
|
+
mayUpdate(user: User): Promise<boolean>;
|
|
26
|
+
mayDisable(user: User): Promise<boolean>;
|
|
27
|
+
mayView(user: User): Promise<boolean>;
|
|
28
|
+
protected removeProperties(user: User): Promise<RedactedUser>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { BaseService } from '@txstate-mws/graphql-server';
|
|
2
|
+
import { ManyJoinedLoader, PrimaryKeyLoader } from 'dataloader-factory';
|
|
3
|
+
import { isNotBlank, isNotNull, someAsync, unique } from 'txstate-utils';
|
|
4
|
+
import { DosGatoService, GroupService, UserResponse, getUsers, getUsersInGroup, getUsersWithRole, getUsersBySite, getUsersByInternalId, UsersResponse, updateUser, disableUsers, enableUsers, getUsersManagingGroups } from '../internal.js';
|
|
5
|
+
const usersByInternalIdLoader = new PrimaryKeyLoader({
|
|
6
|
+
fetch: async (ids) => {
|
|
7
|
+
return await getUsersByInternalId(ids);
|
|
8
|
+
},
|
|
9
|
+
extractId: (item) => item.internalId
|
|
10
|
+
});
|
|
11
|
+
const usersByIdLoader = new PrimaryKeyLoader({
|
|
12
|
+
fetch: async (ids) => {
|
|
13
|
+
return await getUsers({ ids });
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
const usersByGroupIdLoader = new ManyJoinedLoader({
|
|
17
|
+
fetch: async (groupIds, filter) => {
|
|
18
|
+
return await getUsersInGroup(groupIds, filter);
|
|
19
|
+
},
|
|
20
|
+
idLoader: usersByInternalIdLoader
|
|
21
|
+
});
|
|
22
|
+
const usersByRoleIdLoader = new ManyJoinedLoader({
|
|
23
|
+
fetch: async (roleIds, filter) => {
|
|
24
|
+
return await getUsersWithRole(roleIds, filter);
|
|
25
|
+
},
|
|
26
|
+
idLoader: usersByInternalIdLoader
|
|
27
|
+
});
|
|
28
|
+
const usersBySiteIdLoader = new ManyJoinedLoader({
|
|
29
|
+
fetch: async (siteIds) => {
|
|
30
|
+
return await getUsersBySite(siteIds);
|
|
31
|
+
},
|
|
32
|
+
idLoader: usersByInternalIdLoader
|
|
33
|
+
});
|
|
34
|
+
const usersManagingGroupId = new ManyJoinedLoader({
|
|
35
|
+
fetch: async (groupIds, direct) => await getUsersManagingGroups(groupIds, direct),
|
|
36
|
+
idLoader: usersByInternalIdLoader
|
|
37
|
+
});
|
|
38
|
+
export class UserServiceInternal extends BaseService {
|
|
39
|
+
async find(filter) {
|
|
40
|
+
const users = await getUsers(filter);
|
|
41
|
+
for (const user of users) {
|
|
42
|
+
this.loaders.get(usersByIdLoader).prime(user.id, user);
|
|
43
|
+
this.loaders.get(usersByInternalIdLoader).prime(user.internalId, user);
|
|
44
|
+
}
|
|
45
|
+
return users;
|
|
46
|
+
}
|
|
47
|
+
async findByGroupId(groupId, direct, filter) {
|
|
48
|
+
let users = await this.loaders.get(usersByGroupIdLoader, filter).load(groupId);
|
|
49
|
+
if (!direct) {
|
|
50
|
+
const subgroups = await this.svc(GroupService).getSubgroups(groupId);
|
|
51
|
+
const result = await Promise.all(subgroups.map(async (sg) => {
|
|
52
|
+
return await this.loaders.get(usersByGroupIdLoader, filter).load(sg.id);
|
|
53
|
+
}));
|
|
54
|
+
const subgroupUsers = unique(result.flat());
|
|
55
|
+
if (typeof direct === 'undefined') {
|
|
56
|
+
users = unique([...users, ...subgroupUsers]);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
users = subgroupUsers;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return users;
|
|
63
|
+
}
|
|
64
|
+
async findByRoleId(roleId, direct, filter) {
|
|
65
|
+
// get the users who have this role directly
|
|
66
|
+
let users = await this.loaders.get(usersByRoleIdLoader, filter).load(roleId);
|
|
67
|
+
if (!direct) {
|
|
68
|
+
// get the users who have this role indirectly through a group
|
|
69
|
+
// need the groups that have this role
|
|
70
|
+
const groupsWithThisRole = await this.svc(GroupService).findByRoleId(roleId, true);
|
|
71
|
+
// then, the users in those groups and their subgroups (which also have this role)
|
|
72
|
+
const result = await Promise.all(groupsWithThisRole.map(async (g) => {
|
|
73
|
+
return await this.findByGroupId(g.id, undefined, filter);
|
|
74
|
+
}));
|
|
75
|
+
const usersFromGroups = await unique(result.flat());
|
|
76
|
+
if (typeof direct === 'undefined') {
|
|
77
|
+
users = unique([...users, ...usersFromGroups]);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
users = usersFromGroups;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return users;
|
|
84
|
+
}
|
|
85
|
+
async findSiteManagers(siteId) {
|
|
86
|
+
return await this.loaders.get(usersBySiteIdLoader).load(siteId);
|
|
87
|
+
}
|
|
88
|
+
async findGroupManagers(groupId, direct) {
|
|
89
|
+
return await this.loaders.get(usersManagingGroupId, direct).load(groupId);
|
|
90
|
+
}
|
|
91
|
+
async findByInternalId(id) {
|
|
92
|
+
return await this.loaders.get(usersByInternalIdLoader).load(id);
|
|
93
|
+
}
|
|
94
|
+
async findById(id) {
|
|
95
|
+
return await this.loaders.get(usersByIdLoader).load(id);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export class UserService extends DosGatoService {
|
|
99
|
+
constructor() {
|
|
100
|
+
super(...arguments);
|
|
101
|
+
this.raw = this.svc(UserServiceInternal);
|
|
102
|
+
}
|
|
103
|
+
async find(filter) {
|
|
104
|
+
if (!(await this.haveGlobalPerm('manageUsers')))
|
|
105
|
+
filter.ids = ['self'];
|
|
106
|
+
if (filter.ids?.length) {
|
|
107
|
+
filter.ids = filter.ids.map(id => id === 'self' ? this.login : id).filter(isNotBlank);
|
|
108
|
+
}
|
|
109
|
+
return await this.removeUnauthorized(await this.raw.find(filter));
|
|
110
|
+
}
|
|
111
|
+
async findByGroupId(groupId, direct, filter) {
|
|
112
|
+
return await this.removeUnauthorized(await this.raw.findByGroupId(groupId, direct, filter));
|
|
113
|
+
}
|
|
114
|
+
async findByRoleId(roleId, direct, filter) {
|
|
115
|
+
return await this.removeUnauthorized(await this.raw.findByRoleId(roleId, direct, filter));
|
|
116
|
+
}
|
|
117
|
+
async findSiteManagers(siteId) {
|
|
118
|
+
return await this.removeUnauthorized(await this.raw.findSiteManagers(siteId));
|
|
119
|
+
}
|
|
120
|
+
async findGroupManagers(groupId, direct) {
|
|
121
|
+
return await this.removeUnauthorized(await this.raw.findGroupManagers(groupId, direct));
|
|
122
|
+
}
|
|
123
|
+
async findByInternalId(id) {
|
|
124
|
+
return await this.removeUnauthorized(await this.raw.findByInternalId(id));
|
|
125
|
+
}
|
|
126
|
+
async findById(id) {
|
|
127
|
+
return await this.removeUnauthorized(await this.raw.findById(id));
|
|
128
|
+
}
|
|
129
|
+
async updateUser(id, args) {
|
|
130
|
+
const user = await this.raw.findById(id);
|
|
131
|
+
if (!user)
|
|
132
|
+
throw new Error('User to be updated does not exist.');
|
|
133
|
+
if (!(await this.mayUpdate(user)))
|
|
134
|
+
throw new Error('Current user is not permitted to update this user.');
|
|
135
|
+
const response = new UserResponse({});
|
|
136
|
+
try {
|
|
137
|
+
await updateUser(id, args.name, args.email);
|
|
138
|
+
this.loaders.clear();
|
|
139
|
+
response.success = true;
|
|
140
|
+
response.user = await this.raw.findById(id);
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
throw new Error('An unknown error occurred while updating the user.');
|
|
144
|
+
}
|
|
145
|
+
return response;
|
|
146
|
+
}
|
|
147
|
+
async disableUsers(ids) {
|
|
148
|
+
const users = (await Promise.all(ids.map(async (id) => await this.raw.findById(id)))).filter(isNotNull);
|
|
149
|
+
if (await someAsync(users, async (u) => !(await this.mayDisable(u)))) {
|
|
150
|
+
throw new Error('Current user is not permitted to disable one or more users.');
|
|
151
|
+
}
|
|
152
|
+
const response = new UsersResponse({});
|
|
153
|
+
await disableUsers(users);
|
|
154
|
+
this.loaders.clear();
|
|
155
|
+
response.success = true;
|
|
156
|
+
response.users = await this.raw.find({ internalIds: users.map(u => u.internalId) });
|
|
157
|
+
return response;
|
|
158
|
+
}
|
|
159
|
+
async enableUsers(ids) {
|
|
160
|
+
const users = (await Promise.all(ids.map(async (id) => await this.raw.findById(id)))).filter(isNotNull);
|
|
161
|
+
if (!(await this.mayCreate())) {
|
|
162
|
+
throw new Error('You are not permitted to enable users.');
|
|
163
|
+
}
|
|
164
|
+
const response = new UsersResponse({});
|
|
165
|
+
await enableUsers(users);
|
|
166
|
+
this.loaders.clear();
|
|
167
|
+
response.success = true;
|
|
168
|
+
response.users = await this.raw.find({ internalIds: users.map(u => u.internalId) });
|
|
169
|
+
return response;
|
|
170
|
+
}
|
|
171
|
+
async mayCreate() {
|
|
172
|
+
return await this.haveGlobalPerm('manageUsers');
|
|
173
|
+
}
|
|
174
|
+
async mayUpdate(user) {
|
|
175
|
+
return await this.haveGlobalPerm('manageUsers');
|
|
176
|
+
}
|
|
177
|
+
async mayDisable(user) {
|
|
178
|
+
return await this.haveGlobalPerm('manageUsers');
|
|
179
|
+
}
|
|
180
|
+
async mayView(user) {
|
|
181
|
+
const currentUser = await this.currentUser();
|
|
182
|
+
return currentUser != null;
|
|
183
|
+
}
|
|
184
|
+
async removeProperties(user) {
|
|
185
|
+
const currentUser = await this.currentUser();
|
|
186
|
+
if (user.id === currentUser.id || await this.haveGlobalPerm('manageUsers'))
|
|
187
|
+
return user;
|
|
188
|
+
return {
|
|
189
|
+
id: user.id,
|
|
190
|
+
internalId: user.internalId,
|
|
191
|
+
name: user.name
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=user.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/user/user.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AuthorizedService } from '@txstate-mws/graphql-server';
|
|
2
|
+
import { Asset, AssetFolder, Data, DataFolder, Page, Site, Template, AssetRuleGrants, DataRuleGrants, GlobalRuleGrants, PageRuleGrants, SiteRuleGrants, TemplateRuleGrants, DataRoot, Group } from '../internal.js';
|
|
3
|
+
export declare abstract class DosGatoService<ObjType, RedactedType = ObjType> extends AuthorizedService<{
|
|
4
|
+
sub: string;
|
|
5
|
+
}, ObjType, RedactedType> {
|
|
6
|
+
protected get login(): string;
|
|
7
|
+
protected isRenderServer(): boolean;
|
|
8
|
+
protected currentUser(): Promise<import("../internal.js").User | undefined>;
|
|
9
|
+
protected currentRoles(): Promise<import("../internal.js").Role[]>;
|
|
10
|
+
protected currentGroups(): Promise<Group[]>;
|
|
11
|
+
protected currentGroupsByIdStorage?: Record<string, Group>;
|
|
12
|
+
protected currentGroupsById(id: string): Promise<Group>;
|
|
13
|
+
protected currentGlobalRules(): Promise<import("../internal.js").GlobalRule[]>;
|
|
14
|
+
protected haveGlobalPerm(grant: keyof GlobalRuleGrants): Promise<boolean>;
|
|
15
|
+
protected currentSiteRules(): Promise<import("../internal.js").SiteRule[]>;
|
|
16
|
+
protected haveSitePerm(site: Site, grant: keyof SiteRuleGrants): Promise<boolean>;
|
|
17
|
+
protected currentPageRules(): Promise<import("../internal.js").PageRule[]>;
|
|
18
|
+
protected havePagePerm(page: Page, grant: keyof PageRuleGrants): Promise<boolean>;
|
|
19
|
+
protected currentAssetRules(): Promise<import("../internal.js").AssetRule[]>;
|
|
20
|
+
protected haveAssetPerm(asset: Asset, grant: keyof AssetRuleGrants): Promise<boolean>;
|
|
21
|
+
protected haveAssetFolderPerm(folder: AssetFolder, grant: keyof AssetRuleGrants): Promise<boolean>;
|
|
22
|
+
protected currentDataRules(): Promise<import("../internal.js").DataRule[]>;
|
|
23
|
+
protected haveDataPerm(item: Data, grant: keyof DataRuleGrants): Promise<boolean>;
|
|
24
|
+
protected haveDataFolderPerm(folder: DataFolder, grant: keyof DataRuleGrants): Promise<boolean>;
|
|
25
|
+
protected haveDataRootPerm(dataroot: DataRoot, grant: keyof DataRuleGrants): Promise<boolean>;
|
|
26
|
+
protected currentTemplateRules(): Promise<import("../internal.js").TemplateRule[]>;
|
|
27
|
+
protected haveTemplatePerm(template: Template, grant: keyof TemplateRuleGrants): Promise<boolean>;
|
|
28
|
+
}
|