@illustrisinteractive/sentinel-nest 0.0.6 → 0.1.11
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/config/config.json +24 -24
- package/dist/bin/resource.js +2 -1
- package/dist/bin/resource.js.map +1 -1
- package/dist/models/SecuredResource.d.ts +1 -0
- package/dist/src/generated/prisma/internal/class.js +1 -1
- package/dist/src/generated/prisma/internal/class.js.map +1 -1
- package/dist/src/generated/prisma/models/ModelHasRoles.d.ts +18 -18
- package/dist/src/generated/prisma/models/PermissionKeys.d.ts +10 -10
- package/dist/src/generated/prisma/models/RoleHasPermissions.d.ts +18 -18
- package/dist/src/generated/prisma/models/Roles.d.ts +15 -15
- package/dist/src/generated/prisma/models/Users.d.ts +10 -10
- package/dist/src/models/SecuredResource.d.ts +1 -0
- package/dist/src/sentinel.guard.js +4 -4
- package/dist/src/sentinel.guard.js.map +1 -1
- package/dist/src/sentinel.service.d.ts +15 -1
- package/dist/src/sentinel.service.js +57 -2
- package/dist/src/sentinel.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/models/index.js +43 -43
- package/models/role.js +22 -22
- package/models/rolehaspermission.js +43 -43
- package/package.json +1 -1
- package/prisma/migrations/20260227023704_init/migration.sql +74 -74
- package/prisma/migrations/migration_lock.toml +3 -3
- package/prisma/schema.prisma +62 -62
- package/prisma.config.ts +14 -14
- package/src/bin/migrations/1-create-permission.js +32 -32
- package/src/bin/migrations/2-create-role.js +29 -29
- package/src/bin/migrations/3-create-rolepermissions.js +46 -46
- package/src/bin/resource.ts +2 -1
- package/src/generated/prisma/browser.ts +49 -49
- package/src/generated/prisma/client.ts +69 -69
- package/src/generated/prisma/commonInputTypes.ts +302 -302
- package/src/generated/prisma/enums.ts +15 -15
- package/src/generated/prisma/internal/class.ts +250 -250
- package/src/generated/prisma/internal/prismaNamespace.ts +1213 -1213
- package/src/generated/prisma/internal/prismaNamespaceBrowser.ts +163 -163
- package/src/generated/prisma/models/ModelHasRoles.ts +1521 -1521
- package/src/generated/prisma/models/PermissionKeys.ts +1362 -1362
- package/src/generated/prisma/models/RoleHasPermissions.ts +1503 -1503
- package/src/generated/prisma/models/Roles.ts +1437 -1437
- package/src/generated/prisma/models/SequelizeMeta.ts +1032 -1032
- package/src/generated/prisma/models/Users.ts +1402 -1402
- package/src/generated/prisma/models.ts +16 -16
- package/src/models/SecuredResource.d.ts +8 -8
- package/src/models/SecuredResource.ts +1 -0
- package/src/models/SentinelConfig.d.ts +4 -4
- package/src/sentinel.guard.ts +13 -5
- package/src/sentinel.service.ts +74 -7
- package/dist/src/sentinel/resources/NewResource3.d.ts +0 -4
- package/dist/src/sentinel/resources/NewResource3.js +0 -18
- package/dist/src/sentinel/resources/NewResource3.js.map +0 -1
- package/dist/src/sentinel/resources/TestResource.d.ts +0 -4
- package/dist/src/sentinel/resources/TestResource.js +0 -18
- package/dist/src/sentinel/resources/TestResource.js.map +0 -1
- package/src/sentinel/resources/.sentinel/NewResource2.d.ts +0 -4
- package/src/sentinel/resources/.sentinel/NewResource2.js +0 -13
- package/src/sentinel/resources/.sentinel/NewResource2.js.map +0 -1
- package/src/sentinel/resources/.sentinel/NewResource3.d.ts +0 -4
- package/src/sentinel/resources/.sentinel/NewResource3.js +0 -18
- package/src/sentinel/resources/.sentinel/NewResource3.js.map +0 -1
- package/src/sentinel/resources/.sentinel/TestResource.d.ts +0 -5
- package/src/sentinel/resources/.sentinel/TestResource.js +0 -19
- package/src/sentinel/resources/.sentinel/TestResource.js.map +0 -1
- package/src/sentinel/resources/.sentinel/tsconfig.tsbuildinfo +0 -1
- package/src/sentinel/resources/NewResource3.ts +0 -18
- package/src/sentinel/resources/TestResource.ts +0 -18
- package/src/sentinel/resources/tsconfig.json +0 -26
- package/src/sentinel/sentinel.config.json +0 -39
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
const { Sequelize } = require('sequelize');
|
|
3
|
-
/** @type {import('sequelize-cli').Migration} */
|
|
4
|
-
module.exports = {
|
|
5
|
-
async up({ context: queryInterface }) {
|
|
6
|
-
await queryInterface.createTable('RoleHasPermissions', {
|
|
7
|
-
id: {
|
|
8
|
-
allowNull: false,
|
|
9
|
-
autoIncrement: true,
|
|
10
|
-
primaryKey: true,
|
|
11
|
-
type: Sequelize.INTEGER,
|
|
12
|
-
},
|
|
13
|
-
role: {
|
|
14
|
-
type: Sequelize.INTEGER,
|
|
15
|
-
references: {
|
|
16
|
-
model: {
|
|
17
|
-
tableName: 'Roles',
|
|
18
|
-
},
|
|
19
|
-
key: 'id',
|
|
20
|
-
},
|
|
21
|
-
allowNull: false,
|
|
22
|
-
},
|
|
23
|
-
permission: {
|
|
24
|
-
type: Sequelize.STRING,
|
|
25
|
-
references: {
|
|
26
|
-
model: {
|
|
27
|
-
tableName: 'PermissionKeys',
|
|
28
|
-
},
|
|
29
|
-
key: 'id',
|
|
30
|
-
},
|
|
31
|
-
allowNull: false,
|
|
32
|
-
},
|
|
33
|
-
createdAt: {
|
|
34
|
-
allowNull: false,
|
|
35
|
-
type: Sequelize.DATE,
|
|
36
|
-
},
|
|
37
|
-
updatedAt: {
|
|
38
|
-
allowNull: false,
|
|
39
|
-
type: Sequelize.DATE,
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
},
|
|
43
|
-
async down({ context: queryInterface }) {
|
|
44
|
-
await queryInterface.dropTable('RoleHasPermissions');
|
|
45
|
-
},
|
|
46
|
-
};
|
|
1
|
+
'use strict';
|
|
2
|
+
const { Sequelize } = require('sequelize');
|
|
3
|
+
/** @type {import('sequelize-cli').Migration} */
|
|
4
|
+
module.exports = {
|
|
5
|
+
async up({ context: queryInterface }) {
|
|
6
|
+
await queryInterface.createTable('RoleHasPermissions', {
|
|
7
|
+
id: {
|
|
8
|
+
allowNull: false,
|
|
9
|
+
autoIncrement: true,
|
|
10
|
+
primaryKey: true,
|
|
11
|
+
type: Sequelize.INTEGER,
|
|
12
|
+
},
|
|
13
|
+
role: {
|
|
14
|
+
type: Sequelize.INTEGER,
|
|
15
|
+
references: {
|
|
16
|
+
model: {
|
|
17
|
+
tableName: 'Roles',
|
|
18
|
+
},
|
|
19
|
+
key: 'id',
|
|
20
|
+
},
|
|
21
|
+
allowNull: false,
|
|
22
|
+
},
|
|
23
|
+
permission: {
|
|
24
|
+
type: Sequelize.STRING,
|
|
25
|
+
references: {
|
|
26
|
+
model: {
|
|
27
|
+
tableName: 'PermissionKeys',
|
|
28
|
+
},
|
|
29
|
+
key: 'id',
|
|
30
|
+
},
|
|
31
|
+
allowNull: false,
|
|
32
|
+
},
|
|
33
|
+
createdAt: {
|
|
34
|
+
allowNull: false,
|
|
35
|
+
type: Sequelize.DATE,
|
|
36
|
+
},
|
|
37
|
+
updatedAt: {
|
|
38
|
+
allowNull: false,
|
|
39
|
+
type: Sequelize.DATE,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
async down({ context: queryInterface }) {
|
|
44
|
+
await queryInterface.dropTable('RoleHasPermissions');
|
|
45
|
+
},
|
|
46
|
+
};
|
package/src/bin/resource.ts
CHANGED
|
@@ -40,7 +40,7 @@ export const resource = async (name: string, manage: boolean) => {
|
|
|
40
40
|
`export class ${name} {}`,
|
|
41
41
|
);
|
|
42
42
|
resourceFile.addImportDeclaration({
|
|
43
|
-
moduleSpecifier: '@
|
|
43
|
+
moduleSpecifier: '@illustrisinteractive/sentinel',
|
|
44
44
|
namedImports: [
|
|
45
45
|
{ name: 'SecuredResource' },
|
|
46
46
|
{ name: 'SecuredResourceAction' },
|
|
@@ -68,6 +68,7 @@ export const resource = async (name: string, manage: boolean) => {
|
|
|
68
68
|
statements: [
|
|
69
69
|
`Object.keys(${name}.actions).forEach((key) => {
|
|
70
70
|
${name}.actions[key].source = '${name}';
|
|
71
|
+
${name}.actions[key].resource = key;
|
|
71
72
|
});`,
|
|
72
73
|
],
|
|
73
74
|
});
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
// biome-ignore-all lint: generated file
|
|
5
|
-
// @ts-nocheck
|
|
6
|
-
/*
|
|
7
|
-
* This file should be your main import to use Prisma-related types and utilities in a browser.
|
|
8
|
-
* Use it to get access to models, enums, and input types.
|
|
9
|
-
*
|
|
10
|
-
* This file does not contain a `PrismaClient` class, nor several other helpers that are intended as server-side only.
|
|
11
|
-
* See `client.ts` for the standard, server-side entry point.
|
|
12
|
-
*
|
|
13
|
-
* 🟢 You can import this file directly.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import * as Prisma from './internal/prismaNamespaceBrowser.js'
|
|
17
|
-
export { Prisma }
|
|
18
|
-
export * as $Enums from './enums.js'
|
|
19
|
-
export * from './enums.js';
|
|
20
|
-
/**
|
|
21
|
-
* Model ModelHasRoles
|
|
22
|
-
*
|
|
23
|
-
*/
|
|
24
|
-
export type ModelHasRoles = Prisma.ModelHasRolesModel
|
|
25
|
-
/**
|
|
26
|
-
* Model PermissionKeys
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
29
|
-
export type PermissionKeys = Prisma.PermissionKeysModel
|
|
30
|
-
/**
|
|
31
|
-
* Model RoleHasPermissions
|
|
32
|
-
*
|
|
33
|
-
*/
|
|
34
|
-
export type RoleHasPermissions = Prisma.RoleHasPermissionsModel
|
|
35
|
-
/**
|
|
36
|
-
* Model Roles
|
|
37
|
-
*
|
|
38
|
-
*/
|
|
39
|
-
export type Roles = Prisma.RolesModel
|
|
40
|
-
/**
|
|
41
|
-
* Model SequelizeMeta
|
|
42
|
-
*
|
|
43
|
-
*/
|
|
44
|
-
export type SequelizeMeta = Prisma.SequelizeMetaModel
|
|
45
|
-
/**
|
|
46
|
-
* Model Users
|
|
47
|
-
*
|
|
48
|
-
*/
|
|
49
|
-
export type Users = Prisma.UsersModel
|
|
1
|
+
|
|
2
|
+
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
// biome-ignore-all lint: generated file
|
|
5
|
+
// @ts-nocheck
|
|
6
|
+
/*
|
|
7
|
+
* This file should be your main import to use Prisma-related types and utilities in a browser.
|
|
8
|
+
* Use it to get access to models, enums, and input types.
|
|
9
|
+
*
|
|
10
|
+
* This file does not contain a `PrismaClient` class, nor several other helpers that are intended as server-side only.
|
|
11
|
+
* See `client.ts` for the standard, server-side entry point.
|
|
12
|
+
*
|
|
13
|
+
* 🟢 You can import this file directly.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import * as Prisma from './internal/prismaNamespaceBrowser.js'
|
|
17
|
+
export { Prisma }
|
|
18
|
+
export * as $Enums from './enums.js'
|
|
19
|
+
export * from './enums.js';
|
|
20
|
+
/**
|
|
21
|
+
* Model ModelHasRoles
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
export type ModelHasRoles = Prisma.ModelHasRolesModel
|
|
25
|
+
/**
|
|
26
|
+
* Model PermissionKeys
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
export type PermissionKeys = Prisma.PermissionKeysModel
|
|
30
|
+
/**
|
|
31
|
+
* Model RoleHasPermissions
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
export type RoleHasPermissions = Prisma.RoleHasPermissionsModel
|
|
35
|
+
/**
|
|
36
|
+
* Model Roles
|
|
37
|
+
*
|
|
38
|
+
*/
|
|
39
|
+
export type Roles = Prisma.RolesModel
|
|
40
|
+
/**
|
|
41
|
+
* Model SequelizeMeta
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
44
|
+
export type SequelizeMeta = Prisma.SequelizeMetaModel
|
|
45
|
+
/**
|
|
46
|
+
* Model Users
|
|
47
|
+
*
|
|
48
|
+
*/
|
|
49
|
+
export type Users = Prisma.UsersModel
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
// biome-ignore-all lint: generated file
|
|
5
|
-
// @ts-nocheck
|
|
6
|
-
/*
|
|
7
|
-
* This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types.
|
|
8
|
-
* If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead.
|
|
9
|
-
*
|
|
10
|
-
* 🟢 You can import this file directly.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import * as process from 'node:process'
|
|
14
|
-
import * as path from 'node:path'
|
|
15
|
-
|
|
16
|
-
import * as runtime from "@prisma/client/runtime/client"
|
|
17
|
-
import * as $Enums from "./enums.js"
|
|
18
|
-
import * as $Class from "./internal/class.js"
|
|
19
|
-
import * as Prisma from "./internal/prismaNamespace.js"
|
|
20
|
-
|
|
21
|
-
export * as $Enums from './enums.js'
|
|
22
|
-
export * from "./enums.js"
|
|
23
|
-
/**
|
|
24
|
-
* ## Prisma Client
|
|
25
|
-
*
|
|
26
|
-
* Type-safe database client for TypeScript
|
|
27
|
-
* @example
|
|
28
|
-
* ```
|
|
29
|
-
* const prisma = new PrismaClient()
|
|
30
|
-
* // Fetch zero or more ModelHasRoles
|
|
31
|
-
* const modelHasRoles = await prisma.modelHasRoles.findMany()
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
|
-
* Read more in our [docs](https://pris.ly/d/client).
|
|
35
|
-
*/
|
|
36
|
-
export const PrismaClient = $Class.getPrismaClientClass()
|
|
37
|
-
export type PrismaClient<LogOpts extends Prisma.LogLevel = never, OmitOpts extends Prisma.PrismaClientOptions["omit"] = Prisma.PrismaClientOptions["omit"], ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = $Class.PrismaClient<LogOpts, OmitOpts, ExtArgs>
|
|
38
|
-
export { Prisma }
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Model ModelHasRoles
|
|
42
|
-
*
|
|
43
|
-
*/
|
|
44
|
-
export type ModelHasRoles = Prisma.ModelHasRolesModel
|
|
45
|
-
/**
|
|
46
|
-
* Model PermissionKeys
|
|
47
|
-
*
|
|
48
|
-
*/
|
|
49
|
-
export type PermissionKeys = Prisma.PermissionKeysModel
|
|
50
|
-
/**
|
|
51
|
-
* Model RoleHasPermissions
|
|
52
|
-
*
|
|
53
|
-
*/
|
|
54
|
-
export type RoleHasPermissions = Prisma.RoleHasPermissionsModel
|
|
55
|
-
/**
|
|
56
|
-
* Model Roles
|
|
57
|
-
*
|
|
58
|
-
*/
|
|
59
|
-
export type Roles = Prisma.RolesModel
|
|
60
|
-
/**
|
|
61
|
-
* Model SequelizeMeta
|
|
62
|
-
*
|
|
63
|
-
*/
|
|
64
|
-
export type SequelizeMeta = Prisma.SequelizeMetaModel
|
|
65
|
-
/**
|
|
66
|
-
* Model Users
|
|
67
|
-
*
|
|
68
|
-
*/
|
|
69
|
-
export type Users = Prisma.UsersModel
|
|
1
|
+
|
|
2
|
+
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
// biome-ignore-all lint: generated file
|
|
5
|
+
// @ts-nocheck
|
|
6
|
+
/*
|
|
7
|
+
* This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types.
|
|
8
|
+
* If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead.
|
|
9
|
+
*
|
|
10
|
+
* 🟢 You can import this file directly.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import * as process from 'node:process'
|
|
14
|
+
import * as path from 'node:path'
|
|
15
|
+
|
|
16
|
+
import * as runtime from "@prisma/client/runtime/client"
|
|
17
|
+
import * as $Enums from "./enums.js"
|
|
18
|
+
import * as $Class from "./internal/class.js"
|
|
19
|
+
import * as Prisma from "./internal/prismaNamespace.js"
|
|
20
|
+
|
|
21
|
+
export * as $Enums from './enums.js'
|
|
22
|
+
export * from "./enums.js"
|
|
23
|
+
/**
|
|
24
|
+
* ## Prisma Client
|
|
25
|
+
*
|
|
26
|
+
* Type-safe database client for TypeScript
|
|
27
|
+
* @example
|
|
28
|
+
* ```
|
|
29
|
+
* const prisma = new PrismaClient()
|
|
30
|
+
* // Fetch zero or more ModelHasRoles
|
|
31
|
+
* const modelHasRoles = await prisma.modelHasRoles.findMany()
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* Read more in our [docs](https://pris.ly/d/client).
|
|
35
|
+
*/
|
|
36
|
+
export const PrismaClient = $Class.getPrismaClientClass()
|
|
37
|
+
export type PrismaClient<LogOpts extends Prisma.LogLevel = never, OmitOpts extends Prisma.PrismaClientOptions["omit"] = Prisma.PrismaClientOptions["omit"], ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = $Class.PrismaClient<LogOpts, OmitOpts, ExtArgs>
|
|
38
|
+
export { Prisma }
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Model ModelHasRoles
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
44
|
+
export type ModelHasRoles = Prisma.ModelHasRolesModel
|
|
45
|
+
/**
|
|
46
|
+
* Model PermissionKeys
|
|
47
|
+
*
|
|
48
|
+
*/
|
|
49
|
+
export type PermissionKeys = Prisma.PermissionKeysModel
|
|
50
|
+
/**
|
|
51
|
+
* Model RoleHasPermissions
|
|
52
|
+
*
|
|
53
|
+
*/
|
|
54
|
+
export type RoleHasPermissions = Prisma.RoleHasPermissionsModel
|
|
55
|
+
/**
|
|
56
|
+
* Model Roles
|
|
57
|
+
*
|
|
58
|
+
*/
|
|
59
|
+
export type Roles = Prisma.RolesModel
|
|
60
|
+
/**
|
|
61
|
+
* Model SequelizeMeta
|
|
62
|
+
*
|
|
63
|
+
*/
|
|
64
|
+
export type SequelizeMeta = Prisma.SequelizeMetaModel
|
|
65
|
+
/**
|
|
66
|
+
* Model Users
|
|
67
|
+
*
|
|
68
|
+
*/
|
|
69
|
+
export type Users = Prisma.UsersModel
|