Checkpoint: Ajout du champ username dans la table local_users, adaptation de l'auth backend (connexion par username OU email), mise à jour de la page Gestion des utilisateurs avec le champ username visible et éditable, compte adminItinova migré avec username propre.
This commit is contained in:
@@ -195,7 +195,8 @@ export const appRouter = router({
|
||||
.input(
|
||||
z.object({
|
||||
name: z.string().min(2).max(255),
|
||||
email: z.string().email(),
|
||||
username: z.string().min(2).max(128).optional(),
|
||||
email: z.string().email().optional(),
|
||||
password: z.string().min(8),
|
||||
role: z.enum(["admin", "user", "readonly"]).default("user"),
|
||||
})
|
||||
@@ -204,7 +205,8 @@ export const appRouter = router({
|
||||
const passwordHash = await hashPassword(input.password);
|
||||
await createLocalUser({
|
||||
name: input.name,
|
||||
email: input.email.toLowerCase(),
|
||||
username: input.username ?? null,
|
||||
email: input.email ? input.email.toLowerCase() : null,
|
||||
passwordHash,
|
||||
role: input.role,
|
||||
isActive: true,
|
||||
@@ -217,6 +219,7 @@ export const appRouter = router({
|
||||
z.object({
|
||||
id: z.number().int().positive(),
|
||||
name: z.string().min(2).max(255).optional(),
|
||||
username: z.string().min(2).max(128).optional(),
|
||||
email: z.string().email().optional(),
|
||||
password: z.string().min(8).optional(),
|
||||
role: z.enum(["admin", "user", "readonly"]).optional(),
|
||||
|
||||
Reference in New Issue
Block a user