public function __construct()
 {
     // Ensure jQuery is loaded.
     add_action('admin_enqueue_scripts', array($this, 'maybe_include_jquery'));
     // Add the 'Azure AD' options page.
     add_action('admin_menu', array($this, 'add_options_page'));
     // Register the settings.
     add_action('admin_init', array($this, 'register_settings'));
     // Reset settings if requested to.
     add_action('admin_init', array($this, 'maybe_reset_settings'));
     // Migrate settings if requested to.
     add_action('admin_init', array($this, 'maybe_migrate_settings'));
     // If settings were reset, show confirmation.
     add_action('all_admin_notices', array($this, 'notify_if_reset_successful'));
     // If settings were migrated, show confirmation
     add_action('all_admin_notices', array($this, 'notify_json_migrate_status'));
     // Remove query arguments from the REQUEST_URI (leaves $_GET untouched).  Resolves issue #58
     $_SERVER['REQUEST_URI'] = remove_query_arg('aadsso_reset', $_SERVER['REQUEST_URI']);
     $_SERVER['REQUEST_URI'] = remove_query_arg('aadsso_migrate_from_json_status', $_SERVER['REQUEST_URI']);
     // Load stored configuration values (or defaults).
     $this->settings = get_option('aadsso_settings', AADSSO_Settings::get_defaults());
 }
 /**
  * Generates the URL for logging out of Azure AD. (Does not log out of WordPress.)
  */
 function get_logout_url()
 {
     // logout_redirect_uri is not a required setting, use default value if none is set
     $logout_redirect_uri = $this->settings->logout_redirect_uri;
     if (empty($logout_redirect_uri)) {
         $logout_redirect_uri = AADSSO_Settings::get_defaults('logout_redirect_uri');
     }
     return $this->settings->end_session_endpoint . '?' . http_build_query(array('post_logout_redirect_uri' => $logout_redirect_uri));
 }