From 4b4cae5b832a0b3f849c71b0c405ce6890691908 Mon Sep 17 00:00:00 2001 From: devanshu052000 Date: Thu, 17 Apr 2025 00:41:49 +0530 Subject: [PATCH] Added API to get users for an app with view access --- .../modules/app-permissions/interfaces/IService.ts | 4 +++- .../app-permissions/interfaces/IUtilService.ts | 5 +++++ server/src/modules/app-permissions/module.ts | 10 +++++++--- .../app-permissions/repositories/repository.ts | 0 server/src/modules/app-permissions/service.ts | 2 +- server/src/modules/app-permissions/util.service.ts | 12 ++++++++++++ 6 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 server/src/modules/app-permissions/interfaces/IUtilService.ts create mode 100644 server/src/modules/app-permissions/repositories/repository.ts create mode 100644 server/src/modules/app-permissions/util.service.ts diff --git a/server/src/modules/app-permissions/interfaces/IService.ts b/server/src/modules/app-permissions/interfaces/IService.ts index 6f072faef9..750b33ea9f 100644 --- a/server/src/modules/app-permissions/interfaces/IService.ts +++ b/server/src/modules/app-permissions/interfaces/IService.ts @@ -1,3 +1,5 @@ +import { User } from '@entities/user.entity'; + export interface IAppPermissionsService { - fetchUsers(appId: string): Promise; + fetchUsers(appId: string, user: User): Promise; } diff --git a/server/src/modules/app-permissions/interfaces/IUtilService.ts b/server/src/modules/app-permissions/interfaces/IUtilService.ts new file mode 100644 index 0000000000..12cacfe06e --- /dev/null +++ b/server/src/modules/app-permissions/interfaces/IUtilService.ts @@ -0,0 +1,5 @@ +import { User } from '@entities/user.entity'; + +export interface IUtilService { + getUsersWithViewAccess(appId: string, organizationId: string, endUserIds: string[]): Promise; +} diff --git a/server/src/modules/app-permissions/module.ts b/server/src/modules/app-permissions/module.ts index 40011b0292..aadb998dc6 100644 --- a/server/src/modules/app-permissions/module.ts +++ b/server/src/modules/app-permissions/module.ts @@ -1,19 +1,23 @@ import { getImportPath } from '@modules/app/constants'; import { DynamicModule } from '@nestjs/common'; import { FeatureAbilityFactory } from './ability'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { User } from '@entities/user.entity'; +import { RolesRepository } from '@modules/roles/repository'; export class AppPermissionsModule { static async register(configs: { IS_GET_CONTEXT: boolean }): Promise { const importPath = await getImportPath(configs.IS_GET_CONTEXT); const { AppPermissionsController } = await import(`${importPath}/app-permissions/controller`); const { AppPermissionsService } = await import(`${importPath}/app-permissions/service`); + const { AppPermissionsUtilService } = await import(`${importPath}/app-permissions/util.service`); return { module: AppPermissionsModule, - imports: [], + imports: [TypeOrmModule.forFeature([User])], controllers: [AppPermissionsController], - providers: [AppPermissionsService, FeatureAbilityFactory], - exports: [], + providers: [AppPermissionsService, AppPermissionsUtilService, RolesRepository, FeatureAbilityFactory], + exports: [AppPermissionsUtilService], }; } } diff --git a/server/src/modules/app-permissions/repositories/repository.ts b/server/src/modules/app-permissions/repositories/repository.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/server/src/modules/app-permissions/service.ts b/server/src/modules/app-permissions/service.ts index 7744982418..db7a61d98b 100644 --- a/server/src/modules/app-permissions/service.ts +++ b/server/src/modules/app-permissions/service.ts @@ -5,7 +5,7 @@ import { IAppPermissionsService } from './interfaces/IService'; export class AppPermissionsService implements IAppPermissionsService { constructor() {} - async fetchUsers(appId) { + async fetchUsers(appId, user) { throw new Error('Method not implemented.'); } } diff --git a/server/src/modules/app-permissions/util.service.ts b/server/src/modules/app-permissions/util.service.ts new file mode 100644 index 0000000000..bb07699714 --- /dev/null +++ b/server/src/modules/app-permissions/util.service.ts @@ -0,0 +1,12 @@ +import { User } from '@entities/user.entity'; +import { IUtilService } from './interfaces/IUtilService'; +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AppPermissionsUtilService implements IUtilService { + constructor() {} + + async getUsersWithViewAccess(appId: string, organizationId: string, endUserIds: string[]): Promise { + throw new Error('Method not implemented.'); + } +}