forked from baron/baron-sso
code-check 오류 수정
This commit is contained in:
@@ -221,6 +221,39 @@ function parseClientId(pathname: string): string {
|
||||
}
|
||||
|
||||
export async function installDevApiMock(page: Page, state: DevApiMockState) {
|
||||
const readMockRole = async () =>
|
||||
(
|
||||
(await page.evaluate(() => window.localStorage.getItem("dev_role"))) ??
|
||||
"rp_admin"
|
||||
).trim();
|
||||
|
||||
const buildSelfConfigEditorRelation = (): ClientRelation => ({
|
||||
relation: "config_editor",
|
||||
subject: "User:playwright-user",
|
||||
subjectType: "User",
|
||||
subjectId: "playwright-user",
|
||||
userName: "Playwright User",
|
||||
userEmail: "playwright@example.com",
|
||||
userLoginId: "playwright@example.com",
|
||||
});
|
||||
|
||||
const shouldGrantDefaultEditRelation = (role: string) =>
|
||||
role === "rp_admin" || role === "tenant_admin" || role === "super_admin";
|
||||
|
||||
const resolveClientRelations = async (clientId: string) => {
|
||||
const explicitRelations = state.relations?.[clientId];
|
||||
if (explicitRelations) {
|
||||
return explicitRelations;
|
||||
}
|
||||
|
||||
const role = await readMockRole();
|
||||
if (!shouldGrantDefaultEditRelation(role)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [buildSelfConfigEditorRelation()];
|
||||
};
|
||||
|
||||
const appendAuditLog = (
|
||||
eventType: string,
|
||||
action: string,
|
||||
@@ -431,6 +464,10 @@ export async function installDevApiMock(page: Page, state: DevApiMockState) {
|
||||
});
|
||||
|
||||
state.clients.push(created);
|
||||
if (!state.relations) {
|
||||
state.relations = {};
|
||||
}
|
||||
state.relations[created.id] = [buildSelfConfigEditorRelation()];
|
||||
appendAuditLog("CLIENT_CREATE", "CREATE_CLIENT", created.id);
|
||||
return json(route, {
|
||||
client: created,
|
||||
@@ -451,7 +488,7 @@ export async function installDevApiMock(page: Page, state: DevApiMockState) {
|
||||
) {
|
||||
const clientId = pathname.split("/")[5] ?? "";
|
||||
return json(route, {
|
||||
items: state.relations?.[clientId] ?? [],
|
||||
items: await resolveClientRelations(clientId),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user