Add loading UserList for admin user

This commit is contained in:
araemer 2025-11-20 20:16:56 +01:00
parent ba054ef2b9
commit ac3450239e
4 changed files with 22 additions and 10 deletions

View file

@ -0,0 +1,8 @@
import {UserDto} from "./UserDto.js";
/**
* API response for delivering a list of users
*/
export class UserListResponse {
valueList: UserDto[] = [];
}

View file

@ -3,13 +3,14 @@ import type {UserDto} from "../dtos/UserDto";
import type {CreateUserRequest} from "../dtos/CreateUserRequest.ts";
import type {ChangeUserPasswordRequest} from "../dtos/ChangeUserPasswordRequest.ts";
import type {CreateUserResponse} from "../dtos/CreateUserResponse.ts";
import type {UserListResponse} from "../dtos/UserListResponse.ts";
export async function fetchCurrentUser(): Promise<UserDto> {
return apiClient.get("/user/me");
}
export async function fetchAllUsers(): Promise<UserDto[]> {
return apiClient.get("/user/list");
export async function fetchAllUsers(): Promise<UserListResponse> {
return apiClient.get("/user/all");
}
export async function createUser(dto: CreateUserRequest): Promise<CreateUserResponse> {

View file

@ -50,6 +50,7 @@ export function IngredientGroupListEditor({ingredientGroupList, onChange}: Ingre
{ingredientGroupList.map((ingGrp, index) => (
<IngredientGroupEditorListItem
index={index}
key={index}
ingredientGroupModel={ingGrp}
handleUpdate={handleUpdate}
handleRemove={handleRemove}

View file

@ -1,5 +1,5 @@
import {useEffect, useState} from "react";
import {createUser, fetchCurrentUser, updateUser} from "../../api/points/UserPoint";
import {createUser, fetchAllUsers, fetchCurrentUser, updateUser} from "../../api/points/UserPoint";
import type {UserDto} from "../../api/dtos/UserDto.ts";
import ContentBackground from "../basics/ContentBackground";
import ContentBody from "../basics/ContentBody";
@ -17,6 +17,7 @@ import {getRecipeListUrl} from "../../routes.ts";
import TextLinkButton from "../basics/TextLinkButton.tsx";
import SelectField from "../basics/SelectField.tsx";
import type {CreateUserResponse} from "../../api/dtos/CreateUserResponse.ts";
import type {UserListResponse} from "../../api/dtos/UserListResponse.ts";
/**
* UserManagementPage
@ -50,13 +51,14 @@ export default function UserManagementPage() {
const me = await fetchCurrentUser();
setCurrentUser(me);
//if (me.role === "admin") {
// const allUsers = await fetchAllUsers();
// setUsers(allUsers);
//} else {
if (me.role === "admin") {
const userResponse: UserListResponse = await fetchAllUsers();
setUsers(userResponse.valueList);
console.log(users)
} else {
setUsers([me]);
setSelectedUser(me);
//}
}
};
/** Handles selecting a user from the list */