28 lines
857 B
TypeScript
28 lines
857 B
TypeScript
import { Claim } from "../dtos/claim.js";
|
|
import { type User } from "../dtos/user.js";
|
|
import { inject } from "../infrastructure/di/index.js";
|
|
import { KeycloakAdmin } from "./keycloak/admin/index.js";
|
|
|
|
export class UserAdminService {
|
|
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.");
|
|
// }
|
|
}
|