class UserauthorizationAction extends Action {
function handle($args) {
parent::handle($args);
- common_server_error(_t('Not yet implemented.'));
+
+ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+ $this->send_authorization();
+ } else {
+ try {
+ $req = $this->get_request();
+ $server = common_oauth_server();
+ $server->get_version($req);
+ $consumer = $server->get_consumer($req);
+ $token = $server->get_token($req, $consumer, "request");
+ $server->check_signature($req, $consumer, $token);
+ } catch (OAuthException $e) {
+ $this->clear_request();
+ common_server_error($e->getMessage());
+ return;
+ }
+
+ if (common_logged_in()) {
+ $this->show_form($req);
+ } else {
+ # Go log in, and then come back
+ common_set_returnto(common_local_url('userauthorization'));
+ common_redirect(common_local_url('login'));
+ }
+ }
+ }
+
+ function store_request($req) {
+ common_ensure_session();
+ $_SESSION['userauthorizationrequest'] = $req;
+ }
+
+ function get_request() {
+ common_ensure_session();
+ $req = $_SESSION['userauthorizationrequest'];
+ if (!$req) {
+ # XXX: may have an uncaught exception
+ $req = OAuthRequest::from_request();
+ if ($req) {
+ $this->store_request($req);
+ }
+ }
+ return $req;
+ }
+
+ function show_form($req) {
+ common_show_header(_t('Authorize subscription'));
+
+ common_show_footer();
+ }
+
+ function send_authorization() {
+ $req = $this->get_request();
+
+ if (!$req) {
+ common_user_error(_t('No authorization request!'));
+ return;
+ }
+
+ if ($this->boolean('authorize')) {
+
+ }
}
}