diff --git a/VERSION b/VERSION index 5bd0c3a6..c3c6aefa 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.1.126 +1.1.127 diff --git a/src/routes/admin.js b/src/routes/admin.js index 8c824eab..1974fe9e 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -30,7 +30,24 @@ const router = express.Router() router.get('/users', authenticateAdmin, async (req, res) => { try { const userService = require('../services/userService') - const result = await userService.getAllUsers({ isActive: true, limit: 1000 }) // Get all active users + + // Extract query parameters for filtering + const { role, isActive } = req.query + const options = { limit: 1000 } + + // Apply role filter if provided + if (role) { + options.role = role + } + + // Apply isActive filter if provided, otherwise default to active users only + if (isActive !== undefined) { + options.isActive = isActive === 'true' + } else { + options.isActive = true // Default to active users for backwards compatibility + } + + const result = await userService.getAllUsers(options) // Extract users array from the paginated result const allUsers = result.users || [] diff --git a/web/admin-spa/src/views/UserManagementView.vue b/web/admin-spa/src/views/UserManagementView.vue index df4f69b7..dbe1e5f0 100644 --- a/web/admin-spa/src/views/UserManagementView.vue +++ b/web/admin-spa/src/views/UserManagementView.vue @@ -554,13 +554,17 @@ const formatDate = (dateString) => { const loadUsers = async () => { loading.value = true try { + // Build params object, only including parameters with actual values + const params = {} + if (selectedRole.value && selectedRole.value.trim() !== '') { + params.role = selectedRole.value + } + if (selectedStatus.value !== '') { + params.isActive = selectedStatus.value + } + const [usersResponse, statsResponse] = await Promise.all([ - apiClient.get('/users', { - params: { - role: selectedRole.value || undefined, - isActive: selectedStatus.value !== '' ? selectedStatus.value : undefined - } - }), + apiClient.get('/users', { params }), apiClient.get('/users/stats/overview') ])