SERVICIO REST

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?

Hola Luciana,

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’.

Saludos, Florencia.

Flor, había hecho eso y no estaba funcionando, igual no se conectaba.
probé otras cosas y ahora le funciona

ni bien sepa cual de todas las modificaciones que hice es la que funcionó lo posteo acá para que quede registrado como lo hice

Hola, agrego a lo de Florencia:

Te dejo la documentación de como Personalizar Servicios REST.

Luego en el archivo instalacion/i__desarrollo/p__guarani/rest/servidor_usuarios.ini deberías agregar un usuario para Moodle, ej:


[moodle]
password = 123456789*-a

Cuando ingreses a la API REST de Guaraní, y te pide credenciales seria:
Usuario: moodle
Password: 123456789*-a

NOTA: Basarse en los servicios ya desarrollados por el SIU, carpeta php/rest/autorizacion_guarani.php

saludos.