1 | import { consumeJson } from "../lib/js/consumeJson.js" |
2 | import { exportaAHtml } from "../lib/js/exportaAHtml.js" |
3 | import { Sesion } from "./Sesion.js" |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | export async function protege(servicio, rolIdsPermitidos, urlDeProtección) { |
11 | const respuesta = await consumeJson(servicio) |
12 | const sesion = new Sesion(respuesta.body) |
13 | if (rolIdsPermitidos === undefined) { |
14 | return sesion |
15 | } else { |
16 | const rolIds = sesion.rolIds |
17 | for (const rolId of rolIdsPermitidos) { |
18 | if (rolIds.has(rolId)) { |
19 | return sesion |
20 | } |
21 | } |
22 | if (urlDeProtección !== undefined) { |
23 | location.href = urlDeProtección |
24 | } |
25 | throw new Error("No autorizado.") |
26 | } |
27 | } |
28 | |
29 | exportaAHtml(protege) |