. /** * Webservices for auth_userkey. * * @package auth_userkey * @copyright 2016 Dmitrii Metelkin (dmitriim@catalyst-au.net) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once($CFG->libdir . "/externallib.php"); require_once($CFG->dirroot . "/webservice/lib.php"); require_once($CFG->dirroot . "/auth/userkey/auth.php"); class auth_userkey_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('userkey')->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('userkey')) { throw new webservice_access_exception('The userkey authentication plugin is disabled.'); } $context = context_system::instance(); require_capability('auth/userkey:generatekey', $context); $auth = get_auth_plugin('userkey'); $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_URL, 'Login URL for a user to log in'), ) ); } }