Skip to content

Commit 34fc239

Browse files
author
DylanBulmer
committed
add jwt util; update project and permission utils
1 parent c1ce022 commit 34fc239

6 files changed

Lines changed: 35 additions & 6 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"@swc/core": "^1.3.22",
3636
"@swc/jest": "^0.2.24",
3737
"@types/jest": "^29.0.3",
38+
"@types/jsonwebtoken": "^9.0.2",
3839
"@types/mongoose": "^5.11.97",
3940
"@types/node": "^18.7.21",
4041
"@types/uuid": "^9.0.1",

src/types/Ability.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
PureAbility,
77
} from "@casl/ability";
88
import type { AccessibleFieldsModel } from "@casl/mongoose";
9-
import type { IUser } from "../";
9+
import type { JwtPayload } from "./";
1010
import type { UserRoleType } from "./UserRole";
1111

1212
// setup action and subject types for ability
@@ -34,7 +34,7 @@ export type Ability<
3434
export type DefinePermissions<
3535
Document extends AccessibleFieldsModel<any>,
3636
Subject extends string,
37-
> = (user: IUser, builder: AbilityBuilder<Ability<Document, Subject>>) => void;
37+
> = (user: JwtPayload, builder: AbilityBuilder<Ability<Document, Subject>>) => void;
3838
export type Permissions<
3939
Document extends AccessibleFieldsModel<any>,
4040
Subject extends string,
@@ -45,7 +45,7 @@ export const DefineAbility = function DefineAbility<
4545
Document extends AccessibleFieldsModel<any>,
4646
Subject extends string,
4747
>(
48-
user: IUser,
48+
user: JwtPayload,
4949
permissions: Record<UserRoleType, DefinePermissions<Document, Subject>>,
5050
) {
5151
const builder = new AbilityBuilder(

src/types/JWT.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { JwtPayload as JsonWebTokenPayload} from "jsonwebtoken";
2+
import { IUser } from "../entities";
3+
4+
interface DefinfedJwtPayload extends JsonWebTokenPayload {
5+
iss: string;
6+
sub: string;
7+
jti: string;
8+
}
9+
10+
export type JwtPayload = DefinfedJwtPayload & IUser;

src/types/Task.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,11 @@
1-
export type TaskType = "classification" | "tagging" | "code-tagging" | "translation";
1+
export type TaskType =
2+
| "classification"
3+
| "tagging"
4+
| "code-tagging"
5+
| "translation";
6+
export enum AnnotationTask {
7+
Classification = "classification",
8+
Tagging = "tagging",
9+
CodeTaging = "code-tagging",
10+
Traslation = "translation",
11+
}

src/types/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
export * from "./Task";
21
export * from "./Ability";
3-
export * from "./UserRole";
42
export * from "./Flags";
3+
export * from "./JWT";
54
export * from "./Message";
5+
export * from "./Task";
6+
export * from "./UserRole";

yarn.lock

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1596,6 +1596,13 @@
15961596
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
15971597
integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
15981598

1599+
"@types/jsonwebtoken@^9.0.2":
1600+
version "9.0.2"
1601+
resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#9eeb56c76dd555039be2a3972218de5bd3b8d83e"
1602+
integrity sha512-drE6uz7QBKq1fYqqoFKTDRdFCPHd5TCub75BM+D+cMx7NU9hUz7SESLfC2fSCXVFMO5Yj8sOWHuGqPgjc+fz0Q==
1603+
dependencies:
1604+
"@types/node" "*"
1605+
15991606
"@types/keyv@^3.1.4":
16001607
version "3.1.4"
16011608
resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6"

0 commit comments

Comments
 (0)