Add user management page and technician picker for reassign

- New /admin/users page (admin only) for creating technicians,
  editing role/email, resetting passwords, deleting users
- AftersalesDetail reassign modal now uses a searchable Select
  populated from /api/users/assignable instead of raw user ID input
- Menu entry only shown to admins

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Frudrax Cheng
2026-05-26 10:58:02 +08:00
parent 6fef517556
commit eab66bc3e9
8 changed files with 564 additions and 14 deletions
+29 -1
View File
@@ -1,12 +1,40 @@
export type UserRole = 'admin' | 'technician' | 'user';
export interface User {
id: number;
username: string;
name: string;
email?: string;
role: string;
role: UserRole;
createdAt: string;
}
export interface CreateUserRequest {
username: string;
password: string;
name: string;
email?: string;
role: UserRole;
}
export interface UpdateUserRequest {
name?: string;
email?: string;
role?: UserRole;
}
export interface UserListFilter {
page?: number;
limit?: number;
role?: UserRole;
search?: string;
}
export interface UserListResponse {
data: User[];
pagination: EmployeeSerialPagination;
}
export interface Company {
id: number;
name: string;