feat(auth): Phase 2 — audited-users UserPicker + Tier-3 Keycloak Admin lookup

This commit is contained in:
Александр Зимин
2026-05-26 12:01:09 +00:00
parent f1fcabc9da
commit a4ba8735d0
8 changed files with 142 additions and 122 deletions
+11 -4
View File
@@ -796,13 +796,20 @@ export type UserListItem = {
updatedAt: string
}
export const allUsersQuery = queryOptions({
queryKey: ['users', 'all'] as const,
/**
* Юзеры, реально появлявшиеся в audit_log — для UserPicker'а в /audit.
* Backend resolve'ит distinct user_id из audit_log JOIN с user_display_cache
* → отдаёт только тех, кто реально что-то делал в ordinis (не всех юзеров
* altum realm). Sub'ы которых нет в cache возвращаются с null display полями
* — UserPicker покажет UUID-prefix.
*/
export const auditedUsersQuery = queryOptions({
queryKey: ['users', 'audited'] as const,
staleTime: 5 * 60 * 1000,
retry: false,
queryFn: async (): Promise<UserListItem[]> => {
try {
const { data } = await apiClient.get<UserListItem[]>('/admin/users', {
const { data } = await apiClient.get<UserListItem[]>('/admin/users/audited', {
params: { limit: 500 },
})
return data
@@ -814,7 +821,7 @@ export const allUsersQuery = queryOptions({
},
})
export const useAllUsers = () => useQuery(allUsersQuery)
export const useAuditedUsers = () => useQuery(auditedUsersQuery)
export const useRecords = (
dictionaryName: string,
scopeCsv: string,