Buenos dias,
desde un moodle están queriendo consumir datos de la base de Guarani (estamos en la version 3.16.2)
Ellos quieren que el usuario de moodle alumno, cuando haga el loguin primero haga el chequeo mediante un servicio rest en guarani en donde le devuelva si el usuario y clave que les pasaron es o no la de guarani.
El concepto sería parecido a como lo usa al app de guarani, loguearse con el usuario y clave de Guarani
Mi pregunta es:
La conexión sería de Moodle a Guarani, tendría qeu ofrecerles el servicio y como tendría qeu hacer la autentificación
Las credenciales para la autentificación, donde van??
Se puede hacer desde /instalacion/i__desarrollo/p__guarani/rest/ creando el servicio y un cliente???
insertar las librerias y hacer un pers_autoload??
las librerías serían éstas:
El primer archivo va en php/nucleo/moodle/moodle_loguin.php
y contiene lo siguiente:
<?php
//personalizacion/php/nucleo/eduv/login.php
require_once(dirname(__FILE__).'/../../3ros/bcrypt.php');
class rest_login_externo {
function get_list($identificacion, $clave)
{
$sql= "select
clave
from
negocio.mdp_personas as P
inner join negocio.mdp_personas_uner as PU on
P.persona = PU.persona and
P.usuario='".$identificacion."' and
PU.responsable_academica=11
FETCH FIRST 1 ROWS ONLY";
$sql= guarani_db::consultar($sql);
$clave_almacenada = $sql[0]['clave'];
$enc = new bcrypt(10);
$pass_ok = ($enc->verify(($clave), $clave_almacenada));
return ["valido"=>$pass_ok];
}
}
El segundo archivo va en /php/rest/eduv/recurso_loguin_externo.php
y contiene lo siguiente:
<?php
//personalizacion/php/rest/eduv/recurso_login_externo.php
use SIUToba\rest\rest;
use SIUToba\rest\lib\rest_validador;
class recurso_login_externo implements SIUToba\rest\lib\modelable{
/**
* @var rest_login_externo
*/
protected $modelo;
function __construct()
{
$this->modelo = guarani::rest('rest_login_externo');
}
public static function _get_modelos()
{
$login = array( 'identificacion' => array('type' => 'string'),
'clave' => array('type' => 'string')
);
return array('Acceso' => $login );
}
/*
* GET /login-externo/identificacion/acceso/clave
*
*
* @notes
* Devuelve si el certificado pasado por parámetro es válida para el alumno
*
* @summary Valido
* @responses 404 El alumno no existe
* @responses 400 Error en los parámetros
*/
function get_acceso($identificacion, $clave)
{
$datos = $this->modelo->get_list($identificacion, $clave);
rest::response()->get_list($datos);
}
}
?>
Como le configuro un usuario y clave para la api de guarani?
Las subcarpetas que encontrás en ‘<path proyecto Guaraní>/instalacion/i__desarrollo/p__guarani/rest/’ corresponden a los sistemas de los cuales Guaraní va a consumir servicios (por ejemplo: kolla, tehuelche).
Los usuarios habilitados para consumir servicios de Guaraní se configuran en ‘<path proyecto Guaraní>/instalacion/i__desarrollo/p__guarani/rest/servidor_usuarios.ini’.