/*! * Copyright (c) 2024 PLANKA Software GmbH * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md */ /** * @swagger * /users: * get: * summary: Get all users * description: Retrieves a list of all users. Requires admin or project owner privileges. * tags: * - Users * operationId: getUsers * responses: * 200: * description: List of users retrieved successfully * content: * application/json: * schema: * type: object * required: * - items * properties: * items: * type: array * items: * $ref: '#/components/schemas/User' * 400: * $ref: '#/components/responses/ValidationError' * 401: * $ref: '#/components/responses/Unauthorized' * 403: * $ref: '#/components/responses/Forbidden' */ const Errors = { NOT_ENOUGH_RIGHTS: { notEnoughRights: 'Not enough rights', }, }; module.exports = { exits: { notEnoughRights: { responseType: 'forbidden', }, }, async fn() { const { currentUser } = this.req; if (!sails.helpers.users.isAdminOrProjectOwner(currentUser)) { throw Errors.NOT_ENOUGH_RIGHTS; } const users = await User.qm.getAll(); return { items: sails.helpers.users.presentMany(users, currentUser), }; }, };