feat: version 4.3.0 -- Sesiones activas y pagina Mi cuenta

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-10-26 16:42:19 -05:00
parent 544928d04a
commit a6cc41666e
34 changed files with 464 additions and 110 deletions
+18
View File
@@ -1,5 +1,6 @@
import { ok, asyncHandler } from '../../utils/http.js';
import * as service from './service.js';
import * as sessions from '../auth/sessions-service.js';
export const getUsers = asyncHandler(async (req, res) => ok(res, await service.listUsers()));
export const getRoles = asyncHandler(async (req, res) => ok(res, await service.listRoles()));
@@ -38,3 +39,20 @@ export const getUserModules = asyncHandler(async (req, res) => ok(res, await ser
export const putUserModules = asyncHandler(async (req, res) => {
ok(res, await service.setUserModules(Number(req.params.id), req.body?.modules, req.currentUser));
});
export const getUserSessions = asyncHandler(async (req, res) => {
const userId = Number(req.params.id);
await sessions.assertManageTarget(userId, req.currentUser);
ok(res, await sessions.listSessions(userId, req.currentUser.id === userId ? req.currentUser.sessionPublicId : null));
});
export const deleteUserSession = asyncHandler(async (req, res) => {
const userId = Number(req.params.id);
await sessions.assertManageTarget(userId, req.currentUser);
ok(res, await sessions.revokeSession(userId, req.params.sessionId, req.currentUser.id, 'admin', req.currentUser.sessionPublicId));
});
export const postRevokeUserSessions = asyncHandler(async (req, res) => {
const userId = Number(req.params.id);
await sessions.assertManageTarget(userId, req.currentUser);
const result = await sessions.revokeAll(userId, req.currentUser.id, 'admin');
ok(res, { ...result, current: userId === req.currentUser.id });
});