@darraghor/nest-backend-libs 2.17.2 → 2.17.4
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/dist/organisation/dto/RolesEnum.d.ts +2 -1
- package/dist/organisation/dto/RolesEnum.js +1 -0
- package/dist/organisation/dto/RolesEnum.js.map +1 -1
- package/dist/person/person.controller.d.ts +1 -1
- package/dist/person/person.controller.js +9 -4
- package/dist/person/person.controller.js.map +1 -1
- package/dist/person/person.service.d.ts +3 -0
- package/dist/person/person.service.js +24 -4
- package/dist/person/person.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesEnum.js","sourceRoot":"","sources":["../../../src/organisation/dto/RolesEnum.ts"],"names":[],"mappings":";;;AAAA,yDAAyD;AACzD,IAAY,
|
|
1
|
+
{"version":3,"file":"RolesEnum.js","sourceRoot":"","sources":["../../../src/organisation/dto/RolesEnum.ts"],"names":[],"mappings":";;;AAAA,yDAAyD;AACzD,IAAY,KAIX;AAJD,WAAY,KAAK;IACb,wBAAe,CAAA;IACf,0BAAiB,CAAA;IACjB,4BAAmB,CAAA;AACvB,CAAC,EAJW,KAAK,GAAL,aAAK,KAAL,aAAK,QAIhB"}
|
|
@@ -5,7 +5,7 @@ import { RequestWithUser } from "../authz/RequestWithUser";
|
|
|
5
5
|
export declare class PersonController {
|
|
6
6
|
private readonly personService;
|
|
7
7
|
constructor(personService: PersonService);
|
|
8
|
-
findSelf(request: RequestWithUser): Promise<Person>;
|
|
8
|
+
findSelf(request: RequestWithUser, uuid: string): Promise<Person>;
|
|
9
9
|
update(uuid: string, updatePersonDto: UpdatePersonDto, request: RequestWithUser): Promise<import("typeorm").UpdateResult>;
|
|
10
10
|
remove(uuid: string, request: RequestWithUser): Promise<boolean>;
|
|
11
11
|
}
|
|
@@ -24,8 +24,12 @@ let PersonController = class PersonController {
|
|
|
24
24
|
constructor(personService) {
|
|
25
25
|
this.personService = personService;
|
|
26
26
|
}
|
|
27
|
-
async findSelf(request) {
|
|
28
|
-
|
|
27
|
+
async findSelf(request, uuid) {
|
|
28
|
+
if (uuid === "me") {
|
|
29
|
+
return this.personService.findOne(request.user.id);
|
|
30
|
+
}
|
|
31
|
+
// find the person if they are in the same organisation as the user
|
|
32
|
+
return await this.personService.findOneIfSameOrganisation(uuid, request.user);
|
|
29
33
|
}
|
|
30
34
|
async update(uuid, updatePersonDto, request) {
|
|
31
35
|
return this.personService.update(uuid, updatePersonDto, request.user.uuid);
|
|
@@ -36,11 +40,12 @@ let PersonController = class PersonController {
|
|
|
36
40
|
}
|
|
37
41
|
};
|
|
38
42
|
__decorate([
|
|
39
|
-
(0, common_1.Get)("
|
|
43
|
+
(0, common_1.Get)(":uuid"),
|
|
40
44
|
(0, swagger_1.ApiOkResponse)({ type: person_entity_1.Person }),
|
|
41
45
|
__param(0, (0, common_1.Request)()),
|
|
46
|
+
__param(1, (0, common_1.Param)("uuid")),
|
|
42
47
|
__metadata("design:type", Function),
|
|
43
|
-
__metadata("design:paramtypes", [Object]),
|
|
48
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
44
49
|
__metadata("design:returntype", Promise)
|
|
45
50
|
], PersonController.prototype, "findSelf", null);
|
|
46
51
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person.controller.js","sourceRoot":"","sources":["../../src/person/person.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CASwB;AACxB,qDAA+C;AAC/C,+DAAwD;AACxD,6CAAsE;AACtE,4DAAgD;AAChD,+CAA2C;AAMpC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACI;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAIvD,AAAN,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"person.controller.js","sourceRoot":"","sources":["../../src/person/person.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CASwB;AACxB,qDAA+C;AAC/C,+DAAwD;AACxD,6CAAsE;AACtE,4DAAgD;AAChD,+CAA2C;AAMpC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACI;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAIvD,AAAN,KAAK,CAAC,QAAQ,CACC,OAAwB,EACpB,IAAY;QAE3B,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtD;QAED,mEAAmE;QACnE,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CACrD,IAAI,EACJ,OAAO,CAAC,IAAI,CACf,CAAC;IACN,CAAC;IAIK,AAAN,KAAK,CAAC,MAAM,CACO,IAAY,EACnB,eAAgC,EAC7B,OAAwB;QAEnC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAC5B,IAAI,EACJ,eAAe,EACf,OAAO,CAAC,IAAI,CAAC,IAAI,CACpB,CAAC;IACN,CAAC;IAIK,AAAN,KAAK,CAAC,MAAM,CACO,IAAY,EAChB,OAAwB;QAEnC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAChD,IAAI,EACJ,OAAO,CAAC,IAAI,CAAC,IAAI,CACpB,CAAC;QACF,OAAO,YAAY,KAAK,SAAS,CAAC;IACtC,CAAC;CACJ,CAAA;AAzCS;IAFL,IAAA,YAAG,EAAC,OAAO,CAAC;IACZ,IAAA,uBAAa,EAAC,EAAC,IAAI,EAAE,sBAAM,EAAC,CAAC;IAEzB,WAAA,IAAA,gBAAO,GAAE,CAAA;IACT,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;;;;gDAWjB;AAIK;IAFL,IAAA,cAAK,EAAC,OAAO,CAAC;IACd,IAAA,uBAAa,EAAC,EAAC,IAAI,EAAE,sBAAM,EAAC,CAAC;IAEzB,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,gBAAO,GAAE,CAAA;;6CADe,mCAAe;;8CAQ3C;AAIK;IAFL,IAAA,eAAM,EAAC,OAAO,CAAC;IACf,IAAA,uBAAa,EAAC,EAAC,IAAI,EAAE,sBAAM,EAAC,CAAC;IAEzB,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,gBAAO,GAAE,CAAA;;;;8CAOb;AA7CQ,gBAAgB;IAJ5B,IAAA,kBAAS,EAAC,IAAA,oBAAS,EAAC,KAAK,CAAC,CAAC;IAC3B,IAAA,uBAAa,GAAE;IACf,IAAA,mBAAU,EAAC,QAAQ,CAAC;IACpB,IAAA,iBAAO,EAAC,SAAS,CAAC;qCAE6B,8BAAa;GADhD,gBAAgB,CA8C5B;AA9CY,4CAAgB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Repository } from "typeorm";
|
|
2
2
|
import { AccessToken } from "../authz/AccessToken";
|
|
3
|
+
import { RequestPerson } from "../authz/RequestWithUser";
|
|
3
4
|
import { AuthZClientService } from "../authzclient/authz.service";
|
|
4
5
|
import { UserProfile } from "../authzclient/UserProfile.dto";
|
|
5
6
|
import CoreLoggerService from "../logger/CoreLoggerService";
|
|
@@ -12,8 +13,10 @@ export declare class PersonService {
|
|
|
12
13
|
constructor(repository: Repository<Person>, logger: CoreLoggerService, authzClient: AuthZClientService);
|
|
13
14
|
getAuth0User(payload: AccessToken, rawAccessToken: string): Promise<UserProfile | undefined>;
|
|
14
15
|
validateUser(payload: AccessToken, rawAccessToken: string): Promise<Person | undefined>;
|
|
16
|
+
updatePersonFromAuth0(person: Person, auth0User: UserProfile): Promise<Person>;
|
|
15
17
|
findAll(): Promise<Person[]>;
|
|
16
18
|
findOneByAuth0Id(auth0Id: string): Promise<Person | undefined>;
|
|
19
|
+
findOneIfSameOrganisation(uuid: string, currentUser: RequestPerson): Promise<Person>;
|
|
17
20
|
findOne(id: number): Promise<Person>;
|
|
18
21
|
findOneByUuid(uuid: string): Promise<Person>;
|
|
19
22
|
update(uuid: string, updatePersonDto: UpdatePersonDto, currentUserUuid: string): Promise<import("typeorm").UpdateResult>;
|
|
@@ -39,7 +39,7 @@ let PersonService = class PersonService {
|
|
|
39
39
|
return await this.authzClient.getUser(rawAccessToken);
|
|
40
40
|
}
|
|
41
41
|
async validateUser(payload, rawAccessToken) {
|
|
42
|
-
// try to
|
|
42
|
+
// try to find the person and their memberships
|
|
43
43
|
const foundPerson = await this.repository.findOne({
|
|
44
44
|
where: { auth0UserId: payload.sub },
|
|
45
45
|
relations: ["memberships"],
|
|
@@ -57,7 +57,9 @@ let PersonService = class PersonService {
|
|
|
57
57
|
}
|
|
58
58
|
// create a new organisation
|
|
59
59
|
const unsavedOrganisation = new organisation_entity_1.Organisation();
|
|
60
|
-
unsavedOrganisation.name =
|
|
60
|
+
unsavedOrganisation.name = auth0User.given_name
|
|
61
|
+
? `${auth0User.given_name}'s Organisation`
|
|
62
|
+
: `My Organisation`;
|
|
61
63
|
// create roles
|
|
62
64
|
const ownerRole = new member_role_entity_1.MembershipRole();
|
|
63
65
|
ownerRole.name = RolesEnum_1.Roles.owner;
|
|
@@ -70,15 +72,17 @@ let PersonService = class PersonService {
|
|
|
70
72
|
foundPerson.memberships = [membership];
|
|
71
73
|
return this.repository.save(foundPerson);
|
|
72
74
|
}
|
|
73
|
-
// otherwise create a new person.
|
|
74
75
|
const person = this.repository.create();
|
|
76
|
+
person.memberships = [membership];
|
|
77
|
+
return this.updatePersonFromAuth0(person, auth0User);
|
|
78
|
+
}
|
|
79
|
+
async updatePersonFromAuth0(person, auth0User) {
|
|
75
80
|
person.auth0UserId = auth0User.sub;
|
|
76
81
|
person.blocked = false;
|
|
77
82
|
person.email = auth0User.email;
|
|
78
83
|
person.emailVerified = auth0User.email_verified;
|
|
79
84
|
person.familyName = auth0User.family_name;
|
|
80
85
|
person.givenName = auth0User.given_name;
|
|
81
|
-
person.memberships = [membership];
|
|
82
86
|
person.name = auth0User.name;
|
|
83
87
|
person.picture = auth0User.picture;
|
|
84
88
|
person.username = auth0User.preferred_username;
|
|
@@ -95,6 +99,22 @@ let PersonService = class PersonService {
|
|
|
95
99
|
},
|
|
96
100
|
});
|
|
97
101
|
}
|
|
102
|
+
async findOneIfSameOrganisation(uuid, currentUser) {
|
|
103
|
+
const person = await this.repository.findOneOrFail({
|
|
104
|
+
where: {
|
|
105
|
+
uuid,
|
|
106
|
+
},
|
|
107
|
+
relations: {
|
|
108
|
+
memberships: {
|
|
109
|
+
roles: true,
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
if (person.memberships.some((m) => currentUser.memberships.some((cu) => cu.organisationId === m.organisationId))) {
|
|
114
|
+
return person;
|
|
115
|
+
}
|
|
116
|
+
throw new common_1.NotFoundException();
|
|
117
|
+
}
|
|
98
118
|
async findOne(id) {
|
|
99
119
|
return this.repository.findOneOrFail({ where: { id } });
|
|
100
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person.service.js","sourceRoot":"","sources":["../../src/person/person.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAA6D;AAC7D,6CAAiD;AACjD,qCAAmC;
|
|
1
|
+
{"version":3,"file":"person.service.js","sourceRoot":"","sources":["../../src/person/person.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAA6D;AAC7D,6CAAiD;AACjD,qCAAmC;AAGnC,gEAAgE;AAEhE,oFAA4D;AAC5D,wHAA2G;AAC3G,6DAAoD;AACpD,oFAA2E;AAC3E,sFAA0E;AAE1E,4DAAgD;AAGzC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAGV;IACA;IACA;IAJZ,YAEY,UAA8B,EAC9B,MAAyB,EACzB,WAA+B;QAF/B,eAAU,GAAV,UAAU,CAAoB;QAC9B,WAAM,GAAN,MAAM,CAAmB;QACzB,gBAAW,GAAX,WAAW,CAAoB;IACxC,CAAC;IAEJ,KAAK,CAAC,YAAY,CACd,OAAoB,EACpB,cAAsB;QAEtB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,YAAY,CACd,OAAoB,EACpB,cAAsB;QAEtB,+CAA+C;QAC/C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC9C,KAAK,EAAE,EAAC,WAAW,EAAE,OAAO,CAAC,GAAG,EAAC;YACjC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B,CAAC,CAAC;QAEH,oDAAoD;QACpD,IACI,WAAW,KAAK,SAAS;YACzB,WAAW,KAAK,IAAI;YACpB,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EACpC;YACE,OAAO,WAAW,CAAC;SACtB;QAED,+EAA+E;QAC/E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,OAAO;SACV;QAED,4BAA4B;QAC5B,MAAM,mBAAmB,GAAG,IAAI,kCAAY,EAAE,CAAC;QAC/C,mBAAmB,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU;YAC3C,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,iBAAiB;YAC1C,CAAC,CAAC,iBAAiB,CAAC;QAExB,eAAe;QACf,MAAM,SAAS,GAAG,IAAI,mCAAc,EAAE,CAAC;QACvC,SAAS,CAAC,IAAI,GAAG,iBAAK,CAAC,KAAK,CAAC;QAE7B,0BAA0B;QAC1B,MAAM,UAAU,GAAG,IAAI,uDAAsB,EAAE,CAAC;QAChD,UAAU,CAAC,YAAY,GAAG,mBAAmB,CAAC;QAC9C,UAAU,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;QAE/B,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE;YACnD,0EAA0E;YAC1E,WAAW,CAAC,WAAW,GAAG,CAAC,UAAU,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5C;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,CAAC,WAAW,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAc,EAAE,SAAsB;QAC9D,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC;QACnC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC/B,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC;QAChD,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC;QAC1C,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC7B,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QACnC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAE/C,cAAc;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YACjC,KAAK,EAAE;gBACH,WAAW,EAAE,OAAO;aACvB;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC3B,IAAY,EACZ,WAA0B;QAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAC/C,KAAK,EAAE;gBACH,IAAI;aACP;YACD,SAAS,EAAE;gBACP,WAAW,EAAE;oBACT,KAAK,EAAE,IAAI;iBACd;aACJ;SACJ,CAAC,CAAC;QACH,IACI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1B,WAAW,CAAC,WAAW,CAAC,IAAI,CACxB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc,CACjD,CACJ,EACH;YACE,OAAO,MAAM,CAAC;SACjB;QACD,MAAM,IAAI,0BAAiB,EAAE,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAC,KAAK,EAAE,EAAC,EAAE,EAAC,EAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YACjC,SAAS,EAAE,CAAC,aAAa,CAAC;YAC1B,KAAK,EAAE,EAAC,IAAI,EAAC;SAChB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,MAAM,CACR,IAAY,EACZ,eAAgC,EAChC,eAAuB;QAEvB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAC,IAAI,EAAC,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,eAAuB;QAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAC7C,KAAK,EAAE;gBACH,IAAI;aACP;YACD,SAAS,EAAE;gBACP,WAAW,EAAE;oBACT,KAAK,EAAE,IAAI;iBACd;aACJ;SACJ,CAAC,CAAC;QACH,IACI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACxB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAK,CAAC,KAAK,CAAC,CAC9C,EACH;YACE,MAAM,IAAI,KAAK,CACX,sEAAsE,CACzE,CAAC;SACL;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAEO,YAAY,CAChB,IAAY,EACZ,eAAuB,EACvB,eAAuB;QAEvB,IAAI,IAAI,KAAK,eAAe,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,eAAe,eAAe,EAAE;gBAC7D,eAAe;gBACf,IAAI;aACP,CAAC,CAAC;YACH,MAAM,IAAI,0BAAiB,EAAE,CAAC;SACjC;IACL,CAAC;CACJ,CAAA;AAjLY,aAAa;IADzB,IAAA,mBAAU,GAAE;IAGJ,WAAA,IAAA,0BAAgB,EAAC,sBAAM,CAAC,CAAA;qCACL,oBAAU;QACd,2BAAiB;QACZ,kCAAkB;GALlC,aAAa,CAiLzB;AAjLY,sCAAa"}
|
package/package.json
CHANGED