/**
  * Object constructor
  *
  * @since 0.2.1
  *
  * @param null|AADSSO
  */
 protected function __construct($aadsso = null)
 {
     // Assign properties
     $this->aadsso = is_a($aadsso, 'AADSSO') ? $aadsso : AADSSO::get_instance();
     $this->settings = AADSSO_Settings::get_instance();
     // Add hooks
     add_action('init', array($this, 'init'));
 }
    }
    /**
     * Renders the link used to initiate the login to Azure AD.
     */
    function print_login_link()
    {
        $html = '<p class="aadsso-login-form-text">';
        $html .= '<a href="%s">';
        $html .= sprintf(__('Sign in with your %s account', AADSSO), htmlentities($this->settings->org_display_name));
        $html .= '</a><br /><a class="dim" href="%s">' . __('Sign out', AADSSO) . '</a></p>';
        printf($html, $this->get_login_url(), $this->get_logout_url());
    }
}
// Load settings JSON contents from DB and initialize the plugin
$aadsso_settings_instance = AADSSO_Settings::init();
$aadsso = AADSSO::get_instance($aadsso_settings_instance);
/*** Utility functions ***/
if (!function_exists('com_create_guid')) {
    /**
     * Generates a globally unique identifier ( Guid ).
     *
     * @return string A new random globally unique identifier.
     */
    function com_create_guid()
    {
        mt_srand((double) microtime() * 10000);
        $charid = strtoupper(md5(uniqid(rand(), true)));
        $hyphen = chr(45);
        // "-"
        $uuid = chr(123) . substr($charid, 0, 8) . $hyphen . substr($charid, 8, 4) . $hyphen . substr($charid, 12, 4) . $hyphen . substr($charid, 16, 4) . $hyphen . substr($charid, 20, 12) . chr(125);
        // "}"
    }
    public function printLoginLink()
    {
        echo $this->getLoginLink();
    }
    function getLoginLink()
    {
        $login_url = $this->getLoginUrl();
        $logout_url = $this->getLogoutUrl();
        $org_display_name = $this->settings->org_display_name;
        $html = '
			<p class="aadsso-login-form-text">
				<a href="%s">' . __('Sign in with your %s account', 'aad-sso') . '</a><br />
				<a class="dim" href="%s">' . __('Sign out', 'aad-sso') . '</a>
			</p>
		';
        $html = sprintf($html, $login_url, htmlentities($org_display_name), $logout_url);
        return apply_filters('aad_sso_login_link', $html, $login_url, $logout_url, $org_display_name);
    }
    public static function redirect_uri($context = '')
    {
        return apply_filters('aad_sso_redirect_uri', self::$redirect_uri, $context);
    }
    public static function logout_redirect_uri($context = '')
    {
        return apply_filters('aad_sso_logout_redirect_uri', self::$logout_redirect_uri, $context);
    }
}
// end class
$aadsso = AADSSO::get_instance();