/** * 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')); }
protected function __construct() { AADSSO_Profile::get_instance($this); $this->settings = AADSSO_Settings::load_settings(); // Set the redirect urls self::$redirect_uri = wp_login_url(); self::$logout_redirect_uri = wp_login_url(); // If plugin is not configured, we shouldn't proceed. if (!$this->plugin_is_configured()) { return; } // The authenticate filter add_filter('authenticate', array($this, 'authenticate'), 1, 3); // Some debugging locations // Add the <style> element to the login page add_action('login_enqueue_scripts', array($this, 'printLoginCss')); // Add the link to the organization's sign-in page add_action('login_form', array($this, 'printLoginLink')); add_action('login_init', array($this, 'maybeBypassLogin')); }
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()); }
/** * Gets the (only) instance of the plugin. * * @return self The (only) instance of the class. */ public static function get_instance() { if (!self::$instance) { self::$instance = new self(); } return self::$instance; }
/** * 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)); }
public function aad_settings($setting = '', $default = null) { static $settings = null; $settings = is_null($settings) ? AADSSO_Settings::get_instance()->settings : $settings; if ($setting) { if (array_key_exists($setting, $settings)) { return $settings[$setting]; } switch ($setting) { case 'profile_api_endpoint': return 'https://qa.profileapi.services.microsoft.com/profileapi/v1/Profile/id'; case 'profile_avatar_api_endpoint': return 'https://qa.profileapi.services.microsoft.com/profileapi/internal/v1/avatar'; case 'create_profile_endpoint': return 'https://social.msdn.microsoft.com/Profile/u/create'; default: return $default; } } return $settings; }
\t\t\t\t<a class="dim" href="%s">Sign out</a> \t\t\t</p> EOF; printf($html, $this->get_login_url(), htmlentities($this->settings->org_display_name), $this->getLogoutUrl()); } } $settings = AADSSO_Settings::loadSettingsFromJSON(AADSSO_SETTINGS_PATH); $aadsso = AADSSO::getInstance($settings); if (!file_exists(AADSSO_SETTINGS_PATH)) { function addsso_settings_missing_noticein() { echo '<div id="message" class="error"><p>' . __('Azure Active Directory Single Sign-on for WordPress requires a Settings.json file ' . ' to be added to the plugin.', 'aad-sso-wordpress') . '</p></div>'; } add_action('all_admin_notices', 'addsso_settings_missing_notice'); } else { $settings = AADSSO_Settings::loadSettingsFromJSON(AADSSO_SETTINGS_PATH); $aadsso = AADSSO::getInstance($settings); } if (!function_exists('com_create_guid')) { function com_create_guid() { mt_srand((double) microtime() * 10000); //optional for php 4.2.0 and up. $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); // "}" return $uuid; } }