entitlements factory

This commit is contained in:
Alex Holliday committed 2025-12-14 16:41:38 +00:00
1 parent fc2c3aa6a6
commit 4b92b2a8df
2 files changed
+13 -6

No files matched your search

+3 -1
View File
@@ -31,6 +31,7 @@ import {
StripeService,
BillingService,
} from "@/services/index.js";
import { EntitlementsFactory } from "@/services/system/EntitlementsService.js";
export const initServices = async () => {
const checkService = new CheckService();
@@ -64,7 +65,8 @@ export const initServices = async () => {
maintenanceService
);
const jobQueue = await JobQueue.create(jobGenerator);
const authService = new AuthService(jobQueue);
const entitlementsProvider = EntitlementsFactory.create();
const authService = new AuthService(jobQueue, entitlementsProvider);
const monitorService = new MonitorService(jobQueue);
const queueService = new QueueService(jobQueue);
const teamService = new TeamService(jobQueue);
+10 -5
View File
@@ -22,8 +22,8 @@ import { IJobQueue } from "../infrastructure/JobQueue.js";
import { hashPassword } from "@/utils/JWTUtils.js";
import { Plans } from "@/types/entitlements.js";
import { PERMISSIONS } from "@/types/permissions.js";
import { EntitlementsFactory } from "@/services/system/EntitlementsService.js";
import type { Entitlements } from "@/types/entitlements.js";
import type { IEntitlementsProvider } from "@/services/system/EntitlementsService.js";
const SERVICE_NAME = "AuthService";
@@ -68,9 +68,11 @@ export interface IAuthService {
class AuthService implements IAuthService {
public SERVICE_NAME: string;
private jobQueue: IJobQueue;
constructor(jobQueue: IJobQueue) {
private entitlementsProvider: IEntitlementsProvider;
constructor(jobQueue: IJobQueue, entitlementsProvider: IEntitlementsProvider) {
this.SERVICE_NAME = SERVICE_NAME;
this.jobQueue = jobQueue;
this.entitlementsProvider = entitlementsProvider;
}
me = async (userId: string) => {
@@ -120,6 +122,10 @@ class AuthService implements IAuthService {
};
});
const entitlements: Entitlements = await this.entitlementsProvider.getForOrg(
org._id.toString()
);
const returnableUser: IUserReturnable = {
id: user._id.toString(),
email: user.email,
@@ -131,7 +137,7 @@ class AuthService implements IAuthService {
permissions: orgRoles?.permissions || [],
},
teams: returnableTeams,
entitlements: org.entitlements,
entitlements,
};
return returnableUser;
@@ -510,8 +516,7 @@ class AuthService implements IAuthService {
orgId: orgMembership.orgId.toString(),
};
const provider = EntitlementsFactory.create();
const entitlements: Entitlements = await provider.getForOrg(
const entitlements: Entitlements = await this.entitlementsProvider.getForOrg(
org._id.toString()
);