pass ws admin

This commit is contained in:
Rudra deep Biswas 2025-05-13 18:10:29 +05:30
parent 6e6b721fca
commit 29202a8e40
3 changed files with 15 additions and 1 deletions

View file

@ -8,6 +8,7 @@ import { TooljetDbModule } from '@modules/tooljet-db/module';
import { AppsModule } from '@modules/apps/module';
import { OrganizationsModule } from '@modules/organizations/module';
import { VersionModule } from '@modules/versions/module';
import { UsersModule } from '@modules/users/module';
export class ExternalApiModule {
static async register(configs?: { IS_GET_CONTEXT: boolean }): Promise<DynamicModule> {
const importPath = await getImportPath(configs?.IS_GET_CONTEXT);
@ -18,6 +19,7 @@ export class ExternalApiModule {
return {
module: ExternalApiModule,
imports: [
await UsersModule.register(configs),
await RolesModule.register(configs),
await GroupPermissionsModule.register(configs),
await TooljetDbModule.register(configs),

View file

@ -292,7 +292,6 @@ export default class LicenseBase {
return this._isServerSideGlobal;
}
public get externalApis(): boolean {
return true;
if (this.IsBasicPlan) {
return !!this.BASIC_PLAN_TERMS.features?.externalApi;
}

View file

@ -18,6 +18,7 @@ import { Organization } from '@entities/organization.entity';
import { OrganizationUser } from '@entities/organization_user.entity';
import { isSuperAdmin } from '@helpers/utils.helper';
import * as uuid from 'uuid';
import { USER_ROLE } from '@modules/group-permissions/constants';
type UserFilterOptions = { searchText?: string; status?: string; page?: number };
@ -168,6 +169,18 @@ export class UserRepository extends Repository<User> {
await manager.upsert(UserDetails, updatableParams, conflictsPaths);
}
async getUserWithAdminRole(organizationId: string, manager?: EntityManager): Promise<User | null> {
return dbTransactionWrap((manager: EntityManager) => {
return manager
.createQueryBuilder(User, 'user')
.innerJoin('user.userGroups', 'groupUsers')
.innerJoin('groupUsers.group', 'group')
.where('group.name = :groupName', { groupName: USER_ROLE.ADMIN })
.andWhere('group.organizationId = :organizationId', { organizationId })
.getOne();
}, manager || this.manager);
}
async findByEmail(
email: string,
organizationId?: string,