feat: implement admin user management interface and routes for CRUD operations and password resets
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
<script setup>
|
||||
import { Head, useForm, Link } from '@inertiajs/vue3';
|
||||
import { Head, useForm, Link, usePage } from '@inertiajs/vue3';
|
||||
import { ref } from 'vue';
|
||||
import AdminLayout from '@/Layouts/AdminLayout.vue';
|
||||
|
||||
const page = usePage();
|
||||
|
||||
const props = defineProps({
|
||||
users: Array,
|
||||
tenants: Array
|
||||
@@ -51,6 +53,12 @@ const deleteUser = (user) => {
|
||||
}
|
||||
};
|
||||
|
||||
const resetPassword = (user) => {
|
||||
if (confirm(`Êtes-vous sûr de vouloir réinitialiser le mot de passe de ${user.name} ? Un nouveau mot de passe sera généré aléatoirement.`)) {
|
||||
form.post(route('admin.users.reset-password', user.id));
|
||||
}
|
||||
};
|
||||
|
||||
const cancel = () => {
|
||||
isCreating.value = false;
|
||||
editingUser.value = null;
|
||||
@@ -136,6 +144,9 @@ const cancel = () => {
|
||||
{{ user.tenant ? user.tenant.name : (user.role === 'super_admin' ? 'Toutes les structures' : 'Aucun rattachement') }}
|
||||
</td>
|
||||
<td class="py-3 px-6 text-right space-x-2">
|
||||
<button v-if="page.props.auth.user.role === 'super_admin'" @click="resetPassword(user)" class="text-orange-600 hover:text-orange-900 px-3 py-1 rounded bg-orange-50 hover:bg-orange-100 transition-colors" title="Réinitialiser le mot de passe">
|
||||
MDP
|
||||
</button>
|
||||
<button @click="editUser(user)" class="text-indigo-600 hover:text-indigo-900 px-3 py-1 rounded bg-indigo-50 hover:bg-indigo-100 transition-colors">Modifier</button>
|
||||
<button @click="deleteUser(user)" class="text-red-600 hover:text-red-900 px-3 py-1 rounded bg-red-50 hover:bg-red-100 transition-colors">Supprimer</button>
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user