Example #1
0
 /**
  * Obtiene un usuario si está logueado o si lo puede obtener del request o cualquier otro medio.
  * Si el usuario es nulo, se puede llegar a llamar a requerir_autenticacion (si la operacion lo requiere).
  * En caso de errores, guardarlos y enviarlos en la respuesta.
  *
  * @param request $request
  *
  * @return rest_usuario el usuario logueado o null si es anonimo
  */
 public function get_usuario(request $request = null)
 {
     $auth_header = $request->headers('HTTP_AUTHORIZATION', null);
     if ($auth_header === null) {
         return;
     }
     $well_formed_header = preg_match('/Bearer (.+)/i', $auth_header, $result);
     if ($well_formed_header === 0 || $well_formed_header === false) {
         return;
     }
     $token = $result[1];
     $info = $this->decoder->decode($token);
     if ($info === null) {
         return;
     }
     $usuario = new rest_usuario();
     $usuario->set_usuario($info->get_user_id());
     $usuario->set_perfiles($info->get_scopes());
     return $usuario;
 }