C. php / login.php

1
<?php
2
3
require_once __DIR__ . "/lib/manejaErrores.php";
4
require_once __DIR__ . "/lib/BAD_REQUEST.php";
5
require_once __DIR__ . "/lib/recibeTextoObligatorio.php";
6
require_once __DIR__ . "/lib/recibeTexto.php";
7
require_once __DIR__ . "/lib/devuelveJson.php";
8
require_once __DIR__ . "/lib/rolIdsParaUsuId.php";
9
require_once __DIR__ . "/SAN.php";
10
require_once __DIR__ . "/USU_ID.php";
11
require_once __DIR__ . "/ROL_IDS.php";
12
require_once __DIR__ . "/Bd.php";
13
require_once __DIR__ . "/protegeLogin.php";
14
require_once __DIR__ . "/usuarioBuscaSan.php";
15
16
list($san, $rolIds) = protegeLogin([]);
17
18
$san = recibeTextoObligatorio("san");
19
$sen = recibeTexto("sen");
20
21
$bd = Bd::pdo();
22
23
$usuario = usuarioBuscaSan($bd, $san);
24
25
if (
26
 $usuario === false
27
 || !password_verify(
28
  ($sen === false || $sen === null) ? "" : $sen,
29
  $usuario["USU_SEN"]
30
 )
31
)
32
 throw new ProblemDetailsException([
33
  "status" => BAD_REQUEST,
34
  "type" => "/errors/datosincorrectos.html",
35
  "title" => "Datos incorrectos.",
36
  "detail" => "El san y/o el sen proporcionados son incorrectos.",
37
 ]);
38
39
$_SESSION[SAN] = $san;
40
$_SESSION[USU_ID] = $usuario[USU_ID];
41
42
devuelveJson([
43
 SAN => $san,
44
 ROL_IDS => rolIdsParaUsuId($bd, $usuario[USU_ID])
45
]);
46
skip_previous skip_next