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:
@@ -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 });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user