/** * action: plugin_ui * * @access public * @param string $plugin_id * @param string $action * @return void */ public function action_plugin_ui($plugin_id, $action) { if ($plugin_id != $this->plugin_id()) { return; } if ($action == _t('Configure')) { $form = new FormUI(strtolower(get_class($this))); $form->on_success(array($this, 'on_success')); $refresh_interval = $form->append('text', 'refresh_interval', 'fireeagle__refresh_interval', _t('Refresh Interval (sec): ', 'fireeagle')); $refresh_interval->add_validator('validate_regex', '/^[0-9]+$/'); $form->append('submit', 'save', _t('Save')); $form->out(); } elseif ($action == _t('Authorize', 'fireeagle')) { // get request token $fireeagle = new FireEagleAPI($this->consumer_key, $this->consumer_secret); $token = $fireeagle->getRequestToken(); if (!$token || empty($token['oauth_token'])) { echo 'Invalid Response'; return; } $_SESSION['fireeagle']['req_token'] = $token['oauth_token']; $_SESSION['fireeagle']['req_token_secret'] = $token['oauth_token_secret']; $_SESSION['fireeagle']['state'] = 1; $oauth_callback = URL::get('admin', array('page' => 'plugins', 'configure' => $plugin_id, 'configaction' => '_callback')) . '#plugin_' . $plugin_id; ob_end_clean(); header('Location: ' . $fireeagle->getAuthorizeURL($token) . '&oauth_callback=' . urlencode($oauth_callback)); exit; } elseif ($action == _t('De-Authorize', 'fireeagle')) { Options::set('fireeagle__access_token_' . User::identify()->id, ''); Options::set('fireeagle__access_token_secret_' . User::identify()->id, ''); echo 'Fire Eagle De-authorization successfully.'; } elseif ($action == '_callback') { if (empty($_GET['oauth_token']) || $_GET['oauth_token'] != $_SESSION['fireeagle']['req_token']) { echo 'Invalid Token'; return; } // get access token $fireeagle = new FireEagleAPI($this->consumer_key, $this->consumer_secret, $_SESSION['fireeagle']['req_token'], $_SESSION['fireeagle']['req_token_secret']); $token = $fireeagle->getAccessToken(); if (!$token || empty($token['oauth_token'])) { echo 'Invalid Response'; return; } Options::set('fireeagle__access_token_' . User::identify()->id, $token['oauth_token']); Options::set('fireeagle__access_token_secret_' . User::identify()->id, $token['oauth_token_secret']); echo 'Fire Eagle Authorization successfully.'; } }