update api users and groups and users 14

This commit is contained in:
Alma 2025-04-09 21:53:38 +02:00
parent c8a4bd0074
commit d1780b748b
2 changed files with 48 additions and 46 deletions

View File

@ -63,13 +63,13 @@ export async function GET() {
const roles = await response.json();
// Filter out system roles
// Filter out only Keycloak system roles
const filteredRoles = roles.filter((role: any) =>
!role.name.startsWith('default-roles-') &&
role.name !== 'offline_access' &&
role.name !== 'uma_authorization'
!['offline_access', 'uma_authorization'].includes(role.name)
);
console.log("Available roles:", filteredRoles);
return NextResponse.json(filteredRoles);
} catch (error) {
console.error("Error fetching roles:", error);

View File

@ -420,47 +420,51 @@ export function UsersTable({ userRole = [] }: UsersTableProps) {
<DialogTrigger asChild>
<Button>Ajouter un utilisateur</Button>
</DialogTrigger>
<DialogContent>
<DialogContent className="max-h-[85vh] overflow-y-auto">
<DialogHeader>
<DialogTitle>Nouvel utilisateur</DialogTitle>
<DialogTitle>New User</DialogTitle>
</DialogHeader>
<form onSubmit={handleAddUser} className="space-y-4">
<div className="space-y-2">
<Label htmlFor="username">Username</Label>
<Input
id="username"
value={formData.username}
onChange={(e) => setFormData(prev => ({ ...prev, username: e.target.value.trim() }))}
required
/>
<form onSubmit={handleAddUser} className="space-y-3">
<div className="grid grid-cols-2 gap-3">
<div className="space-y-2">
<Label htmlFor="username">Username</Label>
<Input
id="username"
value={formData.username}
onChange={(e) => setFormData(prev => ({ ...prev, username: e.target.value.trim() }))}
required
/>
</div>
<div className="space-y-2">
<Label htmlFor="email">Email</Label>
<Input
id="email"
type="email"
value={formData.email}
onChange={(e) => setFormData(prev => ({ ...prev, email: e.target.value.trim() }))}
required
/>
</div>
</div>
<div className="space-y-2">
<Label htmlFor="firstName">First Name</Label>
<Input
id="firstName"
value={formData.firstName}
onChange={(e) => setFormData(prev => ({ ...prev, firstName: e.target.value.trim() }))}
required
/>
</div>
<div className="space-y-2">
<Label htmlFor="lastName">Last Name</Label>
<Input
id="lastName"
value={formData.lastName}
onChange={(e) => setFormData(prev => ({ ...prev, lastName: e.target.value.trim() }))}
required
/>
</div>
<div className="space-y-2">
<Label htmlFor="email">Email</Label>
<Input
id="email"
type="email"
value={formData.email}
onChange={(e) => setFormData(prev => ({ ...prev, email: e.target.value.trim() }))}
required
/>
<div className="grid grid-cols-2 gap-3">
<div className="space-y-2">
<Label htmlFor="firstName">First Name</Label>
<Input
id="firstName"
value={formData.firstName}
onChange={(e) => setFormData(prev => ({ ...prev, firstName: e.target.value.trim() }))}
required
/>
</div>
<div className="space-y-2">
<Label htmlFor="lastName">Last Name</Label>
<Input
id="lastName"
value={formData.lastName}
onChange={(e) => setFormData(prev => ({ ...prev, lastName: e.target.value.trim() }))}
required
/>
</div>
</div>
<div className="space-y-2">
<Label htmlFor="password">Password</Label>
@ -474,7 +478,7 @@ export function UsersTable({ userRole = [] }: UsersTableProps) {
</div>
<div className="space-y-2">
<Label>Roles</Label>
<div className="space-y-2">
<div className="grid grid-cols-2 gap-2 max-h-[120px] overflow-y-auto border rounded-md p-2">
{roles.map((role) => (
<div key={role.id} className="flex items-center space-x-2">
<Checkbox
@ -489,14 +493,12 @@ export function UsersTable({ userRole = [] }: UsersTableProps) {
}));
}}
/>
<Label htmlFor={`role-${role.id}`}>{role.name}</Label>
<Label htmlFor={`role-${role.id}`} className="text-sm">{role.name}</Label>
</div>
))}
</div>
</div>
<Button type="submit" className="w-full">
Créer l'utilisateur
</Button>
<Button type="submit" className="w-full">Create User</Button>
</form>
</DialogContent>
</Dialog>