diff --git a/src/app/admin/users/page.js b/src/app/admin/users/page.js index ac5edb0..9c9f15c 100644 --- a/src/app/admin/users/page.js +++ b/src/app/admin/users/page.js @@ -97,6 +97,30 @@ export default function UserManagementPage() { } }; + const handleToggleAssignable = async (userId, canBeAssigned) => { + try { + const response = await fetch(`/api/admin/users/${userId}`, { + method: "PUT", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ can_be_assigned: !canBeAssigned }), + }); + + if (!response.ok) { + throw new Error("Failed to update user"); + } + + setUsers(users.map(user => + user.id === userId + ? { ...user, can_be_assigned: !canBeAssigned } + : user + )); + } catch (err) { + setError(err.message); + } + }; + const getRoleColor = (role) => { switch (role) { case "admin": @@ -207,6 +231,9 @@ export default function UserManagementPage() { {user.is_active ? "Active" : "Inactive"} + + {user.can_be_assigned ? "Assignable" : "Not Assignable"} + @@ -237,6 +264,20 @@ export default function UserManagementPage() { )}
+
+
+ handleToggleAssignable(user.id, user.can_be_assigned)} + className="h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" + /> + +
+
+
+ setFormData({ ...formData, can_be_assigned: e.target.checked })} + className="h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" + /> + +
+