mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 04:40:32 +00:00
feat: api keys
This commit is contained in:
@@ -1,11 +1,18 @@
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import { ApiKeyModel } from '../models/ApiKey.model';
|
||||
import { ClsService } from 'nestjs-cls';
|
||||
import { TenantModel } from '@/modules/System/models/TenantModel';
|
||||
|
||||
@Injectable()
|
||||
export class AuthApiKeyAuthorizeService {
|
||||
constructor(
|
||||
private readonly clsService: ClsService,
|
||||
|
||||
@Inject(ApiKeyModel.name)
|
||||
private readonly apikeyModel: typeof ApiKeyModel,
|
||||
|
||||
@Inject(TenantModel.name)
|
||||
private readonly tenantModel: typeof TenantModel,
|
||||
) {}
|
||||
|
||||
/**
|
||||
@@ -28,6 +35,16 @@ export class AuthApiKeyAuthorizeService {
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
const tenant = await this.tenantModel
|
||||
.query()
|
||||
.findById(apiKeyRecord.tenantId);
|
||||
|
||||
if (!tenant) return false;
|
||||
|
||||
this.clsService.set('tenantId', tenant.id);
|
||||
this.clsService.set('organizationId', tenant.organizationId);
|
||||
this.clsService.set('userId', apiKeyRecord.userId);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user