api keycloak setup

This commit is contained in:
tw-blue
2025-11-29 17:58:02 +01:00
parent a9fb52fd4d
commit d6e7de09a4
27 changed files with 548 additions and 68 deletions
+28
View File
@@ -0,0 +1,28 @@
import { inject } from "../infrastructure/di/index.js";
import { Claim } from "../models/claim";
import { Topic } from "../models/topic.js";
import { User } from "../models/user.js";
import { KeycloakAdmin } from "./keycloak/admin/index.js";
export class UserService {
private readonly keycloakAdmin = inject(KeycloakAdmin);
public async setClaim(
uid: string,
claim: Claim,
value: boolean,
): Promise<void> {
if (value) {
return await this.keycloakAdmin.addRoleToUser(uid, claim);
} else {
return await this.keycloakAdmin.removeRoleFromUser(uid, claim);
}
}
public async getUsers(): Promise<User[]> {
return await this.keycloakAdmin.getUsers();
}
public async setSubscriptions(token: string, topics: Topic[]) {
throw new Error("Method not implemented.");
}
}