]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/userauthorization.php
* improve L10n consistency for English. For example proper punctuation for all button...
[quix0rs-gnu-social.git] / actions / userauthorization.php
index d5b6a69986a7edfdeb61a55b3cefa55f43352856..b7192ccdb281be856f61a2bf9e009f316b892022 100644 (file)
@@ -5,14 +5,14 @@
  * PHP version 5
  *
  * @category Action
- * @package  Laconica
- * @author   Evan Prodromou <evan@controlyourself.ca>
- * @author   Robin Millette <millette@controlyourself.ca>
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @author   Robin Millette <millette@status.net>
  * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://laconi.ca/
+ * @link     http://status.net/
  *
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, 2009, Control Yourself, Inc.
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2008, 2009, StatusNet, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('LACONICA')) {
-    exit(1);
-}
+if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
 
 require_once INSTALLDIR.'/lib/omb.php';
 require_once INSTALLDIR.'/extlib/libomb/service_provider.php';
 require_once INSTALLDIR.'/extlib/libomb/profile.php';
 define('TIMESTAMP_THRESHOLD', 300);
 
+// @todo FIXME: Missing documentation.
 class UserauthorizationAction extends Action
 {
     var $error;
@@ -71,7 +70,9 @@ class UserauthorizationAction extends Action
             $profile = $user->getProfile();
             if (!$profile) {
                 common_log_db_error($user, 'SELECT', __FILE__);
-                $this->serverError(_('User without matching profile'));
+                // TRANS: Server error displayed when trying to authorise a remote subscription request
+                // TRANS: while the user has no profile.
+                $this->serverError(_('User without matching profile.'));
                 return;
             }
 
@@ -80,7 +81,7 @@ class UserauthorizationAction extends Action
             try {
                 $this->validateOmb();
                 $srv = new OMB_Service_Provider(
-                        profile_to_omb_profile($_GET['omb_listener'], $profile),
+                        profile_to_omb_profile($user->uri, $profile),
                         omb_oauth_datastore());
 
                 $remote_user = $srv->handleUserAuth();
@@ -104,16 +105,18 @@ class UserauthorizationAction extends Action
 
     function title()
     {
+        // TRANS: Page title.
         return _('Authorize subscription');
     }
 
     function showPageNotice()
     {
+        // TRANS: Page notice on "Auhtorize subscription" page.
         $this->element('p', null, _('Please check these details to make sure '.
                                     'that you want to subscribe to this ' .
-                                    'user\'s notices. If you didn\'t just ask ' .
-                                    'to subscribe to someone\'s notices, '.
-                                    'click “Reject”.'));
+                                    'user’s notices. If you didn’t just ask ' .
+                                    'to subscribe to someones notices, '.
+                                    'click "Reject".'));
     }
 
     function showContent()
@@ -129,10 +132,11 @@ class UserauthorizationAction extends Action
         $location = $params->getLocation();
         $avatar   = $params->getAvatarURL();
 
-        $this->elementStart('div', array('class' => 'profile'));
         $this->elementStart('div', 'entity_profile vcard');
-        $this->elementStart('a', array('href' => $profile,
-                                            'class' => 'url'));
+        $this->elementStart('dl', 'entity_depiction');
+        // TRANS: DT element on Authorise Subscription page.
+        $this->element('dt', null, _('Photo'));
+        $this->elementStart('dd');
         if ($avatar) {
             $this->element('img', array('src' => $avatar,
                                         'class' => 'photo avatar',
@@ -140,11 +144,20 @@ class UserauthorizationAction extends Action
                                         'height' => AVATAR_PROFILE_SIZE,
                                         'alt' => $nickname));
         }
+        $this->elementEnd('dd');
+        $this->elementEnd('dl');
+
+        $this->elementStart('dl', 'entity_nickname');
+        // TRANS: DT element on Authorise Subscription page.
+        $this->element('dt', null, _('Nickname'));
+        $this->elementStart('dd');
         $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname';
-        $this->elementStart('span', $hasFN);
+        $this->elementStart('a', array('href' => $profile,
+                                       'class' => 'url '.$hasFN));
         $this->raw($nickname);
