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 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 connect_clef_account_on_login($user)
 {
     if (ClefUtils::isset_POST('clef_id') && $user && !is_wp_error($user)) {
         ClefUtils::associate_clef_id(ClefUtils::isset_POST('clef_id'), $user->ID);
         $session = ClefSession::start();
         $session->set('clef_account_connected_on_login', true);
         $session->set('logged_in_at', time());
     }
     return $user;
 }