public function plugin_updated($version, $previous_version) { $settings_changes = false; if ($previous_version) { if (version_compare($previous_version, '2.2.9.1', '<')) { $this->onboarding->set_first_login_true(); } if (version_compare($previous_version, '2.1', '<')) { if (!session_id()) { @session_start(); } if (isset($_SESSION['logged_in_at'])) { $session = ClefSession::start(); $session->set('logged_in_at', $_SESSION['logged_in_at']); } } if (version_compare($previous_version, '2.0', '<')) { $this->onboarding->migrate_global_login_count(); $this->badge->hide_prompt(); if ($this->settings->get('clef_password_settings_disable_certain_passwords') == "Disabled") { $this->settings->set('clef_password_settings_disable_certain_passwords', ''); } } if (version_compare($previous_version, "1.9.1.1", '<')) { $this->badge->hide_prompt(); } if (version_compare($previous_version, "1.9", '<')) { if (!$previous_version) { $previous_version = $version; } $this->settings->get('installed_at', $previous_version); } if (version_compare($previous_version, "1.8.0", '<')) { $settings_changes = array("clef_password_settings_override_key" => "clef_override_settings_key"); } } else { $this->settings->set('installed_at', $version); $this->settings->set('clef_form_settings_embed_clef', 1); $this->settings->set_saved_affiliates(); } if ($settings_changes) { foreach ($settings_changes as $old_name => $new_name) { $value = $this->settings->get($old_name); if ($value) { $this->settings->set($new_name, $value); $this->settings->remove($old_name); } } } $this->settings->set("version", $version); }
public function ajax_connect_clef_account_with_oauth_code() { if (!ClefUtils::isset_POST('identifier')) { return new WP_Error("invalid_oauth_code", __("invalid OAuth Code", "clef")); } try { $info = ClefUtils::exchange_oauth_code_for_info(ClefUtils::isset_POST('identifier'), $this->settings); } catch (LoginException $e) { return new WP_Error("bad_oauth_exchange", $e->getMessage()); } $result = ClefUtils::associate_clef_id($info->id); if (is_wp_error($result)) { return $result; } else { $session = ClefSession::start(); $session->set('logged_in_at', time()); return array("success" => true); } }
public function connect_clef_account() { if (ClefUtils::isset_GET('connect_clef_account') && ClefUtils::isset_get('code')) { try { $info = ClefUtils::exchange_oauth_code_for_info(ClefUtils::isset_GET('code'), $this->settings); $result = ClefUtils::associate_clef_id($info->id); if (is_wp_error($result)) { $this->connect_error = $result; } else { $session = ClefSession::start(); $session->set('logged_in_at', time()); return; } } catch (LoginException $e) { $this->connect_error = new WP_Error("bad_oauth_exchange", $e->getMessage()); } catch (ClefStateException $e) { $this->connect_error = new WP_Error("bad_state_parameter", $e->getMessage()); } } }
public function logged_out_check($opts = array("redirect" => false)) { $logged_out = false; // if the user is logged into WP but logged out with Clef, sign them out of Wordpress if (is_user_logged_in()) { $session = ClefSession::start(); if ($session->get('logged_in_at') && $session->get('logged_in_at') < get_user_meta(wp_get_current_user()->ID, "logged_out_at", true)) { wp_logout(); $logged_out = true; } else { $logged_out = false; } } if ($opts['redirect'] && $logged_out) { wp_redirect(wp_login_url()); exit; } else { return $logged_out; } }
public static function verify_state() { $state = ClefUtils::isset_GET('state') ? ClefUtils::isset_GET('state') : ClefUtils::isset_POST('state'); $session = ClefSession::start(); if ($session->get('state') && $state && $session->get('state') == $state) { $session->set('state', null); return true; } else { throw new ClefStateException('The state parameter is not verified. Please refresh your page and try again, you may be experiencing a CSRF attempt'); } }
public function ajax_connect_clef_account_with_clef_id() { if (!ClefUtils::isset_POST('identifier')) { return new WP_Error("invalid_clef_id", __("invalid Clef ID", "wpclef")); } $result = ClefUtils::associate_clef_id($_POST["identifier"]); if (is_wp_error($result)) { return $result; } else { $session = ClefSession::start(); $session->set('logged_in_at', time()); return array("success" => true); } }
public function display_connect_clef_account_success() { $session = ClefSession::start(); if ($session->get('clef_account_connected_on_login')) { $session->set('clef_account_connected_on_login', null); ?> <div class="updated clef-flash connect-clef-account-on-login-message"> <img src="<?php echo CLEF_URL . 'assets/dist/img/gradient_icon_32.png'; ?> " alt="Clef"> <p><?php _e('Success. <b>Your Clef account has been connected!</b>', 'clef'); ?> </p> </div> <?php } }