diff options
author | Evan Prodromou <evan@controlyourself.ca> | 2009-08-21 08:29:51 -0400 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2009-08-21 08:29:51 -0400 |
commit | c78772b2748f70acc8158b665218fe53b277a031 (patch) | |
tree | 8ff1886b3a95002880c605745029ba52b7303b4f /actions/finishremotesubscribe.php | |
parent | cb2184ed448ecb043d825d4d12b8193d63c4d84c (diff) | |
parent | 70235d7f05d2ce7dda77af88518612fa005783df (diff) |
Merge branch '0.9.x' of git@gitorious.org:laconica/mainline into 0.9.x
Conflicts:
actions/postnotice.php
Diffstat (limited to 'actions/finishremotesubscribe.php')
-rw-r--r-- | actions/finishremotesubscribe.php | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/actions/finishremotesubscribe.php b/actions/finishremotesubscribe.php index 13f367823..da563cb29 100644 --- a/actions/finishremotesubscribe.php +++ b/actions/finishremotesubscribe.php @@ -76,11 +76,10 @@ class FinishremotesubscribeAction extends Action /* Create user objects for both users. Do it early for request validation. */ - $listenee = $service->getListeneeURI(); - $user = User::staticGet('uri', $listenee); + $user = User::staticGet('uri', $service->getListeneeURI()); if (!$user) { - $this->clientError(_('User being listened to doesn\'t exist.')); + $this->clientError(_('User being listened to does not exist.')); return; } @@ -91,21 +90,31 @@ class FinishremotesubscribeAction extends Action return; } + $remote = Remote_profile::staticGet('uri', $service->getListenerURI()); + + $profile = Profile::staticGet($remote->id); + + if ($user->hasBlocked($profile)) { + $this->clientError(_('That user has blocked you from subscribing.')); + return; + } + /* Perform the handling itself via libomb. */ try { - $service->finishAuthorization($listenee); + $service->finishAuthorization(); } catch (OAuthException $e) { if ($e->getMessage() == 'The authorized token does not equal the ' . 'submitted token.') { - $this->clientError(_('Not authorized.')); + $this->clientError(_('You are not authorized.')); return; } else { - $this->clientError(_('Couldn\'t convert request token to ' . + $this->clientError(_('Could not convert request token to ' . 'access token.')); return; } } catch (OMB_RemoteServiceException $e) { - $this->clientError(_('Unknown version of OMB protocol.')); + $this->clientError(_('Remote service uses unknown version of ' . + 'OMB protocol.')); return; } catch (Exception $e) { common_debug('Got exception ' . print_r($e, true), __FILE__); @@ -115,8 +124,6 @@ class FinishremotesubscribeAction extends Action /* The service URLs are not accessible from datastore, so setting them after insertion of the profile. */ - $remote = Remote_profile::staticGet('uri', $service->getListenerURI()); - $orig_remote = clone($remote); $remote->postnoticeurl = |