diff --git a/packages/strapi-plugin-users-permissions/config/routes.json b/packages/strapi-plugin-users-permissions/config/routes.json index 2491f37359..5b917339c9 100644 --- a/packages/strapi-plugin-users-permissions/config/routes.json +++ b/packages/strapi-plugin-users-permissions/config/routes.json @@ -299,6 +299,15 @@ } } }, + { + "method": "GET", + "path": "/users/count", + "handler": "User.count", + "config": { + "prefix": "", + "policies": [] + } + }, { "method": "GET", "path": "/users", diff --git a/packages/strapi-plugin-users-permissions/controllers/User.js b/packages/strapi-plugin-users-permissions/controllers/User.js index 702b311369..9a67ea0d06 100644 --- a/packages/strapi-plugin-users-permissions/controllers/User.js +++ b/packages/strapi-plugin-users-permissions/controllers/User.js @@ -52,6 +52,18 @@ module.exports = { ctx.send(data); }, + /** + * Retrieve user count. + * @return {Number} + */ + + async count(ctx) { + if (ctx.query._q) { + return await strapi.plugins['users-permissions'].services.user.countSearch(ctx.query); + } + return await strapi.plugins['users-permissions'].services.user.count(ctx.query); + }, + /** * Retrieve a user record. * @return {Object} diff --git a/packages/strapi-plugin-users-permissions/services/User.js b/packages/strapi-plugin-users-permissions/services/User.js index 475b71f3d8..b3ae579875 100644 --- a/packages/strapi-plugin-users-permissions/services/User.js +++ b/packages/strapi-plugin-users-permissions/services/User.js @@ -10,6 +10,26 @@ const bcrypt = require('bcryptjs'); const _ = require('lodash'); module.exports = { + /** + * Promise to count users + * + * @return {Promise} + */ + + count(params) { + return strapi.query('user', 'users-permissions').count(params); + }, + + /** + * Promise to search count users + * + * @return {Promise} + */ + + countSearch(params) { + return strapi.query('user', 'users-permissions').countSearch(params); + }, + /** * Promise to add a/an user. * @return {Promise}