identity-admin 1.28.25 → 1.28.27
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/README.md +3 -150
- package/lib/controllers/DashboardController.js +2 -0
- package/lib/controllers/PermissionController.d.ts +6 -0
- package/lib/controllers/PermissionController.js +52 -0
- package/lib/controllers/ResourceController.js +4 -2
- package/lib/models/adminpermission/AdminPermission.d.ts +6 -11
- package/lib/models/adminpermission/AdminPermission.js +17 -13
- package/lib/models/language/ILanguage.d.ts +8 -0
- package/lib/models/language/ILanguage.js +8 -0
- package/lib/models/language/LanguageSchema.d.ts +9 -0
- package/lib/models/language/LanguageSchema.js +17 -0
- package/lib/models/permission/Permission.d.ts +5 -1
- package/lib/models/permission/Permission.js +22 -15
- package/lib/models/permissiongroup/IPermissionGroup.d.ts +15 -0
- package/lib/models/permissiongroup/IPermissionGroup.js +2 -0
- package/lib/models/permissiongroup/PermissionGroup.d.ts +6 -0
- package/lib/models/permissiongroup/PermissionGroup.js +23 -0
- package/lib/repositories/AdminPermissionRepository.d.ts +7 -0
- package/lib/repositories/AdminPermissionRepository.js +23 -0
- package/lib/repositories/PermissionGroupRepository.d.ts +7 -0
- package/lib/repositories/PermissionGroupRepository.js +23 -0
- package/lib/repositories/PermissionRepository.d.ts +7 -0
- package/lib/repositories/PermissionRepository.js +23 -0
- package/lib/resources/AdminPermissionResource.d.ts +5 -0
- package/lib/resources/AdminPermissionResource.js +36 -0
- package/lib/resources/PermissionGroupResource.d.ts +5 -0
- package/lib/resources/PermissionGroupResource.js +60 -0
- package/lib/resources/PermissionsResource.d.ts +5 -0
- package/lib/resources/PermissionsResource.js +23 -0
- package/lib/resources/parents.d.ts +8 -0
- package/lib/resources/parents.js +9 -1
- package/lib/seeds/PermissionSeeder.d.ts +4 -0
- package/lib/seeds/PermissionSeeder.js +56 -0
- package/lib/types/IConfigurationFile.d.ts +1 -0
- package/lib/types/helpers.d.ts +3 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -143,153 +143,6 @@ Dashboard constructor to create new instance from idntity-admin.
|
|
|
143
143
|
}
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
##
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
- Enable the admin notifications in the configuration file of the dashboard.
|
|
151
|
-
> Configuration.ts
|
|
152
|
-
|
|
153
|
-
```Typescript
|
|
154
|
-
import { IConfiguartionFile } from "identity-admin/lib/types/IConfigurationFile";
|
|
155
|
-
|
|
156
|
-
export const configuration: IConfiguartionFile = {
|
|
157
|
-
textFieldSize: 'small',
|
|
158
|
-
defaultRowsPerPage: 50,
|
|
159
|
-
adminNotifications: true // enable admin notifications
|
|
160
|
-
}
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
- Add these lines for the admin notification repository in the inversify container.
|
|
164
|
-
> RepositoryTypes.ts
|
|
165
|
-
|
|
166
|
-
```Typescript
|
|
167
|
-
IAdminNotificationRepository: Symbol.for('IAdminNotificationRepository')
|
|
168
|
-
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
> RepositoryInversify.ts
|
|
172
|
-
|
|
173
|
-
```Typescript
|
|
174
|
-
container.bind<IAdminNotificationRepository>(TYPES.IAdminNotificationRepository).to(AdminNotificationRepository);
|
|
175
|
-
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
- Create new dashboard controller for the admin notifications CRUD operations and another controller for the notifications services.
|
|
179
|
-
> AdminNotificationController.ts
|
|
180
|
-
|
|
181
|
-
```TypeScript
|
|
182
|
-
import { controller } from "inversify-express-utils";
|
|
183
|
-
import { defaultHeaders, isSessionAuth } from "@pbb/middlewares/isAuth";
|
|
184
|
-
import DashboardController from "identity-admin/lib/controllers/DashboardController";
|
|
185
|
-
import { inject } from "inversify";
|
|
186
|
-
import TYPES from "@pbb/container/types";
|
|
187
|
-
import AdminNotificationRepository from "identity-admin/lib/repositories/AdminNotificationRepository";
|
|
188
|
-
import { modelConfigurations } from "@pbb/settings";
|
|
189
|
-
import AdminNotificationsResource from "identity-admin/lib/resources/AdminNotificationsResource";
|
|
190
|
-
|
|
191
|
-
@controller("/v1/admin/adminNotifications", isSessionAuth, defaultHeaders) // admin can be changed according to your base route
|
|
192
|
-
export default class DashboardAdminNotificationController extends DashboardController {
|
|
193
|
-
constructor(
|
|
194
|
-
@inject(TYPES.IAdminNotificationRepository)
|
|
195
|
-
private adminNotificationRepository: AdminNotificationRepository
|
|
196
|
-
) {
|
|
197
|
-
super(
|
|
198
|
-
AdminNotificationsResource,
|
|
199
|
-
adminNotificationRepository,
|
|
200
|
-
undefined,
|
|
201
|
-
modelConfigurations
|
|
202
|
-
);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
> DashboardNotifications.ts
|
|
209
|
-
|
|
210
|
-
```TypeScript
|
|
211
|
-
import { defaultHeaders, isSessionAuth } from "@pbb/middlewares/isAuth";
|
|
212
|
-
import { controller } from "inversify-express-utils";
|
|
213
|
-
|
|
214
|
-
import NotificationController from "identity-admin/lib/controllers/AdminNotificationController";
|
|
215
|
-
|
|
216
|
-
@controller("/v1/admin/notifications", isSessionAuth, defaultHeaders) // You can change the base route as your need.
|
|
217
|
-
export default class DashboardNotificationController extends NotificationController {
|
|
218
|
-
constructor() {
|
|
219
|
-
super();
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
- Import these 2 controllers in the index file of the controllers folder.
|
|
227
|
-
> index.ts
|
|
228
|
-
|
|
229
|
-
```Typescript
|
|
230
|
-
import './AdminNotificationController'
|
|
231
|
-
import './DashboardNotifications';
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
- Add the resource file of the admin notifications in your index file of the resources folder.
|
|
235
|
-
> index.ts
|
|
236
|
-
|
|
237
|
-
```Typescript
|
|
238
|
-
// other imports
|
|
239
|
-
import AdminNotificationsResource from 'identity-admin/lib/resources/AdminNotificationsResource'
|
|
240
|
-
|
|
241
|
-
....
|
|
242
|
-
|
|
243
|
-
const resources: IResourceFile[] = [
|
|
244
|
-
// other resources
|
|
245
|
-
...
|
|
246
|
-
AdminNotificationsResource,
|
|
247
|
-
...
|
|
248
|
-
];
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
#### Add new notification:
|
|
252
|
-
|
|
253
|
-
`To add a new notification just call the AdminNotificationCreation class as below`
|
|
254
|
-
|
|
255
|
-
```Typescript
|
|
256
|
-
|
|
257
|
-
import {
|
|
258
|
-
AdminNotificationCreation,
|
|
259
|
-
NotificationNavigationType,
|
|
260
|
-
} from "identity-admin/lib/helpers/AdminNotifications/AdminNotificationCreation";
|
|
261
|
-
|
|
262
|
-
const record = await AdminNotificationCreation.insert({
|
|
263
|
-
title: "Notification title",
|
|
264
|
-
navigateTo: NotificationNavigationType.LIST,
|
|
265
|
-
type: "Any notification type",
|
|
266
|
-
modelName: ModelNames.User,
|
|
267
|
-
});
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
- In case you choose **NotificationNavigationType.LIST** then you should provide a model name to be navigated to
|
|
271
|
-
- In case you choose **NotificationNavigationType.SHOW** then you should provide a model name to be navigated to and the relatedId of the record to be shown
|
|
272
|
-
- In case you choose **NotificationNavigationType.EXTERNAL_LINK** then you should provide the external link
|
|
273
|
-
|
|
274
|
-
#### The Frontend code:
|
|
275
|
-
|
|
276
|
-
- Add the notification provider just before the router.
|
|
277
|
-
> app.tsx
|
|
278
|
-
|
|
279
|
-
```tsx
|
|
280
|
-
import { NotificationsContextProvider } from 'identity-admin-ui';
|
|
281
|
-
|
|
282
|
-
<NotificationsContextProvider notificationsUrl="notifications">
|
|
283
|
-
<Router />
|
|
284
|
-
</NotificationsContextProvider>;
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
- Add the notification icon in the dashboard header.
|
|
288
|
-
> DashboardHeader.tsx
|
|
289
|
-
|
|
290
|
-
```tsx
|
|
291
|
-
const showNotifications = resources?.appConfigurations?.adminNotifications;
|
|
292
|
-
|
|
293
|
-
{showNotifications && <NotificationPopover />} // Add it just above the account popover
|
|
294
|
-
<AccountPopover userType={userType} />
|
|
295
|
-
```
|
|
146
|
+
## Plugins:
|
|
147
|
+
- [Permissions](./docs/permissions.md)
|
|
148
|
+
- [Admin Notification](./docs/adminNotifications.md)
|
|
@@ -231,6 +231,7 @@ let DashboardController = DashboardController_1 = class DashboardController {
|
|
|
231
231
|
sort: sortQuery,
|
|
232
232
|
filter,
|
|
233
233
|
populate: modifiedPopulatedObject,
|
|
234
|
+
select: modifiedResource.listProperties
|
|
234
235
|
});
|
|
235
236
|
}
|
|
236
237
|
else {
|
|
@@ -239,6 +240,7 @@ let DashboardController = DashboardController_1 = class DashboardController {
|
|
|
239
240
|
filter,
|
|
240
241
|
paginateParams: paginateParams,
|
|
241
242
|
populate: modifiedPopulatedObject,
|
|
243
|
+
select: modifiedResource.listProperties
|
|
242
244
|
});
|
|
243
245
|
records = page.records;
|
|
244
246
|
pageInfo = page.pageInfo;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
9
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
const inversify_express_utils_1 = require("inversify-express-utils");
|
|
25
|
+
const ResponseUtils_1 = __importDefault(require("../utils/ResponseUtils"));
|
|
26
|
+
const inversify_1 = require("inversify");
|
|
27
|
+
const PermissionFetcher_1 = require("../helpers/Permissions/PermissionFetcher");
|
|
28
|
+
const Permission_1 = __importDefault(require("../models/permission/Permission"));
|
|
29
|
+
const PermissionGroup_1 = require("../models/permissiongroup/PermissionGroup");
|
|
30
|
+
let PermissionController = class PermissionController {
|
|
31
|
+
constructor() { }
|
|
32
|
+
getAll(req, res) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const permissionGroupId = req.query.id;
|
|
35
|
+
const permissionFetcher = new PermissionFetcher_1.PermissionFetcher(Permission_1.default, permissionGroupId);
|
|
36
|
+
const mappedPermissions = yield permissionFetcher.fetch();
|
|
37
|
+
return ResponseUtils_1.default.ok(res, {
|
|
38
|
+
permissions: mappedPermissions,
|
|
39
|
+
permissionGroup: permissionGroupId ? yield PermissionGroup_1.PermissionGroup.findById(permissionGroupId) : undefined,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, inversify_express_utils_1.httpGet)('/all'),
|
|
46
|
+
__param(0, (0, inversify_express_utils_1.request)()),
|
|
47
|
+
__param(1, (0, inversify_express_utils_1.response)())
|
|
48
|
+
], PermissionController.prototype, "getAll", null);
|
|
49
|
+
PermissionController = __decorate([
|
|
50
|
+
(0, inversify_1.injectable)()
|
|
51
|
+
], PermissionController);
|
|
52
|
+
exports.default = PermissionController;
|
|
@@ -50,6 +50,7 @@ const StringUtils_1 = __importDefault(require("../utils/StringUtils"));
|
|
|
50
50
|
const ResourceGenerator_1 = __importDefault(require("../helpers/ResourceGenerator"));
|
|
51
51
|
const inversify_1 = require("inversify");
|
|
52
52
|
const PermissionResource_1 = require("../helpers/Permissions/PermissionResource");
|
|
53
|
+
const Permission_1 = __importDefault(require("../models/permission/Permission"));
|
|
53
54
|
let ResourceController = class ResourceController {
|
|
54
55
|
constructor(resourceFiles, configurations, modelConfigurations, PermissionModel) {
|
|
55
56
|
this.resourceFiles = resourceFiles;
|
|
@@ -58,7 +59,7 @@ let ResourceController = class ResourceController {
|
|
|
58
59
|
this.PermissionModel = PermissionModel;
|
|
59
60
|
}
|
|
60
61
|
index(req, res) {
|
|
61
|
-
var _a, _b;
|
|
62
|
+
var _a, _b, _c;
|
|
62
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
64
|
var modifiedResource = {};
|
|
64
65
|
modifiedResource.modelParents = {};
|
|
@@ -68,7 +69,8 @@ let ResourceController = class ResourceController {
|
|
|
68
69
|
modifiedResource.appConfigurations.showMainActions = (_a = modifiedResource.appConfigurations.showMainActions) !== null && _a !== void 0 ? _a : true;
|
|
69
70
|
modifiedResource.appConfigurations.adminNotifications = (_b = modifiedResource.appConfigurations.adminNotifications) !== null && _b !== void 0 ? _b : false;
|
|
70
71
|
}
|
|
71
|
-
const
|
|
72
|
+
const permissionsModel = this.PermissionModel ? this.PermissionModel : ((_c = this.configurations) === null || _c === void 0 ? void 0 : _c.enablePermissions) ? Permission_1.default : undefined;
|
|
73
|
+
const permissions = permissionsModel && currentUser.permissionGroupId ? yield PermissionResource_1.PermissionResource.get(currentUser.permissionGroupId, permissionsModel) : undefined;
|
|
72
74
|
for (var i = 0; i < this.resourceFiles.length; i++) {
|
|
73
75
|
const resource = this.resourceFiles[i];
|
|
74
76
|
const isAllowed = resource.properties.isAllowed ? yield resource.properties.isAllowed(currentUser) : true;
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
export declare
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
updatedAt: NativeDate;
|
|
8
|
-
} & {
|
|
9
|
-
permissionId: import("mongoose").Types.ObjectId;
|
|
10
|
-
permissionGroupId: import("mongoose").Types.ObjectId;
|
|
11
|
-
}>;
|
|
1
|
+
import { Schema } from 'mongoose';
|
|
2
|
+
import IAdminPermissionModel from './IAdminPermission';
|
|
3
|
+
export declare const AdminPermissionSchema: Schema;
|
|
4
|
+
declare const AdminPermission: IAdminPermissionModel;
|
|
5
|
+
export default AdminPermission;
|
|
6
|
+
export declare function getAdminPermissionSchema(): Schema;
|
|
@@ -3,21 +3,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getAdminPermissionSchema = void 0;
|
|
6
|
+
exports.getAdminPermissionSchema = exports.AdminPermissionSchema = void 0;
|
|
7
7
|
const mongoose_1 = require("mongoose");
|
|
8
8
|
const ModelNames_1 = __importDefault(require("../ModelNames"));
|
|
9
|
+
exports.AdminPermissionSchema = new mongoose_1.Schema({
|
|
10
|
+
permissionGroupId: {
|
|
11
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
12
|
+
ref: ModelNames_1.default.PermissionGroup,
|
|
13
|
+
required: true,
|
|
14
|
+
},
|
|
15
|
+
permissionId: {
|
|
16
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
17
|
+
ref: ModelNames_1.default.Permission,
|
|
18
|
+
required: true,
|
|
19
|
+
},
|
|
20
|
+
}, { timestamps: true });
|
|
21
|
+
const AdminPermission = (mongoose_1.models[ModelNames_1.default.AdminPermission] ||
|
|
22
|
+
(0, mongoose_1.model)(ModelNames_1.default.AdminPermission, exports.AdminPermissionSchema));
|
|
23
|
+
exports.default = AdminPermission;
|
|
9
24
|
function getAdminPermissionSchema() {
|
|
10
|
-
return
|
|
11
|
-
permissionGroupId: {
|
|
12
|
-
type: mongoose_1.Schema.Types.ObjectId,
|
|
13
|
-
ref: ModelNames_1.default.PermissionGroup,
|
|
14
|
-
required: true,
|
|
15
|
-
},
|
|
16
|
-
permissionId: {
|
|
17
|
-
type: mongoose_1.Schema.Types.ObjectId,
|
|
18
|
-
ref: ModelNames_1.default.Permission,
|
|
19
|
-
required: true,
|
|
20
|
-
},
|
|
21
|
-
}, { timestamps: true });
|
|
25
|
+
return exports.AdminPermissionSchema;
|
|
22
26
|
}
|
|
23
27
|
exports.getAdminPermissionSchema = getAdminPermissionSchema;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Languages = void 0;
|
|
4
|
+
var Languages;
|
|
5
|
+
(function (Languages) {
|
|
6
|
+
Languages["ARABIC"] = "ar";
|
|
7
|
+
Languages["ENGLISH"] = "en";
|
|
8
|
+
})(Languages = exports.Languages || (exports.Languages = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="passport-local-mongoose" />
|
|
2
|
+
import { Schema } from 'mongoose';
|
|
3
|
+
import { Languages } from './ILanguage';
|
|
4
|
+
export declare const LanguageSchema: Schema<any, import("mongoose").Model<any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").ResolveSchemaOptions<{
|
|
5
|
+
_id: false;
|
|
6
|
+
}>, {
|
|
7
|
+
key?: Languages | undefined;
|
|
8
|
+
value?: string | undefined;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LanguageSchema = void 0;
|
|
4
|
+
const mongoose_1 = require("mongoose");
|
|
5
|
+
const ILanguage_1 = require("./ILanguage");
|
|
6
|
+
exports.LanguageSchema = new mongoose_1.Schema({
|
|
7
|
+
key: {
|
|
8
|
+
type: String,
|
|
9
|
+
enum: Object.values(ILanguage_1.Languages),
|
|
10
|
+
default: ILanguage_1.Languages.ENGLISH,
|
|
11
|
+
required: false
|
|
12
|
+
},
|
|
13
|
+
value: {
|
|
14
|
+
type: String,
|
|
15
|
+
required: false
|
|
16
|
+
}
|
|
17
|
+
}, { _id: false });
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import { Schema } from
|
|
1
|
+
import { Schema } from 'mongoose';
|
|
2
|
+
import IPermissionModel from './IPermission';
|
|
3
|
+
export declare const PermissionSchema: Schema;
|
|
4
|
+
declare const Permission: IPermissionModel;
|
|
5
|
+
export default Permission;
|
|
2
6
|
export declare function getPermissionSchema(): Schema;
|
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPermissionSchema = void 0;
|
|
6
|
+
exports.getPermissionSchema = exports.PermissionSchema = void 0;
|
|
4
7
|
const mongoose_1 = require("mongoose");
|
|
8
|
+
const ModelNames_1 = __importDefault(require("../ModelNames"));
|
|
9
|
+
exports.PermissionSchema = new mongoose_1.Schema({
|
|
10
|
+
name: {
|
|
11
|
+
type: String,
|
|
12
|
+
required: true,
|
|
13
|
+
},
|
|
14
|
+
modelName: {
|
|
15
|
+
type: String,
|
|
16
|
+
required: true,
|
|
17
|
+
},
|
|
18
|
+
order: {
|
|
19
|
+
type: Number,
|
|
20
|
+
required: true,
|
|
21
|
+
},
|
|
22
|
+
}, { timestamps: true });
|
|
23
|
+
const Permission = (mongoose_1.models[ModelNames_1.default.Permission] || (0, mongoose_1.model)(ModelNames_1.default.Permission, exports.PermissionSchema));
|
|
24
|
+
exports.default = Permission;
|
|
5
25
|
function getPermissionSchema() {
|
|
6
|
-
return
|
|
7
|
-
name: {
|
|
8
|
-
type: String,
|
|
9
|
-
required: true,
|
|
10
|
-
},
|
|
11
|
-
modelName: {
|
|
12
|
-
type: String,
|
|
13
|
-
required: true,
|
|
14
|
-
},
|
|
15
|
-
order: {
|
|
16
|
-
type: Number,
|
|
17
|
-
required: true,
|
|
18
|
-
},
|
|
19
|
-
}, { timestamps: true });
|
|
26
|
+
return exports.PermissionSchema;
|
|
20
27
|
}
|
|
21
28
|
exports.getPermissionSchema = getPermissionSchema;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Document, Model, Types } from 'mongoose';
|
|
2
|
+
import { ILanguage } from '../language/ILanguage';
|
|
3
|
+
export interface IPermissionGroupProps {
|
|
4
|
+
_id?: Types.ObjectId;
|
|
5
|
+
name: ILanguage[] | string;
|
|
6
|
+
creatorId?: string;
|
|
7
|
+
creatorType?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IPermissionGroupDocument extends IPermissionGroupProps, Document {
|
|
10
|
+
_id: Types.ObjectId;
|
|
11
|
+
createdAt: Date;
|
|
12
|
+
updatedAt: Date;
|
|
13
|
+
}
|
|
14
|
+
export default interface IPermissionGroupModel extends Model<IPermissionGroupDocument> {
|
|
15
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import IPermissionGroupModel from './IPermissionGroup';
|
|
2
|
+
export interface PermissionGroupOptions {
|
|
3
|
+
localized?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function createPermissionGroupModel(options?: PermissionGroupOptions): IPermissionGroupModel;
|
|
6
|
+
export declare const PermissionGroup: IPermissionGroupModel;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PermissionGroup = exports.createPermissionGroupModel = void 0;
|
|
7
|
+
const mongoose_1 = require("mongoose");
|
|
8
|
+
const ModelNames_1 = __importDefault(require("../ModelNames"));
|
|
9
|
+
const LanguageSchema_1 = require("../language/LanguageSchema");
|
|
10
|
+
function createPermissionGroupModel(options = {}) {
|
|
11
|
+
const nameField = options.localized ? { name: [{ type: LanguageSchema_1.LanguageSchema }] } : { name: { type: String, required: true } };
|
|
12
|
+
const PermissionGroupSchema = new mongoose_1.Schema(Object.assign(Object.assign({}, nameField), { creatorId: {
|
|
13
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
14
|
+
required: false,
|
|
15
|
+
refPath: 'creatorType'
|
|
16
|
+
}, creatorType: {
|
|
17
|
+
type: String,
|
|
18
|
+
required: false
|
|
19
|
+
} }), { timestamps: true });
|
|
20
|
+
return (mongoose_1.models[ModelNames_1.default.PermissionGroup] || (0, mongoose_1.model)(ModelNames_1.default.PermissionGroup, PermissionGroupSchema));
|
|
21
|
+
}
|
|
22
|
+
exports.createPermissionGroupModel = createPermissionGroupModel;
|
|
23
|
+
exports.PermissionGroup = createPermissionGroupModel({ localized: false });
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import Repository, { IRepository } from './Repository';
|
|
2
|
+
import { IAdminPermissionDocument } from '../models/adminpermission/IAdminPermission';
|
|
3
|
+
export interface IAdminPermissionRepository extends IRepository<IAdminPermissionDocument> {
|
|
4
|
+
}
|
|
5
|
+
export default class AdminPermissionRepository extends Repository<IAdminPermissionDocument> {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const inversify_1 = require("inversify");
|
|
13
|
+
const Repository_1 = __importDefault(require("./Repository"));
|
|
14
|
+
const AdminPermission_1 = __importDefault(require("../models/adminpermission/AdminPermission"));
|
|
15
|
+
let AdminPermissionRepository = class AdminPermissionRepository extends Repository_1.default {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(AdminPermission_1.default);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
AdminPermissionRepository = __decorate([
|
|
21
|
+
(0, inversify_1.injectable)()
|
|
22
|
+
], AdminPermissionRepository);
|
|
23
|
+
exports.default = AdminPermissionRepository;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import Repository, { IRepository } from './Repository';
|
|
2
|
+
import { IPermissionGroupDocument } from '../models/permissiongroup/IPermissionGroup';
|
|
3
|
+
export interface IPermissionGroupRepository extends IRepository<IPermissionGroupDocument> {
|
|
4
|
+
}
|
|
5
|
+
export default class PermissionGroupRepository extends Repository<IPermissionGroupDocument> {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const inversify_1 = require("inversify");
|
|
13
|
+
const Repository_1 = __importDefault(require("./Repository"));
|
|
14
|
+
const PermissionGroup_1 = require("../models/permissiongroup/PermissionGroup");
|
|
15
|
+
let PermissionGroupRepository = class PermissionGroupRepository extends Repository_1.default {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(PermissionGroup_1.PermissionGroup);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
PermissionGroupRepository = __decorate([
|
|
21
|
+
(0, inversify_1.injectable)()
|
|
22
|
+
], PermissionGroupRepository);
|
|
23
|
+
exports.default = PermissionGroupRepository;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import Repository, { IRepository } from './Repository';
|
|
2
|
+
import { IPermissionDocument } from '../models/permission/IPermission';
|
|
3
|
+
export interface IPermissionRepository extends IRepository<IPermissionDocument> {
|
|
4
|
+
}
|
|
5
|
+
export default class PermissionRepository extends Repository<IPermissionDocument> {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const inversify_1 = require("inversify");
|
|
13
|
+
const Repository_1 = __importDefault(require("./Repository"));
|
|
14
|
+
const Permission_1 = __importDefault(require("../models/permission/Permission"));
|
|
15
|
+
let PermissionRepository = class PermissionRepository extends Repository_1.default {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(Permission_1.default);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
PermissionRepository = __decorate([
|
|
21
|
+
(0, inversify_1.injectable)()
|
|
22
|
+
], PermissionRepository);
|
|
23
|
+
exports.default = PermissionRepository;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IResourceFile } from '../types/IResourceFile';
|
|
2
|
+
import { DeepPartial } from '../types/helpers';
|
|
3
|
+
export declare function createAdminPermissionResource(overrides?: DeepPartial<IResourceFile>): IResourceFile;
|
|
4
|
+
declare const AdminPermissionResource: IResourceFile;
|
|
5
|
+
export default AdminPermissionResource;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.createAdminPermissionResource = void 0;
|
|
16
|
+
const AdminPermission_1 = __importDefault(require("../models/adminpermission/AdminPermission"));
|
|
17
|
+
const parents_1 = require("./parents");
|
|
18
|
+
const ModelNames_1 = __importDefault(require("../models/ModelNames"));
|
|
19
|
+
const merge_1 = __importDefault(require("lodash/merge"));
|
|
20
|
+
function createAdminPermissionResource(overrides) {
|
|
21
|
+
return (0, merge_1.default)({
|
|
22
|
+
properties: {
|
|
23
|
+
resource: AdminPermission_1.default,
|
|
24
|
+
parent: parents_1.SetupParent,
|
|
25
|
+
modelName: ModelNames_1.default.AdminPermission,
|
|
26
|
+
isVisible(currentUser) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
return false;
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
}, overrides !== null && overrides !== void 0 ? overrides : {});
|
|
33
|
+
}
|
|
34
|
+
exports.createAdminPermissionResource = createAdminPermissionResource;
|
|
35
|
+
const AdminPermissionResource = createAdminPermissionResource();
|
|
36
|
+
exports.default = AdminPermissionResource;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IResourceFile } from '../types/IResourceFile';
|
|
2
|
+
import { DeepPartial } from '../types/helpers';
|
|
3
|
+
export declare function createPermissionGroupResource(overrides?: DeepPartial<IResourceFile>): IResourceFile;
|
|
4
|
+
declare const PermissionGroupResource: IResourceFile;
|
|
5
|
+
export default PermissionGroupResource;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.createPermissionGroupResource = void 0;
|
|
16
|
+
const AdminPermission_1 = __importDefault(require("../models/adminpermission/AdminPermission"));
|
|
17
|
+
const parents_1 = require("./parents");
|
|
18
|
+
const ModelNames_1 = __importDefault(require("../models/ModelNames"));
|
|
19
|
+
const PermissionSavingService_1 = require("../helpers/Permissions/PermissionSavingService");
|
|
20
|
+
const merge_1 = __importDefault(require("lodash/merge"));
|
|
21
|
+
const PermissionGroup_1 = require("../models/permissiongroup/PermissionGroup");
|
|
22
|
+
function createPermissionGroupResource(overrides) {
|
|
23
|
+
return (0, merge_1.default)({
|
|
24
|
+
properties: {
|
|
25
|
+
resource: PermissionGroup_1.PermissionGroup,
|
|
26
|
+
parent: parents_1.PermissionParent,
|
|
27
|
+
modelName: ModelNames_1.default.PermissionGroup,
|
|
28
|
+
crudOperations: {
|
|
29
|
+
create: {
|
|
30
|
+
before(req, params, currentUser) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
params.creatorId = currentUser._id.toString();
|
|
33
|
+
params.creatorType = "Admin";
|
|
34
|
+
return params;
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
after(req, document, currentUser, params) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const permissionSavingService = new PermissionSavingService_1.PermissionSavingService(document.getDocument()._id.toString(), params.checked, AdminPermission_1.default);
|
|
40
|
+
permissionSavingService.save();
|
|
41
|
+
return document;
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
update: {
|
|
46
|
+
after(req, document, params, currentUser) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const permissionSavingService = new PermissionSavingService_1.PermissionSavingService(document.getDocument()._id.toString(), params.checked, AdminPermission_1.default);
|
|
49
|
+
permissionSavingService.update();
|
|
50
|
+
return document;
|
|
51
|
+
});
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
}, overrides !== null && overrides !== void 0 ? overrides : {});
|
|
57
|
+
}
|
|
58
|
+
exports.createPermissionGroupResource = createPermissionGroupResource;
|
|
59
|
+
const PermissionGroupResource = createPermissionGroupResource();
|
|
60
|
+
exports.default = PermissionGroupResource;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IResourceFile } from '../types/IResourceFile';
|
|
2
|
+
import { DeepPartial } from '../types/helpers';
|
|
3
|
+
export declare function createPermissionResource(overrides?: DeepPartial<IResourceFile>): IResourceFile;
|
|
4
|
+
declare const PermissionResource: IResourceFile;
|
|
5
|
+
export default PermissionResource;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createPermissionResource = void 0;
|
|
7
|
+
const Permission_1 = __importDefault(require("../models/permission/Permission"));
|
|
8
|
+
const parents_1 = require("./parents");
|
|
9
|
+
const ModelNames_1 = __importDefault(require("../models/ModelNames"));
|
|
10
|
+
const merge_1 = __importDefault(require("lodash/merge"));
|
|
11
|
+
function createPermissionResource(overrides) {
|
|
12
|
+
return (0, merge_1.default)({
|
|
13
|
+
properties: {
|
|
14
|
+
resource: Permission_1.default,
|
|
15
|
+
parent: parents_1.PermissionParent,
|
|
16
|
+
modelName: ModelNames_1.default.Permission,
|
|
17
|
+
keysTranslations: undefined,
|
|
18
|
+
},
|
|
19
|
+
}, overrides !== null && overrides !== void 0 ? overrides : {});
|
|
20
|
+
}
|
|
21
|
+
exports.createPermissionResource = createPermissionResource;
|
|
22
|
+
const PermissionResource = createPermissionResource();
|
|
23
|
+
exports.default = PermissionResource;
|
package/lib/resources/parents.js
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NotificationParent = void 0;
|
|
3
|
+
exports.SetupParent = exports.PermissionParent = exports.NotificationParent = void 0;
|
|
4
4
|
exports.NotificationParent = {
|
|
5
5
|
name: 'Notifications',
|
|
6
6
|
icon: 'NotificationsNone',
|
|
7
7
|
};
|
|
8
|
+
exports.PermissionParent = {
|
|
9
|
+
name: 'Permission',
|
|
10
|
+
icon: 'Gavel',
|
|
11
|
+
};
|
|
12
|
+
exports.SetupParent = {
|
|
13
|
+
name: "Setup",
|
|
14
|
+
icon: "PermDataSetting",
|
|
15
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PermissionSeeder = void 0;
|
|
16
|
+
const StringUtils_1 = __importDefault(require("../utils/StringUtils"));
|
|
17
|
+
const Permission_1 = __importDefault(require("../models/permission/Permission"));
|
|
18
|
+
class PermissionSeeder {
|
|
19
|
+
static seed(resources) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
for (var i = 0; i < resources.length; i++) {
|
|
22
|
+
const resource = resources[i];
|
|
23
|
+
const modelName = resource.properties.modelName;
|
|
24
|
+
const oldDocument = yield Permission_1.default.findOne({ modelName });
|
|
25
|
+
const isVisible = resource.properties.isVisible ? yield resource.properties.isVisible({}) : true;
|
|
26
|
+
if (!oldDocument && isVisible) {
|
|
27
|
+
const modifiedModelName = StringUtils_1.default.lowerCaseFirstLetter(modelName);
|
|
28
|
+
const props = [
|
|
29
|
+
{
|
|
30
|
+
name: `${modifiedModelName}_view`,
|
|
31
|
+
modelName,
|
|
32
|
+
order: 1,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: `${modifiedModelName}_create`,
|
|
36
|
+
modelName,
|
|
37
|
+
order: 2,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: `${modifiedModelName}_edit`,
|
|
41
|
+
modelName,
|
|
42
|
+
order: 3,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: `${modifiedModelName}_delete`,
|
|
46
|
+
modelName,
|
|
47
|
+
order: 4,
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
yield Permission_1.default.insertMany(props);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.PermissionSeeder = PermissionSeeder;
|
package/lib/types/helpers.d.ts
CHANGED