-        $this->elementEnd('span');
         $this->elementEnd('a');
+        $this->elementEnd('dd');
+        $this->elementEnd('dl');
 
         if (!is_null($fullname)) {
             $this->elementStart('dl', 'entity_fn');
@@ -157,6 +170,7 @@ class UserauthorizationAction extends Action
         }
         if (!is_null($location)) {
             $this->elementStart('dl', 'entity_location');
+        // TRANS: DT element on Authorise Subscription page.
             $this->element('dt', null, _('Location'));
             $this->elementStart('dd', 'label');
             $this->raw($location);
@@ -166,6 +180,7 @@ class UserauthorizationAction extends Action
 
         if (!is_null($homepage)) {
             $this->elementStart('dl', 'entity_url');
+        // TRANS: DT element on Authorise Subscription page.
             $this->element('dt', null, _('URL'));
             $this->elementStart('dd');
             $this->elementStart('a', array('href' => $homepage,
@@ -178,6 +193,7 @@ class UserauthorizationAction extends Action
 
         if (!is_null($bio)) {
             $this->elementStart('dl', 'entity_note');
+            // TRANS: DT element on Authorise Subscription page where bio is displayed.
             $this->element('dt', null, _('Note'));
             $this->elementStart('dd', 'note');
             $this->raw($bio);
@@ -187,6 +203,7 @@ class UserauthorizationAction extends Action
 
         if (!is_null($license)) {
             $this->elementStart('dl', 'entity_license');
+            // TRANS: DT element on Authorise Subscription page where license is displayed.
             $this->element('dt', null, _('License'));
             $this->elementStart('dd', 'license');
             $this->element('a', array('href' => $license,
@@ -208,15 +225,18 @@ class UserauthorizationAction extends Action
                                                          'userauthorization')));
         $this->hidden('token', common_session_token());
 
-        $this->submit('accept', _('Accept'), 'submit accept', null,
-                      _('Subscribe to this user'));
-        $this->submit('reject', _('Reject'), 'submit reject', null,
-                      _('Reject this subscription'));
+        // TRANS: Button text on Authorise Subscription page.
+        $this->submit('accept', _m('BUTTON','Accept'), 'submit accept', null,
+                      // TRANS: Title for button on Authorise Subscription page.
+                      _('Subscribe to this user.'));
+        // TRANS: Button text on Authorise Subscription page.
+        $this->submit('reject', _m('BUTTON','Reject'), 'submit reject', null,
+                      // TRANS: Title for button on Authorise Subscription page.
+                      _('Reject this subscription.'));
         $this->elementEnd('form');
         $this->elementEnd('li');
         $this->elementEnd('ul');
         $this->elementEnd('div');
-        $this->elementEnd('div');
     }
 
     function sendAuthorization()
@@ -224,6 +244,7 @@ class UserauthorizationAction extends Action
         $srv = $this->getStoredParams();
 
         if (is_null($srv)) {
+            // TRANS: Client error displayed for an empty authorisation request.
             $this->clientError(_('No authorization request!'));
             return;
         }
@@ -246,10 +267,12 @@ class UserauthorizationAction extends Action
 
     function showAcceptMessage($tok)
     {
+        // TRANS: Accept message header from Authorise subscription page.
         common_show_header(_('Subscription authorized'));
+        // TRANS: Accept message text from Authorise subscription page.
         $this->element('p', null,
                        _('The subscription has been authorized, but no '.
-                         'callback URL was passed. Check with the site\'s ' .
+                         'callback URL was passed. Check with the sites ' .
                          'instructions for details on how to authorize the ' .
                          'subscription. Your subscription token is:'));
         $this->element('blockquote', 'token', $tok);
@@ -258,10 +281,12 @@ class UserauthorizationAction extends Action
 
     function showRejectMessage()
     {
+        // TRANS: Reject message header from Authorise subscription page.
         common_show_header(_('Subscription rejected'));
+        // TRANS: Reject message from Authorise subscription page.
         $this->element('p', null,
                        _('The subscription has been rejected, but no '.
-                         'callback URL was passed. Check with the site\'s ' .
+                         'callback URL was passed. Check with the sites ' .
                          'instructions for details on how to fully reject ' .
                          'the subscription.'));
         common_show_footer();
@@ -295,16 +320,25 @@ class UserauthorizationAction extends Action
 
         $user = User::staticGet('uri', $listener);
         if (!$user) {
-            throw new Exception("Listener URI '$listener' not found here");
+            // TRANS: Exception thrown when no valid user is found for an authorisation request.
+            // TRANS: %s is a listener URI.
+            throw new Exception(sprintf(_('Listener URI "%s" not found here.'),
+                                        $listener));
         }
-        $cur = common_current_user();
-        if ($cur->id != $user->id) {
-            throw new Exception('Can\'t subscribe for another user!');
+
+        if (strlen($listenee) > 255) {
+            // TRANS: Exception thrown when listenee URI is too long for an authorisation request.
+            // TRANS: %s is a listenee URI.
+            throw new Exception(sprintf(_('Listenee URI "%s" is too long.'),
+                                        $listenee));
         }
 
         $other = User::staticGet('uri', $listenee);
         if ($other) {
-            throw new Exception("Listenee URI '$listenee' is local user");
+            // TRANS: Exception thrown when listenee URI is a local user for an authorisation request.
+            // TRANS: %s is a listenee URI.
+            throw new Exception(sprintf(_('Listenee URI "%s" is a local user.'),
+                                        $listenee));
         }
 
         $remote = Remote_profile::staticGet('uri', $listenee);
@@ -313,34 +347,51 @@ class UserauthorizationAction extends Action
             $sub->subscriber = $user->id;
             $sub->subscribed = $remote->id;
             if ($sub->find(true)) {
+                // TRANS: Exception thrown when already subscribed.
                 throw new Exception('You are already subscribed to this user.');
             }
         }
 
         if ($profile == common_profile_url($nickname)) {
-            throw new Exception("Profile URL '$profile' is for a local user.");
+            // TRANS: Exception thrown when profile URL is a local user for an authorisation request.
+            // TRANS: %s is a profile URL.
+            throw new Exception(sprintf(_('Profile URL "%s" is for a local user.'),
+                                        $profile));
+
         }
 
         $license      = $_GET['omb_listenee_license'];
         $site_license = common_config('license', 'url');
         if (!common_compatible_license($license, $site_license)) {
-            throw new Exception("Listenee stream license '$license' is not " .
-                                "compatible with site license '$site_license'.");
+            // TRANS: Exception thrown when licenses are not compatible for an authorisation request.
+            // TRANS: %1$s is the license for the listenee, %2$s is the license for "this" StatusNet site.
+            throw new Exception(sprintf(_('Listenee stream license "%1$s" is not ' .
+                                          'compatible with site license "%2$s".'),
+                                        $license, $site_license));
         }
+
         $avatar = $_GET['omb_listenee_avatar'];
         if ($avatar) {
             if (!common_valid_http_url($avatar) || strlen($avatar) > 255) {
-                throw new Exception("Invalid avatar URL '$avatar'");
+                // TRANS: Exception thrown when avatar URL is invalid for an authorisation request.
+                // TRANS: %s is an avatar URL.
+                throw new Exception(sprintf(_('Avatar URL "%s" is not valid.'),
+                                            $avatar));
             }
             $size = @getimagesize($avatar);
             if (!$size) {
-                throw new Exception("Can't read avatar URL '$avatar'.");
+                // TRANS: Exception thrown when avatar URL could not be read for an authorisation request.
+                // TRANS: %s is an avatar URL.
+                throw new Exception(sprintf(_('Cannot read avatar URL "%s".'),
+                                            $avatar));
             }
             if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG,
                                           IMAGETYPE_PNG))) {
-                throw new Exception("Wrong image type for '$avatar'");
+                // TRANS: Exception thrown when avatar URL return an invalid image type for an authorisation request.
+                // TRANS: %s is an avatar URL.
+                throw new Exception(sprintf(_('Wrong image type for avatar URL '.
+                                              '"%s".'), $avatar));
             }
         }
     }
 }
-?>