36 lines
934 B
TypeScript
36 lines
934 B
TypeScript
import type {
|
|
IIdentityAuthPublicServices,
|
|
IIdentityPublicServices,
|
|
} from "../../application";
|
|
import {
|
|
authenticateUser,
|
|
requireAuthenticated,
|
|
requireCompanyContext,
|
|
} from "../express/middlewares";
|
|
|
|
import type { IdentityInternalDeps } from "./identity.di";
|
|
|
|
class IdentityAuthPublicServices implements IIdentityAuthPublicServices {
|
|
public constructor(
|
|
private readonly deps: IdentityInternalDeps["auth"]["authenticateUserDependencies"]
|
|
) {}
|
|
|
|
public authenticatedOnly() {
|
|
return [authenticateUser(this.deps), requireAuthenticated()] as const;
|
|
}
|
|
|
|
public tenantRequired() {
|
|
return [
|
|
authenticateUser(this.deps),
|
|
requireAuthenticated(),
|
|
requireCompanyContext(),
|
|
] as const;
|
|
}
|
|
}
|
|
|
|
export function buildIdentityPublicServices(deps: IdentityInternalDeps): IIdentityPublicServices {
|
|
return {
|
|
auth: new IdentityAuthPublicServices(deps.auth.authenticateUserDependencies),
|
|
};
|
|
}
|