feat: Implement admin user management features

- Added adminCreateUser endpoint and corresponding DTO for creating users.
- Implemented deleteUser and resetPassword functionalities for admin users.
- Introduced updateEmail functionality for admin users.
- Updated UsersService to handle user creation, deletion, password reset, and email updates.
- Modified UsersController to include new admin routes with appropriate role checks.
- Refactored frontend navigation to link to user management under profile.
- Created new profile tabs for user management and database management.
- Developed AnvandareClient component for user management, including user creation, deletion, role changes, and password resets.
- Added DatabsTab for managing product listings and merging duplicates.
- Enhanced MinProfilTab for user profile management with form handling.
This commit is contained in:
Nils-Johan Gynther
2026-04-18 14:49:02 +02:00
parent 00dc0d6c69
commit 537a4f8ab6
16 changed files with 1141 additions and 66 deletions
+3 -27
View File
@@ -1,30 +1,6 @@
import { auth } from '../../../auth';
import { redirect } from 'next/navigation';
import { fetchJson } from '../../../lib/api';
import UserAdminClient from './UserAdminClient';
type User = {
id: number;
username: string;
email: string;
firstName: string | null;
lastName: string | null;
role: string;
createdAt: string;
};
export default async function AdminUsersPage() {
const session = await auth();
if (!session || (session.user as any)?.role !== 'admin') {
redirect('/');
}
const users = await fetchJson<User[]>('/api/users');
return (
<main className="p-6 max-w-4xl mx-auto">
<h1 className="text-2xl font-bold mb-6">Användarhantering</h1>
<UserAdminClient users={users} currentUserId={session.user.id} />
</main>
);
export default function AdminUsersPage() {
redirect('/profil?tab=anvandare');
}