From 1d18659bd7c99488a7382644eadbed28c8672824 Mon Sep 17 00:00:00 2001 From: kevin Date: Tue, 28 Apr 2026 11:48:16 +0300 Subject: [PATCH] Creation user management interface --- .../Http/Controllers/Api/UserController.php | 7 +- .../app/Http/Requests/UpdateUserRequest.php | 1 + .../Users/UserCreatePresentation.vue | 131 +++++ .../Users/UserDetailPresentation.vue | 497 ++++++++++++++++++ .../Users/UserListPresentation.vue | 336 ++++++++++++ .../Users/UserManagementPresentation.vue | 320 +++++++++++ .../parametrage/users/UserFormPanel.vue | 209 ++++++++ .../parametrage/users/UserListPanel.vue | 144 +++++ .../views/pages/Parametrage/UserCreate.vue | 105 ++++ .../views/pages/Parametrage/UserDetails.vue | 236 +++++++++ .../src/views/pages/Parametrage/Users.vue | 131 +++++ 11 files changed, 2116 insertions(+), 1 deletion(-) create mode 100644 thanasoft-front/src/components/Organism/Parametrage/Users/UserCreatePresentation.vue create mode 100644 thanasoft-front/src/components/Organism/Parametrage/Users/UserDetailPresentation.vue create mode 100644 thanasoft-front/src/components/Organism/Parametrage/Users/UserListPresentation.vue create mode 100644 thanasoft-front/src/components/Organism/Parametrage/Users/UserManagementPresentation.vue create mode 100644 thanasoft-front/src/components/molecules/parametrage/users/UserFormPanel.vue create mode 100644 thanasoft-front/src/components/molecules/parametrage/users/UserListPanel.vue create mode 100644 thanasoft-front/src/views/pages/Parametrage/UserCreate.vue create mode 100644 thanasoft-front/src/views/pages/Parametrage/UserDetails.vue create mode 100644 thanasoft-front/src/views/pages/Parametrage/Users.vue diff --git a/thanasoft-back/app/Http/Controllers/Api/UserController.php b/thanasoft-back/app/Http/Controllers/Api/UserController.php index 9c99e0a..b1f0899 100644 --- a/thanasoft-back/app/Http/Controllers/Api/UserController.php +++ b/thanasoft-back/app/Http/Controllers/Api/UserController.php @@ -113,8 +113,13 @@ class UserController extends Controller } $validated = $request->validated(); + $clearPassword = (bool) ($validated['clear_password'] ?? false); - if (empty($validated['password'])) { + unset($validated['clear_password']); + + if ($clearPassword) { + $validated['password'] = null; + } elseif (empty($validated['password'])) { unset($validated['password']); } diff --git a/thanasoft-back/app/Http/Requests/UpdateUserRequest.php b/thanasoft-back/app/Http/Requests/UpdateUserRequest.php index efd55c2..8a5ce36 100644 --- a/thanasoft-back/app/Http/Requests/UpdateUserRequest.php +++ b/thanasoft-back/app/Http/Requests/UpdateUserRequest.php @@ -34,6 +34,7 @@ class UpdateUserRequest extends FormRequest 'permissions' => ['nullable', 'array'], 'permissions.*' => ['string', 'max:150'], 'password' => ['nullable', 'string', Password::min(8)], + 'clear_password' => ['nullable', 'boolean'], ]; } } diff --git a/thanasoft-front/src/components/Organism/Parametrage/Users/UserCreatePresentation.vue b/thanasoft-front/src/components/Organism/Parametrage/Users/UserCreatePresentation.vue new file mode 100644 index 0000000..176847b --- /dev/null +++ b/thanasoft-front/src/components/Organism/Parametrage/Users/UserCreatePresentation.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/thanasoft-front/src/components/Organism/Parametrage/Users/UserDetailPresentation.vue b/thanasoft-front/src/components/Organism/Parametrage/Users/UserDetailPresentation.vue new file mode 100644 index 0000000..8337232 --- /dev/null +++ b/thanasoft-front/src/components/Organism/Parametrage/Users/UserDetailPresentation.vue @@ -0,0 +1,497 @@ + + + + + diff --git a/thanasoft-front/src/components/Organism/Parametrage/Users/UserListPresentation.vue b/thanasoft-front/src/components/Organism/Parametrage/Users/UserListPresentation.vue new file mode 100644 index 0000000..8fe2229 --- /dev/null +++ b/thanasoft-front/src/components/Organism/Parametrage/Users/UserListPresentation.vue @@ -0,0 +1,336 @@ + + + + + diff --git a/thanasoft-front/src/components/Organism/Parametrage/Users/UserManagementPresentation.vue b/thanasoft-front/src/components/Organism/Parametrage/Users/UserManagementPresentation.vue new file mode 100644 index 0000000..06930f0 --- /dev/null +++ b/thanasoft-front/src/components/Organism/Parametrage/Users/UserManagementPresentation.vue @@ -0,0 +1,320 @@ + + + + + diff --git a/thanasoft-front/src/components/molecules/parametrage/users/UserFormPanel.vue b/thanasoft-front/src/components/molecules/parametrage/users/UserFormPanel.vue new file mode 100644 index 0000000..3fd367e --- /dev/null +++ b/thanasoft-front/src/components/molecules/parametrage/users/UserFormPanel.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/thanasoft-front/src/components/molecules/parametrage/users/UserListPanel.vue b/thanasoft-front/src/components/molecules/parametrage/users/UserListPanel.vue new file mode 100644 index 0000000..f41f475 --- /dev/null +++ b/thanasoft-front/src/components/molecules/parametrage/users/UserListPanel.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/thanasoft-front/src/views/pages/Parametrage/UserCreate.vue b/thanasoft-front/src/views/pages/Parametrage/UserCreate.vue new file mode 100644 index 0000000..af6be2f --- /dev/null +++ b/thanasoft-front/src/views/pages/Parametrage/UserCreate.vue @@ -0,0 +1,105 @@ + + + diff --git a/thanasoft-front/src/views/pages/Parametrage/UserDetails.vue b/thanasoft-front/src/views/pages/Parametrage/UserDetails.vue new file mode 100644 index 0000000..c5781cd --- /dev/null +++ b/thanasoft-front/src/views/pages/Parametrage/UserDetails.vue @@ -0,0 +1,236 @@ + + + diff --git a/thanasoft-front/src/views/pages/Parametrage/Users.vue b/thanasoft-front/src/views/pages/Parametrage/Users.vue new file mode 100644 index 0000000..37afe3b --- /dev/null +++ b/thanasoft-front/src/views/pages/Parametrage/Users.vue @@ -0,0 +1,131 @@ + + +