Files
planka/server/api/controllers/users/index.js
2025-09-08 16:20:27 +02:00

63 lines
1.4 KiB
JavaScript
Executable File

/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
/**
* @swagger
* /api/users:
* get:
* summary: Get all users
* description: Retrieves a list of all users. Requires admin or project owner privileges.
* tags:
* - Users
* 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),
};
},
};