. /** * Webservices for auth_jwt. * * @package auth_jwt * @copyright 2016 Dmitrii Metelkin (dmitriim@catalyst-au.net), 2024 Kumi Systems e.U. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); require_once($CFG->libdir . "/externallib.php"); require_once($CFG->dirroot . "/webservice/lib.php"); require_once($CFG->dirroot . "/auth/jwt/auth.php"); /** * Webservices for auth_jwt. * * @package auth_jwt * @copyright 2016 Dmitrii Metelkin (dmitriim@catalyst-au.net) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class auth_jwt_external extends external_api { /** * Return request_login_url webservice parameters. * * @return \external_function_parameters */ public static function request_login_url_parameters() { return new external_function_parameters( array( 'user' => new external_single_structure( get_auth_plugin('jwt')->get_request_login_url_user_parameters() ) ) ); } /** * Return login url array. * * @param array $user * * @return array * @throws \dml_exception * @throws \required_capability_exception * @throws \webservice_access_exception */ public static function request_login_url($user) { if (!is_enabled_auth('jwt')) { throw new webservice_access_exception(get_string('pluginisdisabled', 'auth_jwt')); } $context = context_system::instance(); require_capability('auth/jwt:generatekey', $context); $auth = get_auth_plugin('jwt'); $loginurl = $auth->get_login_url($user); return array( 'loginurl' => $loginurl, ); } /** * Describe request_login_url webservice return structure. * * @return \external_single_structure */ public static function request_login_url_returns() { return new external_single_structure( array( 'loginurl' => new external_value(PARAM_RAW, 'Login URL for a user to log in'), ) ); } }