                unset($query[$key]);
                $hasLegacyTermFilter = true;
            }
        }

        if (!$hasLegacyTermFilter) {
            return null;
        }

        $target = site_url($route) . (!empty($query) ? '?' . http_build_query($query) : '');
        return redirect()->to($target);
    }

    public function manageUsers()
    {// Fetch all users
        $users = $this->userModel->findAll();

        // Fetch roles for each user
        foreach ($users as &$user) {
            $userRoles = ($this->userRoleModel)->where('user_id', $user['id'])->findAll();
            $user['roles'] = [];
            foreach ($userRoles as $userRole) {
                $role = $this->roleModel->find($userRole['role_id']);
                if ($role) {
                    $user['roles'][] = $role['name'];
                }
            }
        }

        $data['users'] = $users;

        return view('administrator/manage_users', $data);
    }

    public function editUser($userId)
    {$user = $this->userModel->find($userId);

        // Fetch roles assigned to the user
        $userRoles = $this->userRoleModel->where('user_id', $userId)->findAll();
        $assignedRoles = [];
        foreach ($userRoles as $userRole) {
            $role = $this->roleModel->find($userRole['role_id']);
            if ($role) {
                $assignedRoles[] = $role['id'];
            }
        }

        $roles = $this->roleModel->findAll();

        $data = [
            'user' => $user,
            'roles' => $roles,
            'assignedRoles' => $assignedRoles,
        ];

        return view('administrator/edit_user', $data);
    }

    public function updateUser()
    {$userId = $this->request->getPost('id');
        $roleIds = $this->request->getPost('role_ids');

        // Update user details
        $data = [
            'id' => $userId,
            'firstname' => $this->request->getPost('firstname'),
            'lastname' => $this->request->getPost('lastname'),
            'email' => $this->request->getPost('email'),
        ];
        $this->userModel->save($data);

        // Update user roles
        $this->userRoleModel->where('user_id', $userId)->delete();
        foreach ($roleIds as $roleId) {
            $this->userRoleModel->save([
                'user_id' => $userId,
                'role_id' => $roleId,
            ]);
        }

        service('staffDirectorySync')->syncUser((int) $userId);

        return redirect()->to('/administrator/manage-users');
    }

    public function deleteUser($userId)
    {// Delete user roles first
        $this->userRoleModel->where('user_id', $userId)->delete();

        // Delete the user
        $this->userModel->delete($userId);

        return redirect()->to('/administrator/manage-users');
    }

    private function canManageAdminNotifications(): bool
    {
        $session = session();
        if (! $session->get('is_logged_in')) {
            return false;
