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"
+ />
+
+
+