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)); }