@holoyan/adonisjs-permissions 0.1.0
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.md +9 -0
- package/README.md +661 -0
- package/build/configure.d.ts +2 -0
- package/build/configure.js +33 -0
- package/build/index.d.ts +8 -0
- package/build/index.js +17 -0
- package/build/providers/role_permission_provider.d.ts +12 -0
- package/build/providers/role_permission_provider.js +12 -0
- package/build/src/acl.d.ts +11 -0
- package/build/src/acl.js +29 -0
- package/build/src/decorators.d.ts +4 -0
- package/build/src/decorators.js +18 -0
- package/build/src/mixins/has_permissions.d.ts +133 -0
- package/build/src/mixins/has_permissions.js +19 -0
- package/build/src/mixins/has_role_permissions.d.ts +128 -0
- package/build/src/mixins/has_role_permissions.js +10 -0
- package/build/src/mixins/has_roles.d.ts +1 -0
- package/build/src/mixins/has_roles.js +47 -0
- package/build/src/models/model_permission.d.ts +12 -0
- package/build/src/models/model_permission.js +35 -0
- package/build/src/models/model_role.d.ts +11 -0
- package/build/src/models/model_role.js +31 -0
- package/build/src/models/permission.d.ts +16 -0
- package/build/src/models/permission.js +48 -0
- package/build/src/models/role.d.ts +16 -0
- package/build/src/models/role.js +48 -0
- package/build/src/morph_map.d.ts +8 -0
- package/build/src/morph_map.js +33 -0
- package/build/src/services/base_service.d.ts +14 -0
- package/build/src/services/base_service.js +12 -0
- package/build/src/services/helper.d.ts +21 -0
- package/build/src/services/helper.js +69 -0
- package/build/src/services/model_has_role_permissions.d.ts +48 -0
- package/build/src/services/model_has_role_permissions.js +172 -0
- package/build/src/services/model_service.d.ts +8 -0
- package/build/src/services/model_service.js +31 -0
- package/build/src/services/permissions/permission_has_model_roles.d.ts +20 -0
- package/build/src/services/permissions/permission_has_model_roles.js +67 -0
- package/build/src/services/permissions/permissions_service.d.ts +92 -0
- package/build/src/services/permissions/permissions_service.js +438 -0
- package/build/src/services/roles/role_has_model_permissions.d.ts +66 -0
- package/build/src/services/roles/role_has_model_permissions.js +152 -0
- package/build/src/services/roles/roles_service.d.ts +16 -0
- package/build/src/services/roles/roles_service.js +89 -0
- package/build/src/types.d.ts +21 -0
- package/build/src/types.js +1 -0
- package/build/stubs/configs/permissions.stub +20 -0
- package/build/stubs/main.d.ts +5 -0
- package/build/stubs/main.js +7 -0
- package/build/stubs/migrations/create_db.stub +97 -0
- package/package.json +95 -0
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { configure } from './configure.js';
|
|
2
|
+
export { stubsRoot } from './stubs/main.js';
|
|
3
|
+
export { Acl } from './src/acl.js';
|
|
4
|
+
export * from './src/models/role.js';
|
|
5
|
+
export * from './src/models/permission.js';
|
|
6
|
+
export * from './src/models/model_permission.js';
|
|
7
|
+
export * from './src/models/model_role.js';
|
|
8
|
+
export { MorphMap, getClassPath } from './src/decorators.js';
|
package/build/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|--------------------------------------------------------------------------
|
|
3
|
+
| Package entrypoint
|
|
4
|
+
|--------------------------------------------------------------------------
|
|
5
|
+
|
|
|
6
|
+
| Export values from the package entrypoint as you see fit.
|
|
7
|
+
|
|
|
8
|
+
*/
|
|
9
|
+
export { configure } from './configure.js';
|
|
10
|
+
export { stubsRoot } from './stubs/main.js';
|
|
11
|
+
export { Acl } from './src/acl.js';
|
|
12
|
+
export * from './src/models/role.js';
|
|
13
|
+
export * from './src/models/permission.js';
|
|
14
|
+
export * from './src/models/model_permission.js';
|
|
15
|
+
export * from './src/models/model_role.js';
|
|
16
|
+
// export * as HasPermissions from './src/mixins/has_permissions.js'
|
|
17
|
+
export { MorphMap, getClassPath } from './src/decorators.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ApplicationService } from '@adonisjs/core/types';
|
|
2
|
+
import MorphMap from '../src/morph_map.js';
|
|
3
|
+
declare module '@adonisjs/core/types' {
|
|
4
|
+
interface ContainerBindings {
|
|
5
|
+
morphMap: MorphMap;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export default class RolePermissionProvider {
|
|
9
|
+
protected app: ApplicationService;
|
|
10
|
+
constructor(app: ApplicationService);
|
|
11
|
+
register(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RoleHasModelPermissions } from './services/roles/role_has_model_permissions.js';
|
|
2
|
+
import { ModelHasRolePermissions } from './services/model_has_role_permissions.js';
|
|
3
|
+
import { AclModel } from './types.js';
|
|
4
|
+
import Role from './models/role.js';
|
|
5
|
+
import Permission from './models/permission.js';
|
|
6
|
+
import PermissionHasModelRoles from './services/permissions/permission_has_model_roles.js';
|
|
7
|
+
export declare class Acl {
|
|
8
|
+
static model(model: AclModel): ModelHasRolePermissions;
|
|
9
|
+
static role(role: Role | null): typeof Role | RoleHasModelPermissions;
|
|
10
|
+
static permission(permisison: Permission | null): typeof Permission | PermissionHasModelRoles;
|
|
11
|
+
}
|
package/build/src/acl.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { RoleHasModelPermissions } from './services/roles/role_has_model_permissions.js';
|
|
2
|
+
import { ModelHasRolePermissions } from './services/model_has_role_permissions.js';
|
|
3
|
+
import PermissionsService from './services/permissions/permissions_service.js';
|
|
4
|
+
import RolesService from './services/roles/roles_service.js';
|
|
5
|
+
import Role from './models/role.js';
|
|
6
|
+
import Permission from './models/permission.js';
|
|
7
|
+
import PermissionHasModelRoles from './services/permissions/permission_has_model_roles.js';
|
|
8
|
+
import ModelService from './services/model_service.js';
|
|
9
|
+
export class Acl {
|
|
10
|
+
static model(model) {
|
|
11
|
+
return new ModelHasRolePermissions(model, new RolesService(), new PermissionsService());
|
|
12
|
+
}
|
|
13
|
+
static role(role) {
|
|
14
|
+
if (role) {
|
|
15
|
+
return new RoleHasModelPermissions(role, new PermissionsService(), new ModelService());
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return Role;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
static permission(permisison) {
|
|
22
|
+
if (permisison) {
|
|
23
|
+
return new PermissionHasModelRoles(permisison, new RolesService(), new PermissionsService(), new ModelService());
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return Permission;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import app from '@adonisjs/core/services/app';
|
|
2
|
+
export function MorphMap(param) {
|
|
3
|
+
return function (target) {
|
|
4
|
+
const service = async function () {
|
|
5
|
+
var result = await app.container.make('morphMap');
|
|
6
|
+
result.set(param, target);
|
|
7
|
+
return param;
|
|
8
|
+
};
|
|
9
|
+
target.prototype.__morphMapName = service();
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function getClassPath(clazz) {
|
|
13
|
+
const morphMapName = clazz.prototype.__morphMapName;
|
|
14
|
+
if (!morphMapName) {
|
|
15
|
+
throw new Error('morph map name not specified');
|
|
16
|
+
}
|
|
17
|
+
return morphMapName;
|
|
18
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { NormalizeConstructor } from '@adonisjs/core/types/helpers';
|
|
2
|
+
import Permission from '../models/permission.js';
|
|
3
|
+
declare const _default: <Model extends NormalizeConstructor<import("@adonisjs/lucid/types/model").LucidModel>>(superclass: Model) => {
|
|
4
|
+
new (...args: any[]): {
|
|
5
|
+
getMorphMapName(): string;
|
|
6
|
+
getModelId(): number;
|
|
7
|
+
/**
|
|
8
|
+
* return all permissions including global, direct
|
|
9
|
+
*/
|
|
10
|
+
permissions(): Promise<Permission[] | null>;
|
|
11
|
+
$attributes: import("@adonisjs/lucid/types/model").ModelObject;
|
|
12
|
+
$extras: import("@adonisjs/lucid/types/model").ModelObject;
|
|
13
|
+
$original: import("@adonisjs/lucid/types/model").ModelObject;
|
|
14
|
+
$preloaded: {
|
|
15
|
+
[relation: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
|
|
16
|
+
};
|
|
17
|
+
$columns: undefined;
|
|
18
|
+
$sideloaded: import("@adonisjs/lucid/types/model").ModelObject;
|
|
19
|
+
$primaryKeyValue?: string | number | undefined;
|
|
20
|
+
$isPersisted: boolean;
|
|
21
|
+
$isNew: boolean;
|
|
22
|
+
$isLocal: boolean;
|
|
23
|
+
$dirty: import("@adonisjs/lucid/types/model").ModelObject;
|
|
24
|
+
$isDirty: boolean;
|
|
25
|
+
$isDeleted: boolean;
|
|
26
|
+
$options?: import("@adonisjs/lucid/types/model").ModelOptions | undefined;
|
|
27
|
+
$trx?: import("@adonisjs/lucid/types/database").TransactionClientContract | undefined;
|
|
28
|
+
$setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined): void;
|
|
29
|
+
useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): any;
|
|
30
|
+
useConnection(connection: string): any;
|
|
31
|
+
$getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/querybuilder").InsertQueryBuilderContract<unknown[]>;
|
|
32
|
+
$getQueryFor(action: "delete" | "refresh" | "update", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidRow>;
|
|
33
|
+
$setAttribute(key: string, value: any): void;
|
|
34
|
+
$getAttribute(key: string): any;
|
|
35
|
+
$getAttributeFromCache(key: string, callback: (value: any) => any): any;
|
|
36
|
+
$hasRelated(key: string): boolean;
|
|
37
|
+
$setRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
|
|
38
|
+
$pushRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
|
|
39
|
+
$getRelated(key: string, defaultValue?: any): import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null | undefined;
|
|
40
|
+
$consumeAdapterResult(adapterResult: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject | undefined): void;
|
|
41
|
+
$hydrateOriginals(): void;
|
|
42
|
+
fill(value: Partial<{}>, allowExtraProperties?: boolean | undefined): any;
|
|
43
|
+
merge(value: Partial<{}>, allowExtraProperties?: boolean | undefined): any;
|
|
44
|
+
enableForceUpdate(): any;
|
|
45
|
+
save(): Promise<any>;
|
|
46
|
+
delete(): Promise<void>;
|
|
47
|
+
refresh(): Promise<any>;
|
|
48
|
+
load: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
|
|
49
|
+
preload: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
|
|
50
|
+
loadAggregate: <Self extends any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback: (builder: RelatedBuilder) => void) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
|
|
51
|
+
loadCount: <Self_1 extends any, Name_1 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self_1>, RelatedBuilder_1 = Self_1[Name_1] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self_1[Name_1]["subQuery"] : never>(name: Name_1, callback?: ((builder: RelatedBuilder_1) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self_1>;
|
|
52
|
+
serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields | undefined, raw?: boolean | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
53
|
+
serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
54
|
+
serializeRelations(fields: undefined, raw: true): {
|
|
55
|
+
[key: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
|
|
56
|
+
};
|
|
57
|
+
serializeRelations(cherryPick: {
|
|
58
|
+
[relation: string]: import("@adonisjs/lucid/types/model").CherryPick;
|
|
59
|
+
} | undefined, raw: false | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
60
|
+
serializeRelations(cherryPick?: {
|
|
61
|
+
[relation: string]: import("@adonisjs/lucid/types/model").CherryPick;
|
|
62
|
+
} | undefined, raw?: boolean | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
63
|
+
serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
64
|
+
toObject(): import("@adonisjs/lucid/types/model").ModelObject;
|
|
65
|
+
toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
|
|
66
|
+
related<Name_2 extends undefined>(relation: Name_2): any[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? any[Name_2]["client"] : never;
|
|
67
|
+
};
|
|
68
|
+
find: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T> | null>;
|
|
69
|
+
readonly booted: boolean;
|
|
70
|
+
boot: () => void;
|
|
71
|
+
$columnsDefinitions: Map<string, import("@adonisjs/lucid/types/model").ModelColumnOptions>;
|
|
72
|
+
$relationsDefinitions: Map<string, import("@adonisjs/lucid/types/relations").RelationshipsContract>;
|
|
73
|
+
$computedDefinitions: Map<string, import("@adonisjs/lucid/types/model").ComputedOptions>;
|
|
74
|
+
primaryKey: string;
|
|
75
|
+
connection?: string | undefined;
|
|
76
|
+
namingStrategy: import("@adonisjs/lucid/types/model").NamingStrategyContract;
|
|
77
|
+
table: string;
|
|
78
|
+
selfAssignPrimaryKey: boolean;
|
|
79
|
+
$adapter: import("@adonisjs/lucid/types/model").AdapterContract;
|
|
80
|
+
useAdapter: (adapter: import("@adonisjs/lucid/types/model").AdapterContract) => void;
|
|
81
|
+
$hooks: import("@poppinss/hooks").default<any>;
|
|
82
|
+
$keys: {
|
|
83
|
+
attributesToColumns: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
84
|
+
attributesToSerialized: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
85
|
+
columnsToAttributes: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
86
|
+
columnsToSerialized: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
87
|
+
serializedToColumns: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
88
|
+
serializedToAttributes: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
89
|
+
};
|
|
90
|
+
$createFromAdapterResult: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, result?: import("@adonisjs/lucid/types/model").ModelObject | undefined, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject | undefined, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => InstanceType<T_1> | null;
|
|
91
|
+
$createMultipleFromAdapterResult: <T_2 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_2, results: import("@adonisjs/lucid/types/model").ModelObject[], sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject | undefined, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => InstanceType<T_2>[];
|
|
92
|
+
$addColumn: (name: string, options: Partial<import("@adonisjs/lucid/types/model").ColumnOptions>) => import("@adonisjs/lucid/types/model").ColumnOptions;
|
|
93
|
+
$hasColumn: (name: string) => boolean;
|
|
94
|
+
$getColumn: (name: string) => import("@adonisjs/lucid/types/model").ModelColumnOptions | undefined;
|
|
95
|
+
$addComputed: (name: string, options: Partial<import("@adonisjs/lucid/types/model").ComputedOptions>) => import("@adonisjs/lucid/types/model").ComputedOptions;
|
|
96
|
+
$hasComputed: (name: string) => boolean;
|
|
97
|
+
$getComputed: (name: string) => import("@adonisjs/lucid/types/model").ComputedOptions | undefined;
|
|
98
|
+
$addRelation: (name: string, type: "hasOne" | "hasMany" | "belongsTo" | "manyToMany" | "hasManyThrough", relatedModel: () => import("@adonisjs/lucid/types/model").LucidModel, options: import("@adonisjs/lucid/types/model").ModelRelationOptions) => void;
|
|
99
|
+
$hasRelation: (name: string) => boolean;
|
|
100
|
+
$getRelation: {
|
|
101
|
+
<Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Name_3 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<InstanceType<Model_1>>>(this: Model_1, name: Name_3): InstanceType<Model_1>[Name_3] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? InstanceType<Model_1>[Name_3]["client"]["relation"] : import("@adonisjs/lucid/types/relations").RelationshipsContract;
|
|
102
|
+
<Model_2 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_2, name: string): import("@adonisjs/lucid/types/relations").RelationshipsContract;
|
|
103
|
+
};
|
|
104
|
+
$defineProperty: <Model_3 extends import("@adonisjs/lucid/types/model").LucidModel, Prop extends keyof Model_3>(this: Model_3, propertyName: Prop, defaultValue: Model_3[Prop], strategy: "inherit" | "define" | ((value: Model_3[Prop]) => Model_3[Prop])) => void;
|
|
105
|
+
before: {
|
|
106
|
+
<Model_4 extends import("@adonisjs/lucid/types/model").LucidModel, Event_1 extends "find" | "fetch">(this: Model_4, event: Event_1, handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_4, InstanceType<Model_4>>, Event_1>): void;
|
|
107
|
+
<Model_5 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_5, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<[import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_5, InstanceType<Model_5>>, import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_5, InstanceType<Model_5>>], "paginate">): void;
|
|
108
|
+
<Model_6 extends import("@adonisjs/lucid/types/model").LucidModel, Event_2 extends import("@adonisjs/lucid/types/model").EventsList>(this: Model_6, event: Event_2, handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_6>, Event_2>): void;
|
|
109
|
+
};
|
|
110
|
+
after: {
|
|
111
|
+
<Model_7 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_7, event: "fetch", handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_7>[], "fetch">): void;
|
|
112
|
+
<Model_8 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_8, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelPaginatorContract<InstanceType<Model_8>>, "paginate">): void;
|
|
113
|
+
<Model_9 extends import("@adonisjs/lucid/types/model").LucidModel, Event_3 extends import("@adonisjs/lucid/types/model").EventsList>(this: Model_9, event: Event_3, handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_9>, Event_3>): void;
|
|
114
|
+
};
|
|
115
|
+
create: <T_3 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_3, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_3>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_3>>;
|
|
116
|
+
createMany: <T_4 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_4, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_4>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_4>[]>;
|
|
117
|
+
findOrFail: <T_5 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_5, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_5>>;
|
|
118
|
+
findBy: <T_6 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_6, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_6> | null>;
|
|
119
|
+
findByOrFail: <T_7 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_7, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_7>>;
|
|
120
|
+
first: <T_8 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_8, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_8> | null>;
|
|
121
|
+
firstOrFail: <T_9 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_9, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_9>>;
|
|
122
|
+
findMany: <T_10 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_10, value: any[], options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_10>[]>;
|
|
123
|
+
firstOrNew: <T_11 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_11, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_11>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_11>>> | undefined, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_11>>;
|
|
124
|
+
firstOrCreate: <T_12 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_12, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_12>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_12>>> | undefined, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_12>>;
|
|
125
|
+
updateOrCreate: <T_13 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_13, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_13>>>, updatePayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_13>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_13>>;
|
|
126
|
+
fetchOrNewUpMany: <T_14 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_14, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_14>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_14>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_14>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_14>[]>;
|
|
127
|
+
fetchOrCreateMany: <T_15 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_15, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_15>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_15>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_15>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_15>[]>;
|
|
128
|
+
updateOrCreateMany: <T_16 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_16, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_16>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_16>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_16>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_16>[]>;
|
|
129
|
+
all: <T_17 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_17, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_17>[]>;
|
|
130
|
+
query: <Model_10 extends import("@adonisjs/lucid/types/model").LucidModel, Result = InstanceType<Model_10>>(this: Model_10, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_10, Result>;
|
|
131
|
+
truncate: (cascade?: boolean | undefined) => Promise<void>;
|
|
132
|
+
} & Model;
|
|
133
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import PermissionsService from '../services/permissions/permissions_service.js';
|
|
2
|
+
export default (superclass) => {
|
|
3
|
+
class HasPermissionsMixin extends superclass {
|
|
4
|
+
getMorphMapName() {
|
|
5
|
+
throw new Error('method getMorphMapName must be implemented in target model, which will return string alias for model class');
|
|
6
|
+
}
|
|
7
|
+
getModelId() {
|
|
8
|
+
throw new Error('method getModelId must be implemented in target model, which will return key for current object');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* return all permissions including global, direct
|
|
12
|
+
*/
|
|
13
|
+
permissions() {
|
|
14
|
+
const service = new PermissionsService();
|
|
15
|
+
return service.all(this.getMorphMapName(), this.getModelId());
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return HasPermissionsMixin;
|
|
19
|
+
};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import type { NormalizeConstructor } from '@adonisjs/core/types/helpers';
|
|
2
|
+
declare const _default: <Model extends NormalizeConstructor<import("@adonisjs/lucid/types/model").LucidModel>>(superclass: Model) => {
|
|
3
|
+
new (...args: any[]): {
|
|
4
|
+
getMorphMapName(): string;
|
|
5
|
+
getModelId(): number;
|
|
6
|
+
$attributes: import("@adonisjs/lucid/types/model").ModelObject;
|
|
7
|
+
$extras: import("@adonisjs/lucid/types/model").ModelObject;
|
|
8
|
+
$original: import("@adonisjs/lucid/types/model").ModelObject;
|
|
9
|
+
$preloaded: {
|
|
10
|
+
[relation: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
|
|
11
|
+
};
|
|
12
|
+
$columns: undefined;
|
|
13
|
+
$sideloaded: import("@adonisjs/lucid/types/model").ModelObject;
|
|
14
|
+
$primaryKeyValue?: string | number | undefined;
|
|
15
|
+
$isPersisted: boolean;
|
|
16
|
+
$isNew: boolean;
|
|
17
|
+
$isLocal: boolean;
|
|
18
|
+
$dirty: import("@adonisjs/lucid/types/model").ModelObject;
|
|
19
|
+
$isDirty: boolean;
|
|
20
|
+
$isDeleted: boolean;
|
|
21
|
+
$options?: import("@adonisjs/lucid/types/model").ModelOptions | undefined;
|
|
22
|
+
$trx?: import("@adonisjs/lucid/types/database").TransactionClientContract | undefined;
|
|
23
|
+
$setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined): void;
|
|
24
|
+
useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): any;
|
|
25
|
+
useConnection(connection: string): any;
|
|
26
|
+
$getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/querybuilder").InsertQueryBuilderContract<unknown[]>;
|
|
27
|
+
$getQueryFor(action: "delete" | "refresh" | "update", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidRow>;
|
|
28
|
+
$setAttribute(key: string, value: any): void;
|
|
29
|
+
$getAttribute(key: string): any;
|
|
30
|
+
$getAttributeFromCache(key: string, callback: (value: any) => any): any;
|
|
31
|
+
$hasRelated(key: string): boolean;
|
|
32
|
+
$setRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
|
|
33
|
+
$pushRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
|
|
34
|
+
$getRelated(key: string, defaultValue?: any): import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null | undefined;
|
|
35
|
+
$consumeAdapterResult(adapterResult: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject | undefined): void;
|
|
36
|
+
$hydrateOriginals(): void;
|
|
37
|
+
fill(value: Partial<{}>, allowExtraProperties?: boolean | undefined): any;
|
|
38
|
+
merge(value: Partial<{}>, allowExtraProperties?: boolean | undefined): any;
|
|
39
|
+
enableForceUpdate(): any;
|
|
40
|
+
save(): Promise<any>;
|
|
41
|
+
delete(): Promise<void>;
|
|
42
|
+
refresh(): Promise<any>;
|
|
43
|
+
load: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
|
|
44
|
+
preload: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
|
|
45
|
+
loadAggregate: <Self extends any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback: (builder: RelatedBuilder) => void) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
|
|
46
|
+
loadCount: <Self_1 extends any, Name_1 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self_1>, RelatedBuilder_1 = Self_1[Name_1] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self_1[Name_1]["subQuery"] : never>(name: Name_1, callback?: ((builder: RelatedBuilder_1) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self_1>;
|
|
47
|
+
serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields | undefined, raw?: boolean | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
48
|
+
serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
49
|
+
serializeRelations(fields: undefined, raw: true): {
|
|
50
|
+
[key: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
|
|
51
|
+
};
|
|
52
|
+
serializeRelations(cherryPick: {
|
|
53
|
+
[relation: string]: import("@adonisjs/lucid/types/model").CherryPick;
|
|
54
|
+
} | undefined, raw: false | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
55
|
+
serializeRelations(cherryPick?: {
|
|
56
|
+
[relation: string]: import("@adonisjs/lucid/types/model").CherryPick;
|
|
57
|
+
} | undefined, raw?: boolean | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
58
|
+
serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick | undefined): import("@adonisjs/lucid/types/model").ModelObject;
|
|
59
|
+
toObject(): import("@adonisjs/lucid/types/model").ModelObject;
|
|
60
|
+
toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
|
|
61
|
+
related<Name_2 extends undefined>(relation: Name_2): any[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? any[Name_2]["client"] : never;
|
|
62
|
+
};
|
|
63
|
+
find: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T> | null>;
|
|
64
|
+
readonly booted: boolean;
|
|
65
|
+
boot: () => void;
|
|
66
|
+
$columnsDefinitions: Map<string, import("@adonisjs/lucid/types/model").ModelColumnOptions>;
|
|
67
|
+
$relationsDefinitions: Map<string, import("@adonisjs/lucid/types/relations").RelationshipsContract>;
|
|
68
|
+
$computedDefinitions: Map<string, import("@adonisjs/lucid/types/model").ComputedOptions>;
|
|
69
|
+
primaryKey: string;
|
|
70
|
+
connection?: string | undefined;
|
|
71
|
+
namingStrategy: import("@adonisjs/lucid/types/model").NamingStrategyContract;
|
|
72
|
+
table: string;
|
|
73
|
+
selfAssignPrimaryKey: boolean;
|
|
74
|
+
$adapter: import("@adonisjs/lucid/types/model").AdapterContract;
|
|
75
|
+
useAdapter: (adapter: import("@adonisjs/lucid/types/model").AdapterContract) => void;
|
|
76
|
+
$hooks: import("@poppinss/hooks").default<any>;
|
|
77
|
+
$keys: {
|
|
78
|
+
attributesToColumns: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
79
|
+
attributesToSerialized: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
80
|
+
columnsToAttributes: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
81
|
+
columnsToSerialized: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
82
|
+
serializedToColumns: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
83
|
+
serializedToAttributes: import("@adonisjs/lucid/types/model").ModelKeysContract;
|
|
84
|
+
};
|
|
85
|
+
$createFromAdapterResult: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, result?: import("@adonisjs/lucid/types/model").ModelObject | undefined, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject | undefined, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => InstanceType<T_1> | null;
|
|
86
|
+
$createMultipleFromAdapterResult: <T_2 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_2, results: import("@adonisjs/lucid/types/model").ModelObject[], sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject | undefined, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => InstanceType<T_2>[];
|
|
87
|
+
$addColumn: (name: string, options: Partial<import("@adonisjs/lucid/types/model").ColumnOptions>) => import("@adonisjs/lucid/types/model").ColumnOptions;
|
|
88
|
+
$hasColumn: (name: string) => boolean;
|
|
89
|
+
$getColumn: (name: string) => import("@adonisjs/lucid/types/model").ModelColumnOptions | undefined;
|
|
90
|
+
$addComputed: (name: string, options: Partial<import("@adonisjs/lucid/types/model").ComputedOptions>) => import("@adonisjs/lucid/types/model").ComputedOptions;
|
|
91
|
+
$hasComputed: (name: string) => boolean;
|
|
92
|
+
$getComputed: (name: string) => import("@adonisjs/lucid/types/model").ComputedOptions | undefined;
|
|
93
|
+
$addRelation: (name: string, type: "hasOne" | "hasMany" | "belongsTo" | "manyToMany" | "hasManyThrough", relatedModel: () => import("@adonisjs/lucid/types/model").LucidModel, options: import("@adonisjs/lucid/types/model").ModelRelationOptions) => void;
|
|
94
|
+
$hasRelation: (name: string) => boolean;
|
|
95
|
+
$getRelation: {
|
|
96
|
+
<Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Name_3 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<InstanceType<Model_1>>>(this: Model_1, name: Name_3): InstanceType<Model_1>[Name_3] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? InstanceType<Model_1>[Name_3]["client"]["relation"] : import("@adonisjs/lucid/types/relations").RelationshipsContract;
|
|
97
|
+
<Model_2 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_2, name: string): import("@adonisjs/lucid/types/relations").RelationshipsContract;
|
|
98
|
+
};
|
|
99
|
+
$defineProperty: <Model_3 extends import("@adonisjs/lucid/types/model").LucidModel, Prop extends keyof Model_3>(this: Model_3, propertyName: Prop, defaultValue: Model_3[Prop], strategy: "inherit" | "define" | ((value: Model_3[Prop]) => Model_3[Prop])) => void;
|
|
100
|
+
before: {
|
|
101
|
+
<Model_4 extends import("@adonisjs/lucid/types/model").LucidModel, Event_1 extends "find" | "fetch">(this: Model_4, event: Event_1, handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_4, InstanceType<Model_4>>, Event_1>): void;
|
|
102
|
+
<Model_5 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_5, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<[import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_5, InstanceType<Model_5>>, import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_5, InstanceType<Model_5>>], "paginate">): void;
|
|
103
|
+
<Model_6 extends import("@adonisjs/lucid/types/model").LucidModel, Event_2 extends import("@adonisjs/lucid/types/model").EventsList>(this: Model_6, event: Event_2, handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_6>, Event_2>): void;
|
|
104
|
+
};
|
|
105
|
+
after: {
|
|
106
|
+
<Model_7 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_7, event: "fetch", handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_7>[], "fetch">): void;
|
|
107
|
+
<Model_8 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_8, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelPaginatorContract<InstanceType<Model_8>>, "paginate">): void;
|
|
108
|
+
<Model_9 extends import("@adonisjs/lucid/types/model").LucidModel, Event_3 extends import("@adonisjs/lucid/types/model").EventsList>(this: Model_9, event: Event_3, handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_9>, Event_3>): void;
|
|
109
|
+
};
|
|
110
|
+
create: <T_3 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_3, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_3>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_3>>;
|
|
111
|
+
createMany: <T_4 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_4, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_4>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_4>[]>;
|
|
112
|
+
findOrFail: <T_5 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_5, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_5>>;
|
|
113
|
+
findBy: <T_6 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_6, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_6> | null>;
|
|
114
|
+
findByOrFail: <T_7 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_7, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_7>>;
|
|
115
|
+
first: <T_8 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_8, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_8> | null>;
|
|
116
|
+
firstOrFail: <T_9 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_9, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_9>>;
|
|
117
|
+
findMany: <T_10 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_10, value: any[], options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_10>[]>;
|
|
118
|
+
firstOrNew: <T_11 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_11, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_11>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_11>>> | undefined, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_11>>;
|
|
119
|
+
firstOrCreate: <T_12 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_12, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_12>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_12>>> | undefined, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_12>>;
|
|
120
|
+
updateOrCreate: <T_13 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_13, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_13>>>, updatePayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_13>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_13>>;
|
|
121
|
+
fetchOrNewUpMany: <T_14 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_14, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_14>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_14>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_14>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_14>[]>;
|
|
122
|
+
fetchOrCreateMany: <T_15 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_15, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_15>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_15>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_15>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_15>[]>;
|
|
123
|
+
updateOrCreateMany: <T_16 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_16, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_16>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_16>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_16>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions | undefined) => Promise<InstanceType<T_16>[]>;
|
|
124
|
+
all: <T_17 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_17, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => Promise<InstanceType<T_17>[]>;
|
|
125
|
+
query: <Model_10 extends import("@adonisjs/lucid/types/model").LucidModel, Result = InstanceType<Model_10>>(this: Model_10, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions | undefined) => import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_10, Result>;
|
|
126
|
+
truncate: (cascade?: boolean | undefined) => Promise<void>;
|
|
127
|
+
} & Model;
|
|
128
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default (superclass) => {
|
|
2
|
+
return class extends superclass {
|
|
3
|
+
getMorphMapName() {
|
|
4
|
+
throw new Error('method getMorphMapName must be implemented in target model, which will return string alias for model class');
|
|
5
|
+
}
|
|
6
|
+
getModelId() {
|
|
7
|
+
throw new Error('method getModelId must be implemented in target model, which will return key for current object');
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// import Role from '../models/role.js'
|
|
2
|
+
// import type { NormalizeConstructor } from '@adonisjs/core/types/helpers'
|
|
3
|
+
// import RolesService from '../services/roles_service.js'
|
|
4
|
+
export {};
|
|
5
|
+
// export default <
|
|
6
|
+
// Model extends NormalizeConstructor<import('@adonisjs/lucid/types/model').LucidModel>,
|
|
7
|
+
// >(
|
|
8
|
+
// superclass: Model
|
|
9
|
+
// ) => {
|
|
10
|
+
// class HasRolesMixin extends superclass {
|
|
11
|
+
// getMorphMapName(): string {
|
|
12
|
+
// throw new Error(
|
|
13
|
+
// 'method getMorphMapName must be implemented in target model, which will return string alias for model class'
|
|
14
|
+
// )
|
|
15
|
+
// }
|
|
16
|
+
// getModelId(): number | null {
|
|
17
|
+
// throw new Error(
|
|
18
|
+
// 'method getModelId must be implemented in target model, which will return key for current object'
|
|
19
|
+
// )
|
|
20
|
+
// }
|
|
21
|
+
// roles(): Promise<Role[] | null> {
|
|
22
|
+
// const service = new RolesService()
|
|
23
|
+
// return service.all(this.getMorphMapName(), this.getModelId())
|
|
24
|
+
// }
|
|
25
|
+
// hasRole(role: string | Role) {
|
|
26
|
+
// const service = new RolesService()
|
|
27
|
+
// return service.has(this.getMorphMapName(), this.getModelId(), role)
|
|
28
|
+
// }
|
|
29
|
+
// hasAllRoles(role: (string | Role)[]) {
|
|
30
|
+
// const service = new RolesService()
|
|
31
|
+
// return service.hasAll(this.getMorphMapName(), this.getModelId(), role)
|
|
32
|
+
// }
|
|
33
|
+
// hasAnyRole(role: (string | Role)[]) {
|
|
34
|
+
// const service = new RolesService()
|
|
35
|
+
// return service.hasAny(this.getMorphMapName(), this.getModelId(), role)
|
|
36
|
+
// }
|
|
37
|
+
// assigneRole(role: string | Role) {
|
|
38
|
+
// const service = new RolesService()
|
|
39
|
+
// return service.assigne(role, this)
|
|
40
|
+
// }
|
|
41
|
+
// revokeRole(role: string | Role) {
|
|
42
|
+
// const service = new RolesService()
|
|
43
|
+
// return service.revoke(role, this)
|
|
44
|
+
// }
|
|
45
|
+
// }
|
|
46
|
+
// return HasRolesMixin
|
|
47
|
+
// }
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { BaseModel } from '@adonisjs/lucid/orm';
|
|
3
|
+
export default class ModelPermission extends BaseModel {
|
|
4
|
+
static get table(): string;
|
|
5
|
+
id: number;
|
|
6
|
+
permissionId: number;
|
|
7
|
+
modelType: string;
|
|
8
|
+
modelId: number;
|
|
9
|
+
createdAt: DateTime;
|
|
10
|
+
updatedAt: DateTime;
|
|
11
|
+
static forModel: import("@adonisjs/lucid/types/model").QueryScope<import("@adonisjs/lucid/types/model").LucidModel, (query: import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidRow>, modelType: string, modelId: number | null) => void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
import { BaseModel, column, scope } from '@adonisjs/lucid/orm';
|
|
8
|
+
import config from '@adonisjs/core/services/config';
|
|
9
|
+
export default class ModelPermission extends BaseModel {
|
|
10
|
+
static get table() {
|
|
11
|
+
return config.get('permissions.permissionsConfig.tables.modelPermissions');
|
|
12
|
+
}
|
|
13
|
+
static forModel = scope((query, modelType, modelId) => {
|
|
14
|
+
query.where('model_type', modelType);
|
|
15
|
+
modelId === null ? query.whereNull('model_id') : query.where('model_id', modelId);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
__decorate([
|
|
19
|
+
column({ isPrimary: true })
|
|
20
|
+
], ModelPermission.prototype, "id", void 0);
|
|
21
|
+
__decorate([
|
|
22
|
+
column()
|
|
23
|
+
], ModelPermission.prototype, "permissionId", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
column()
|
|
26
|
+
], ModelPermission.prototype, "modelType", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
column()
|
|
29
|
+
], ModelPermission.prototype, "modelId", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
column.dateTime({ autoCreate: true })
|
|
32
|
+
], ModelPermission.prototype, "createdAt", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
column.dateTime({ autoCreate: true, autoUpdate: true })
|
|
35
|
+
], ModelPermission.prototype, "updatedAt", void 0);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { BaseModel } from '@adonisjs/lucid/orm';
|
|
3
|
+
export default class ModelRole extends BaseModel {
|
|
4
|
+
static get table(): string;
|
|
5
|
+
id: number;
|
|
6
|
+
roleId: number;
|
|
7
|
+
modelType: string;
|
|
8
|
+
modelId: number | null;
|
|
9
|
+
createdAt: DateTime;
|
|
10
|
+
updatedAt: DateTime;
|
|
11
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
import { BaseModel, column } from '@adonisjs/lucid/orm';
|
|
8
|
+
import config from '@adonisjs/core/services/config';
|
|
9
|
+
export default class ModelRole extends BaseModel {
|
|
10
|
+
static get table() {
|
|
11
|
+
return config.get('permissions.permissionsConfig.tables.modelRoles');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
__decorate([
|
|
15
|
+
column({ isPrimary: true })
|
|
16
|
+
], ModelRole.prototype, "id", void 0);
|
|
17
|
+
__decorate([
|
|
18
|
+
column()
|
|
19
|
+
], ModelRole.prototype, "roleId", void 0);
|
|
20
|
+
__decorate([
|
|
21
|
+
column()
|
|
22
|
+
], ModelRole.prototype, "modelType", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
column()
|
|
25
|
+
], ModelRole.prototype, "modelId", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
column.dateTime({ autoCreate: true })
|
|
28
|
+
], ModelRole.prototype, "createdAt", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
column.dateTime({ autoCreate: true, autoUpdate: true })
|
|
31
|
+
], ModelRole.prototype, "updatedAt", void 0);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { BaseModel } from '@adonisjs/lucid/orm';
|
|
3
|
+
import { AclModelInterface } from '../types.js';
|
|
4
|
+
export default class Permission extends BaseModel implements AclModelInterface {
|
|
5
|
+
static get table(): string;
|
|
6
|
+
getModelId(): number;
|
|
7
|
+
id: number;
|
|
8
|
+
slug: string;
|
|
9
|
+
title: string;
|
|
10
|
+
entityType: string | null;
|
|
11
|
+
entityId: number | null;
|
|
12
|
+
allowed: boolean;
|
|
13
|
+
scope: number;
|
|
14
|
+
createdAt: DateTime;
|
|
15
|
+
updatedAt: DateTime;
|
|
16
|
+
}
|