]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/userauthorization.php
debug message for when services returns null
[quix0rs-gnu-social.git] / actions / userauthorization.php
index 5b8a8bdc8095b9c99d86fbc4fc801f9715c8f21e..ee156bd79eef606e7fc3465b1a4f1d4965767d5d 100644 (file)
@@ -22,6 +22,67 @@ if (!defined('LACONICA')) { exit(1); }
 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')) {
+                       
+               }
        }
 }