-
-
-
-
-
+
+ {subject.length === 0 && !isLoading && !error ? (
+
+
+
사용자 검색 필요
+
+ 보안상의 이유로 전체 목록은 제공되지 않습니다.
+ 사용자 ID, 이메일, 또는 이름으로 검색하여 동의 내역을 확인하세요.
+
-
+ ) : (
+ <>
+
+
+
+ User
+ Status
+ Granted Scopes
+ Last Authenticated
+ Action
+
+
+
+ {rows.length === 0 && !isLoading ? (
+
+
+ 검색 결과가 없습니다.
+
+
+ ) : (
+ rows.map((row) => (
+
+
+
+
+ {(row.userName || row.subject).slice(0, 2).toUpperCase()}
+
+
+
+ {row.userName || "Subject"}
+
+
+ {row.subject}
+
+
+
+
+
+ Active
+
+
+
+ {row.grantedScopes.map((scope) => (
+
+ {scope}
+
+ ))}
+
+
+
+ {row.authenticatedAt || "-"}
+
+
+
+
+
+ ))
+ )}
+
+
+
+
+ Showing {rows.length > 0 ? 1 : 0} to{" "}
+ {rows.length} of{" "}
+ {rows.length} users
+
+
+
+
+
+
+
+ >
+ )}
@@ -265,7 +281,7 @@ function ClientConsentsPage() {
Active Grants
-
1,250
+
{rows.length}
@@ -273,7 +289,9 @@ function ClientConsentsPage() {
Total Scopes Issued
- 4,812
+
+ {rows.reduce((acc, row) => acc + row.grantedScopes.length, 0)}
+
@@ -281,7 +299,14 @@ function ClientConsentsPage() {
Avg. Scopes per User
- 3.8
+
+ {rows.length > 0
+ ? (
+ rows.reduce((acc, row) => acc + row.grantedScopes.length, 0) /
+ rows.length
+ ).toFixed(1)
+ : "0.0"}
+
diff --git a/devfront/src/lib/devApi.ts b/devfront/src/lib/devApi.ts
index cbed9191..014c76bd 100644
--- a/devfront/src/lib/devApi.ts
+++ b/devfront/src/lib/devApi.ts
@@ -49,6 +49,7 @@ export type ClientUpsertRequest = {
export type ConsentSummary = {
subject: string;
+ userName?: string;
clientId: string;
clientName?: string;
grantedScopes: string[];