File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -94,11 +94,14 @@ export function PermissionsPage({ notify }: { notify: (message: string) => void
9494 finally { setBusy ( false ) ; }
9595 }
9696
97- async function revoke ( permissionId : number ) {
97+ async function revoke ( permission : PermissionGrant ) {
9898 if ( ! resourceId ) return ;
99+ const resourceLabel = resources . find ( ( item ) => String ( item . id ) === resourceId ) ?. label ?? resourceId ;
100+ const message = `${ resourceType === "documents" ? "문서" : "컬렉션" } “${ resourceLabel } ”에서 ${ targetLabel ( permission ) } 의 ${ permission . permissionType } 권한을 회수할까요?` ;
101+ if ( ! window . confirm ( message ) ) return ;
99102 setBusy ( true ) ;
100103 try {
101- await apiRequest ( `/permissions/${ resourceType } /${ resourceId } /${ permissionId } ` , { method : "DELETE" } ) ;
104+ await apiRequest ( `/permissions/${ resourceType } /${ resourceId } /${ permission . permissionId } ` , { method : "DELETE" } ) ;
102105 notify ( "권한을 회수했습니다." ) ;
103106 await loadDirectPermissions ( ) ;
104107 } catch ( reason ) { setError ( errorMessage ( reason ) ) ; }
@@ -132,7 +135,7 @@ export function PermissionsPage({ notify }: { notify: (message: string) => void
132135 { permissionsLoading ? < LoadingState label = "직접 권한을 불러오는 중입니다." /> : null }
133136 { ! permissionsLoading && permissionsError ? < Notice > 직접 권한 목록을 조회할 수 없습니다. { permissionsError } </ Notice > : null }
134137 { ! permissionsLoading && ! permissionsError && ! directPermissions . length ? < Notice > 이 리소스에 직접 부여된 권한이 없습니다.</ Notice > : null }
135- { ! permissionsLoading && directPermissions . length ? < div className = "mini-table permission-table" > < div className = "table-labels" > < span > 대상</ span > < span > 권한</ span > < span > 만료</ span > < span /> </ div > { directPermissions . map ( ( permission ) => < div key = { permission . permissionId } > < span > < strong > { targetLabel ( permission ) } </ strong > < small > #{ permission . permissionId } · user #{ permission . grantedBy } · { formatDate ( permission . grantedAt ) } </ small > </ span > < StatusPill value = { permission . permissionType } /> < span > { permission . expiresAt ? formatDate ( permission . expiresAt ) : "제한 없음" } </ span > < button className = "danger-text" disabled = { busy } onClick = { ( ) => void revoke ( permission . permissionId ) } > 회수</ button > </ div > ) } </ div > : null }
138+ { ! permissionsLoading && directPermissions . length ? < div className = "mini-table permission-table" > < div className = "table-labels" > < span > 대상</ span > < span > 권한</ span > < span > 만료</ span > < span /> </ div > { directPermissions . map ( ( permission ) => < div key = { permission . permissionId } > < span > < strong > { targetLabel ( permission ) } </ strong > < small > #{ permission . permissionId } · user #{ permission . grantedBy } · { formatDate ( permission . grantedAt ) } </ small > </ span > < StatusPill value = { permission . permissionType } /> < span > { permission . expiresAt ? formatDate ( permission . expiresAt ) : "제한 없음" } </ span > < button className = "danger-text" disabled = { busy } onClick = { ( ) => void revoke ( permission ) } > 회수</ button > </ div > ) } </ div > : null }
136139 </ div >
137140 </ > : null }
138141 </ section > ;
You can’t perform that action at this time.
0 commit comments