@solidstarters/solid-core 1.2.24 → 1.2.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/controllers/user.controller.d.ts +1 -0
- package/dist/controllers/user.controller.d.ts.map +1 -1
- package/dist/controllers/user.controller.js +14 -0
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/dtos/create-field-metadata.dto.d.ts +3 -4
- package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-field-metadata.dto.js +9 -15
- package/dist/dtos/create-field-metadata.dto.js.map +1 -1
- package/dist/dtos/create-media.dto.d.ts +3 -0
- package/dist/dtos/create-media.dto.d.ts.map +1 -1
- package/dist/dtos/create-media.dto.js +16 -1
- package/dist/dtos/create-media.dto.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts +3 -4
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +8 -12
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/media.entity.d.ts +3 -0
- package/dist/entities/media.entity.d.ts.map +1 -1
- package/dist/entities/media.entity.js +13 -1
- package/dist/entities/media.entity.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts +2 -2
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js +4 -4
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js +3 -3
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts +2 -2
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js +4 -4
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/schematic.service.d.ts +1 -0
- package/dist/helpers/schematic.service.d.ts.map +1 -1
- package/dist/helpers/schematic.service.js +3 -0
- package/dist/helpers/schematic.service.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +14 -2
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +94 -67
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +1 -0
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/crud.service.js +9 -9
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +14 -21
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +17 -3
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +4 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +6 -3
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +10 -1
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +1 -0
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts +1 -1
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +1 -1
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/user.service.d.ts +1 -0
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +14 -0
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.js +1 -1
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/controllers/user.controller.ts +8 -0
- package/src/dtos/create-field-metadata.dto.ts +7 -12
- package/src/dtos/create-media.dto.ts +15 -3
- package/src/entities/field-metadata.entity.ts +6 -9
- package/src/entities/media.entity.ts +9 -0
- package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +6 -6
- package/src/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.ts +4 -4
- package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +6 -6
- package/src/helpers/schematic.service.ts +5 -1
- package/src/seeders/module-metadata-seeder.service.ts +15 -3
- package/src/seeders/seed-data/solid-core-metadata.json +94 -67
- package/src/services/authentication.service.ts +2 -0
- package/src/services/crud.service.ts +9 -9
- package/src/services/field-metadata.service.ts +14 -21
- package/src/services/media.service.ts +35 -5
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +4 -1
- package/src/services/mediaStorageProviders/file-storage-provider.ts +6 -3
- package/src/services/menu-item-metadata.service.ts +8 -2
- package/src/services/model-metadata.service.ts +1 -0
- package/src/services/role-metadata.service.ts +2 -2
- package/src/services/user.service.ts +15 -0
- package/src/services/view-metadata.service.ts +2 -2
|
@@ -51,6 +51,9 @@ export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
51
51
|
entityId: entity.id,
|
|
52
52
|
modelMetadataId: mediaFieldMetadata.model.id,
|
|
53
53
|
relativeUri: awsFileUrl,
|
|
54
|
+
mimeType: file.mimetype,
|
|
55
|
+
fileSize: file.size,
|
|
56
|
+
originalFileName: file.originalname,
|
|
54
57
|
mediaStorageProviderMetadataId: mediaFieldMetadata.mediaStorageProvider.id,
|
|
55
58
|
fieldMetadataId: mediaFieldMetadata.id
|
|
56
59
|
}) as unknown as Media;
|
|
@@ -64,7 +67,7 @@ export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
64
67
|
if (!(entity instanceof CommonEntity)) {
|
|
65
68
|
throw new Error("Entity must be an instance of CommonEntity"); //FIXME This needs to be handled through generics. e.g T extends CommonEntity
|
|
66
69
|
}
|
|
67
|
-
const existingMedia = await this.mediaService.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id);
|
|
70
|
+
const existingMedia = await this.mediaService.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id,['mediaStorageProviderMetadata']);
|
|
68
71
|
this.mediaService.deleteByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id);
|
|
69
72
|
existingMedia.forEach(media => {
|
|
70
73
|
this.fileService.deleteFromS3(media.relativeUri, mediaFieldMetadata.mediaStorageProvider.bucketName); //TODO
|
|
@@ -25,7 +25,7 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
25
25
|
const media = await this.mediaService.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);
|
|
26
26
|
// Add the full URL to the media
|
|
27
27
|
media.forEach(m => {
|
|
28
|
-
m['_full_url'] = this.getFullFilePath(m.relativeUri)
|
|
28
|
+
m['_full_url'] = `${process.env.BASE_URL}/${this.getFullFilePath(m.relativeUri)}`;
|
|
29
29
|
});
|
|
30
30
|
return media;
|
|
31
31
|
}
|
|
@@ -46,6 +46,9 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
46
46
|
entityId: entity.id,
|
|
47
47
|
modelMetadataId: mediaFieldMetadata.model.id,
|
|
48
48
|
relativeUri: this.getFileName(file),
|
|
49
|
+
mimeType: file.mimetype,
|
|
50
|
+
fileSize: file.size,
|
|
51
|
+
originalFileName: file.originalname,
|
|
49
52
|
mediaStorageProviderMetadataId: mediaFieldMetadata.mediaStorageProvider.id,
|
|
50
53
|
fieldMetadataId: mediaFieldMetadata.id
|
|
51
54
|
}) as unknown as Media;
|
|
@@ -59,7 +62,7 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
59
62
|
if (!(entity instanceof CommonEntity)) {
|
|
60
63
|
throw new Error("Entity must be an instance of CommonEntity"); //FIXME This needs to be handled through generics. e.g T extends CommonEntity
|
|
61
64
|
}
|
|
62
|
-
const existingMedia = await this.mediaService.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id);
|
|
65
|
+
const existingMedia = await this.mediaService.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id,['mediaStorageProviderMetadata']);
|
|
63
66
|
this.mediaService.deleteByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id);
|
|
64
67
|
existingMedia.forEach(media => {
|
|
65
68
|
this.fileService.deleteFile(this.getFullFilePath(media.relativeUri));
|
|
@@ -67,7 +70,7 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
|
|
|
67
70
|
}
|
|
68
71
|
|
|
69
72
|
private getFullFilePath(fileName: string): string {
|
|
70
|
-
return `${
|
|
73
|
+
return `${this.configService.get('app-builder.fileStorageDir')}/${fileName}`;
|
|
71
74
|
}
|
|
72
75
|
|
|
73
76
|
private getFileName(file: Express.Multer.File): string {
|
|
@@ -148,9 +148,15 @@ export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
|
|
|
148
148
|
// Recursive function to build the tree
|
|
149
149
|
private buildMenuTree(rootItems: MenuItemMetadata[], allMenuItems: MenuItemMetadata[], activeUser: ActiveUserData): any[] {
|
|
150
150
|
const menuItemsData = rootItems.map(rootItem => {
|
|
151
|
-
|
|
151
|
+
const allowedMenuItems =allMenuItems.filter(i => {
|
|
152
|
+
if(!i.parentMenuItem){
|
|
153
|
+
return true
|
|
154
|
+
}else{
|
|
155
|
+
const hasPermission = hasReadPermissionOnModel(activeUser, i.action.model.singularName);
|
|
156
|
+
return hasReadPermissionOnModel(activeUser, i.action.model.singularName)
|
|
157
|
+
}});
|
|
152
158
|
// Get immediate children of the current loop variable menuItem.
|
|
153
|
-
const children =
|
|
159
|
+
const children = allowedMenuItems.filter(item => item.parentMenuItem && item.parentMenuItem.id === rootItem.id);
|
|
154
160
|
|
|
155
161
|
// TODO: We should specify path only if there are no more children present.
|
|
156
162
|
// For now adding path everywhere.
|
|
@@ -99,8 +99,8 @@ export class RoleMetadataService extends CRUDService<RoleMetadata> {
|
|
|
99
99
|
return await this._addPermissionsToRole(roleName, permissionNames);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
async addPermissionToRole(roleName: string, permissionName: string) {
|
|
103
|
-
return await this._addPermissionsToRole(roleName,
|
|
102
|
+
async addPermissionToRole(roleName: string, permissionName: string[]) {
|
|
103
|
+
return await this._addPermissionsToRole(roleName, permissionName);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
private async _addPermissionsToRole(roleName: string, permissionNames: string[]): Promise<RoleMetadata> {
|
|
@@ -75,6 +75,21 @@ export class UserService extends CRUDService<User> {
|
|
|
75
75
|
// return entity;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
async updateUser(id: any, updateDto, files) {
|
|
79
|
+
const user = await this.repo.findOne({
|
|
80
|
+
where: { id: id },
|
|
81
|
+
relations: {
|
|
82
|
+
roles: true
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
if (!user) {
|
|
86
|
+
throw new Error(`User not found.`);
|
|
87
|
+
}
|
|
88
|
+
const roles = updateDto.roles ? updateDto.roles :[];
|
|
89
|
+
await this.addRolesToUser(user.username, roles);
|
|
90
|
+
await this.update(id, updateDto, files, true);
|
|
91
|
+
}
|
|
92
|
+
|
|
78
93
|
async addRoleToUser(username: string, roleName: string): Promise<User> {
|
|
79
94
|
// Find the role, find the user and populate the many 2 many table.
|
|
80
95
|
const user = await this.repo.findOne({
|
|
@@ -86,11 +86,11 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
86
86
|
const field = fields[i];
|
|
87
87
|
|
|
88
88
|
// For fields of type relation & relationType many-to-one
|
|
89
|
-
// We fetch metadata regarding the
|
|
89
|
+
// We fetch metadata regarding the relationCoModelSingularName
|
|
90
90
|
if (field.type === 'relation') {
|
|
91
91
|
const relationModel = await this.modelMetadataRepo.find({
|
|
92
92
|
where: {
|
|
93
|
-
singularName: field.
|
|
93
|
+
singularName: field.relationCoModelSingularName
|
|
94
94
|
},
|
|
95
95
|
relations: {
|
|
96
96
|
userKeyField: true
|