]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/register.php
Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 0.9.x
[quix0rs-gnu-social.git] / actions / register.php
index d1bc381fbc52358ea8ed7d9dcc01deda5a0a0c04..488d8901fc63db04178982076441e58c295e72ee 100644 (file)
@@ -74,6 +74,13 @@ class RegisterAction extends Action
         parent::prepare($args);
         $this->code = $this->trimmed('code');
 
+        // @todo this check should really be in index.php for all sensitive actions
+        $ssl = common_config('site', 'ssl');
+        if (empty($_SERVER['HTTPS']) && ($ssl == 'always' || $ssl == 'sometimes')) {
+            common_redirect(common_local_url('register'));
+            // exit
+        }
+
         if (empty($this->code)) {
             common_ensure_session();
             if (array_key_exists('invitecode', $_SESSION)) {
@@ -191,7 +198,11 @@ class RegisterAction extends Action
             }
 
             // Input scrubbing
-            $nickname = common_canonical_nickname($nickname);
+            try {
+                $nickname = Nickname::normalize($nickname);
+            } catch (NicknameException $e) {
+                $this->showForm($e->getMessage());
+            }
             $email    = common_canonical_email($email);
 
             if (!$this->boolean('license')) {
@@ -199,11 +210,6 @@ class RegisterAction extends Action
                                   'agree to the license.'));
             } else if ($email && !Validate::email($email, common_config('email', 'check_domain'))) {
                 $this->showForm(_('Not a valid email address.'));
-            } else if (!Validate::string($nickname, array('min_length' => 1,
-                                                          'max_length' => 64,
-                                                          'format' => NICKNAME_FMT))) {
-                $this->showForm(_('Nickname must have only lowercase letters '.
-                                  'and numbers and no spaces.'));
             } else if ($this->nicknameExists($nickname)) {
                 $this->showForm(_('Nickname already in use. Try another one.'));
             } else if (!User::allowed_nickname($nickname)) {
@@ -217,14 +223,16 @@ class RegisterAction extends Action
                 $this->showForm(_('Homepage is not a valid URL.'));
                 return;
             } else if (!is_null($fullname) && mb_strlen($fullname) > 255) {
-                $this->showForm(_('Full name is too long (max 255 chars).'));
+                $this->showForm(_('Full name is too long (maximum 255 characters).'));
                 return;
             } else if (Profile::bioTooLong($bio)) {
-                $this->showForm(sprintf(_('Bio is too long (max %d chars).'),
+                $this->showForm(sprintf(_m('Bio is too long (maximum %d character).',
+                                           'Bio is too long (maximum %d characters).',
+                                           Profile::maxBio()),
                                         Profile::maxBio()));
                 return;
             } else if (!is_null($location) && mb_strlen($location) > 255) {
-                $this->showForm(_('Location is too long (max 255 chars).'));
+                $this->showForm(_('Location is too long (maximum 255 characters).'));
                 return;
             } else if (strlen($password) < 6) {
                 $this->showForm(_('Password must be 6 or more characters.'));
@@ -422,16 +430,15 @@ class RegisterAction extends Action
         if (Event::handle('StartRegistrationFormData', array($this))) {
             $this->elementStart('li');
             $this->input('nickname', _('Nickname'), $this->trimmed('nickname'),
-                         _('1-64 lowercase letters or numbers, '.
-                           'no punctuation or spaces. Required.'));
+                         _('1-64 lowercase letters or numbers, no punctuation or spaces.'));
             $this->elementEnd('li');
             $this->elementStart('li');
             $this->password('password', _('Password'),
-                            _('6 or more characters. Required.'));
+                            _('6 or more characters.'));
             $this->elementEnd('li');
             $this->elementStart('li');
             $this->password('confirm', _('Confirm'),
-                            _('Same as password above. Required.'));
+                            _('Same as password above.'));
             $this->elementEnd('li');
             $this->elementStart('li');
             if ($this->invite && $this->invite->address_type == 'email') {
@@ -458,7 +465,12 @@ class RegisterAction extends Action
             $this->elementStart('li');
             $maxBio = Profile::maxBio();
             if ($maxBio > 0) {
-                $bioInstr = sprintf(_('Describe yourself and your interests in %d chars'),
+                // TRANS: Tooltip for field label in form for profile settings. Plural
+                // TRANS: is decided by the number of characters available for the
+                // TRANS: biography (%d).
+                $bioInstr = sprintf(_m('Describe yourself and your interests in %d character',
+                                       'Describe yourself and your interests in %d characters',
+                                       $maxBio),
                                     $maxBio);
             } else {
                 $bioInstr = _('Describe yourself and your interests');
@@ -491,6 +503,45 @@ class RegisterAction extends Action
             $this->elementStart('li');
             $this->element('input', $attrs);
             $this->elementStart('label', array('class' => 'checkbox', 'for' => 'license'));
+            $this->raw($this->licenseCheckbox());
+            $this->elementEnd('label');
+            $this->elementEnd('li');
+        }
+        $this->elementEnd('ul');
+        $this->submit('submit', _('Register'));
+        $this->elementEnd('fieldset');
+        $this->elementEnd('form');
+    }
+
+    function licenseCheckbox()
+    {
+        $out = '';
+        switch (common_config('license', 'type')) {
+        case 'private':
+            // TRANS: Copyright checkbox label in registration dialog, for private sites.
+            $out .= htmlspecialchars(sprintf(
+                _('I understand that content and data of %1$s are private and confidential.'),
+                common_config('site', 'name')));
+            // fall through
+        case 'allrightsreserved':
+            if ($out != '') {
+                $out .= ' ';
+            }
+            if (common_config('license', 'owner')) {
+                // TRANS: Copyright checkbox label in registration dialog, for all rights reserved with a specified copyright owner.
+                $out .= htmlspecialchars(sprintf(
+                    _('My text and files are copyright by %1$s.'),
+                    common_config('license', 'owner')));
+            } else {
+                // TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors.
+                $out .= htmlspecialchars(_('My text and files remain under my own copyright.'));
+            }
+            // TRANS: Copyright checkbox label in registration dialog, for all rights reserved.
+            $out .= ' ' . _('All rights reserved.');
+            break;
+        case 'cc': // fall through
+        default:
+            // TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
             $message = _('My text and files are available under %s ' .
                          'except this private data: password, ' .
                          'email address, IM address, and phone number.');
@@ -499,14 +550,9 @@ class RegisterAction extends Action
                     '">' .
                     htmlspecialchars(common_config('license', 'title')) .
                     '</a>';
-            $this->raw(sprintf(htmlspecialchars($message), $link));
-            $this->elementEnd('label');
-            $this->elementEnd('li');
+            $out .= sprintf(htmlspecialchars($message), $link);
         }
-        $this->elementEnd('ul');
-        $this->submit('submit', _('Register'));
-        $this->elementEnd('fieldset');
-        $this->elementEnd('form');
+        return $out;
     }
 
     /**