<?php
/**
 * The broker class.
 *
 * The broker implementation has a bug on the
 * method used to generate the attach url.
 *
 * @package WP_Ultimo
 * @subpackage SSO
 * @since 2.0.11
 */

namespace WP_Ultimo\SSO;

// Exit if accessed directly
defined('ABSPATH') || exit;

use \WP_Ultimo\Dependencies\Jasny\SSO\Broker\Broker;

/**
 * The SSO Broker implementation.
 *
 * @since 2.0.11
 */
class SSO_Broker extends Broker {

	/**
     * Checks if the current SSO call is a must-redirect call.
     *
     * @since 2.0.11
     * @return boolean
     */
	public function is_must_redirect_call() {

		return $this->getVerificationCode() === 'must-redirect';

	} // end is_must_redirect_call;
	/**
	 * Get URL to attach session at SSO server.
	 *
	 * @param array<string,mixed> $params The params to be passed.
	 */
 public function getAttachUrl(array $params = array()) : string { // phpcs:ignore

		if ($this->getToken() === null) {

			$this->generateToken();

		} // end if;

		$data = array(
			'broker'   => $this->broker,
			'token'    => $this->getToken(),
			'checksum' => $this->generateChecksum('attach')
		);

		return add_query_arg($data + $params, $this->url);

	} // end getAttachUrl;

} // end class SSO_Broker;
