1
0
forked from baron/baron-sso

code-check 오류 수정

This commit is contained in:
2026-05-04 09:02:36 +09:00
parent 67b3420d00
commit 068d0adbd4
15 changed files with 220 additions and 27 deletions

View File

@@ -348,7 +348,9 @@ function AuditLogsPage() {
) : null}
</div>
</TableCell>
<TableCell className="text-xs">{actionLabel}</TableCell>
<TableCell className="text-xs">
{actionLabel}
</TableCell>
<TableCell className="font-mono text-xs">
<div className="flex items-center gap-2">
<span className="break-all">{targetValue}</span>
@@ -401,16 +403,21 @@ function AuditLogsPage() {
<div className="grid gap-3 md:grid-cols-2">
<div className="space-y-1">
<div>
Request ID: {formatValue(details.request_id)}
Request ID:{" "}
{formatValue(details.request_id)}
</div>
<div>
Method: {formatValue(details.method)}
</div>
<div>Method: {formatValue(details.method)}</div>
<div>Path: {formatValue(details.path)}</div>
<div>
Tenant: {formatValue(details.tenant_id)}
</div>
</div>
<div className="space-y-1 break-all">
<div>Before: {formatValue(details.before)}</div>
<div>
Before: {formatValue(details.before)}
</div>
<div>After: {formatValue(details.after)}</div>
<div>Error: {formatValue(details.error)}</div>
</div>

View File

@@ -218,10 +218,12 @@ function ClientDetailsPage() {
const clientSecret = hasClientSecret
? client?.clientSecret || secretPlaceholder
: t("ui.common.na", "N/A");
const displaySecret =
!hasClientSecret
? t("msg.dev.clients.details.secret_not_applicable", "PKCE 앱에는 Client Secret이 없습니다.")
: clientSecret === secretPlaceholder
const displaySecret = !hasClientSecret
? t(
"msg.dev.clients.details.secret_not_applicable",
"PKCE 앱에는 Client Secret이 없습니다.",
)
: clientSecret === secretPlaceholder
? t("msg.dev.clients.details.secret_unavailable", "SECRET_NOT_AVAILABLE")
: clientSecret;

View File

@@ -463,9 +463,7 @@ function ClientGeneralPage() {
(item.relation === "admins" || item.relation === "config_editor"),
) === true;
const isGeneralSettingsReadOnly =
!isCreate &&
relationData != null &&
!canEditExistingClientGeneralSettings;
!isCreate && relationData != null && !canEditExistingClientGeneralSettings;
const trimmedLogoUrl = logoUrl.trim();
const trimmedAutoLoginUrl = autoLoginUrl.trim();
const hasLogoUrl = trimmedLogoUrl.length > 0;

View File

@@ -312,10 +312,13 @@ function ClientRelationsPage() {
}
};
const handleInfoToggle = (event: React.MouseEvent, relation: RelationOption) => {
const handleInfoToggle = (
event: React.MouseEvent,
relation: RelationOption,
) => {
event.preventDefault();
event.stopPropagation();
setInfoRelation(prev => (prev === relation ? null : relation));
setInfoRelation((prev) => (prev === relation ? null : relation));
};
if (!clientId) {
@@ -401,7 +404,10 @@ function ClientRelationsPage() {
<CardContent className="space-y-6">
{isLoading ? (
<div className="py-8 text-center text-sm text-muted-foreground">
{t("msg.dev.clients.relationships.loading", "Loading relationships...")}
{t(
"msg.dev.clients.relationships.loading",
"Loading relationships...",
)}
</div>
) : isRelationshipViewForbidden ? (
<div className="rounded-md border border-border bg-muted/30 p-4 text-sm text-muted-foreground">
@@ -510,7 +516,7 @@ function ClientRelationsPage() {
selectedUserExistingRelations.has(relation);
const isSelected = selectedRelations.includes(relation);
const isInfoVisible = infoRelation === relation;
return (
<div key={relation} className="relative">
<label
@@ -568,7 +574,7 @@ function ClientRelationsPage() {
</div>
</div>
</label>
{isInfoVisible && (
<div className="mt-2 animate-in fade-in slide-in-from-top-1 rounded-lg border border-primary/20 bg-primary/5 p-3 text-xs leading-relaxed text-foreground shadow-sm">
<div className="flex items-center gap-1.5 font-bold text-primary mb-1">
@@ -673,7 +679,9 @@ function ClientRelationsPage() {
<div className="space-y-1">
<div className="flex flex-col gap-1.5">
<div className="flex items-center gap-2 font-medium">
<span>{relationLabel(item.relation as RelationOption)}</span>
<span>
{relationLabel(item.relation as RelationOption)}
</span>
<button
type="button"
className={`rounded-full p-0.5 transition-colors ${
@@ -681,14 +689,21 @@ function ClientRelationsPage() {
? "text-primary"
: "text-muted-foreground/60 hover:text-primary"
}`}
onClick={(e) => handleInfoToggle(e, item.relation as RelationOption)}
onClick={(e) =>
handleInfoToggle(
e,
item.relation as RelationOption,
)
}
>
<Info className="h-3.5 w-3.5" />
</button>
</div>
{infoRelation === item.relation && (
<div className="animate-in fade-in slide-in-from-top-1 rounded border border-primary/20 bg-primary/5 p-2 text-[11px] leading-relaxed text-foreground max-w-[250px]">
{relationPermitsInfo(item.relation as RelationOption)}
{relationPermitsInfo(
item.relation as RelationOption,
)}
</div>
)}
</div>

View File

@@ -191,11 +191,17 @@ delete_confirm = ""
delete_success = ""
empty = ""
fetch_error = ""
import_empty = ""
import_error = ""
import_result = ""
missing_id = ""
not_found = ""
remove_sub_confirm = ""
subtitle = ""
[msg.admin.tenants.import_preview]
description = ""
[msg.admin.tenants.admins]
add_success = ""
empty = ""
@@ -255,9 +261,13 @@ parsed_count = ""
update_success = ""
[msg.admin.users.create]
appointment_required = ""
error = ""
external_tenant_required = ""
password_required = ""
personal_tenant_failed = ""
success = ""
tenant_resolve_failed = ""
[msg.admin.users.create.account]
subtitle = ""
@@ -269,6 +279,7 @@ field_required = ""
name_required = ""
password_auto_help = ""
password_manual_help = ""
picker_description = ""
role_help = ""
[msg.admin.users.create.password_generated]
@@ -291,7 +302,9 @@ password_hint = ""
[msg.admin.users.list]
delete_confirm = ""
empty = ""
export_error = ""
fetch_error = ""
status_error = ""
subtitle = ""
[msg.admin.users.list.columns]
@@ -991,6 +1004,9 @@ user = ""
[ui.admin.tenants]
add = ""
csv_template = ""
export = ""
import = ""
title = ""
[ui.admin.tenants.admins]
@@ -1120,6 +1136,15 @@ search_placeholder = ""
title = ""
tree_search_placeholder = ""
[ui.admin.tenants.import_preview]
candidates = ""
confirm = ""
create_new = ""
fixed_id = ""
match = ""
no_candidates = ""
title = ""
[ui.admin.tenants.sub.table]
action = ""
name = ""
@@ -1128,6 +1153,7 @@ status = ""
[ui.admin.tenants.table]
actions = ""
id = ""
members = ""
name = ""
slug = ""
@@ -1227,6 +1253,7 @@ empty = ""
fetch_error = ""
search_placeholder = ""
subtitle = ""
toggle_status = ""
title = ""
[ui.admin.users.list.breadcrumb]