]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/register.php
Added a comment about an open question: Should we allow pin-based
[quix0rs-gnu-social.git] / actions / register.php
index 4654fad14d7092c1c260aa153a7754f51e63860d..7307bc689b26cda56839fbadfb4ada3992bbe14d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Laconica, the distributed open-source microblogging tool
+ * StatusNet, the distributed open-source microblogging tool
  *
  * Register a new user account
  *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  * @category  Login
- * @package   Laconica
- * @author    Evan Prodromou <evan@controlyourself.ca>
- * @copyright 2008-2009 Control Yourself, Inc.
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2008-2009 StatusNet, Inc.
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://laconi.ca/
+ * @link      http://status.net/
  */
 
-if (!defined('LACONICA')) {
+if (!defined('STATUSNET') && !defined('LACONICA')) {
     exit(1);
 }
 
@@ -35,10 +35,10 @@ if (!defined('LACONICA')) {
  * An action for registering a new user account
  *
  * @category Login
- * @package  Laconica
- * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://laconi.ca/
+ * @link     http://status.net/
  */
 
 class RegisterAction extends Action
@@ -55,6 +55,12 @@ class RegisterAction extends Action
 
     var $registered = false;
 
+    /**
+     * Are we processing an invite?
+     */
+
+    var $invite = null;
+
     /**
      * Prepare page to run
      *
@@ -68,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)) {
@@ -116,8 +129,6 @@ class RegisterAction extends Action
      *
      * Checks if registration is closed and shows an error if so.
      *
-     * Checks if only OpenID is allowed and redirects to openidlogin if so.
-     *
      * @param array $args $_REQUEST data
      *
      * @return void
@@ -129,8 +140,6 @@ class RegisterAction extends Action
 
         if (common_config('site', 'closed')) {
             $this->clientError(_('Registration not allowed.'));
-        } else if (common_config('site', 'openidonly')) {
-            common_redirect(common_local_url('openidlogin'));
         } else if (common_logged_in()) {
             $this->clientError(_('Already logged in.'));
         } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
@@ -140,6 +149,12 @@ class RegisterAction extends Action
         }
     }
 
+    function showScripts()
+    {
+        parent::showScripts();
+        $this->autofocus('nickname');
+    }
+
     /**
      * Try to register a user
      *
@@ -189,7 +204,7 @@ class RegisterAction extends Action
             if (!$this->boolean('license')) {
                 $this->showForm(_('You can\'t register if you don\'t '.
                                   'agree to the license.'));
-            } else if ($email && !Validate::email($email, true)) {
+            } 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,
@@ -251,6 +266,7 @@ class RegisterAction extends Action
 
                 // Re-init language env in case it changed (not yet, but soon)
                 common_init_language();
+
                 $this->showSuccess();
             } else {
                 $this->showForm(_('Invalid username or password.'));
@@ -271,7 +287,7 @@ class RegisterAction extends Action
     function nicknameExists($nickname)
     {
         $user = User::staticGet('nickname', $nickname);
-        return ($user !== false);
+        return is_object($user);
     }
 
     /**
@@ -291,7 +307,7 @@ class RegisterAction extends Action
             return false;
         }
         $user = User::staticGet('email', $email);
-        return ($user !== false);
+        return is_object($user);
     }
 
     // overrrided to add entry-title class
@@ -330,22 +346,11 @@ class RegisterAction extends Action
         } else if ($this->error) {
             $this->element('p', 'error', $this->error);
         } else {
-            if (common_config('openid', 'enabled')) {
-                $instr =
-                  common_markup_to_html(_('With this form you can create '.
-                                          ' a new account. ' .
-                                          'You can then post notices and '.
-                                          'link up to friends and colleagues. '.
-                                          '(Have an [OpenID](http://openid.net/)? ' .
-                                          'Try our [OpenID registration]'.
-                                          '(%%action.openidlogin%%)!)'));
-            } else {
-                $instr =
-                  common_markup_to_html(_('With this form you can create '.
-                                          ' a new account. ' .
-                                          'You can then post notices and '.
-                                          'link up to friends and colleagues.'));
-            }
+            $instr =
+              common_markup_to_html(_('With this form you can create '.
+                                      'a new account. ' .
+                                      'You can then post notices and '.
+                                      'link up to friends and colleagues. '));
 
             $this->elementStart('div', 'instructions');
             $this->raw($instr);
@@ -493,11 +498,7 @@ class RegisterAction extends Action
             $this->elementStart('li');
             $this->element('input', $attrs);
             $this->elementStart('label', array('class' => 'checkbox', 'for' => 'license'));
-            $this->text(_('My text and files are available under '));
-            $this->element('a', array('href' => common_config('license', 'url')),
-                           common_config('license', 'title'), _("Creative Commons Attribution 3.0"));
-            $this->text(_(' except this private data: password, '.
-                          'email address, IM address, and phone number.'));
+            $this->raw($this->licenseCheckbox());
             $this->elementEnd('label');
             $this->elementEnd('li');
         }
@@ -507,6 +508,48 @@ class RegisterAction extends Action
         $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.');
+            $link = '<a href="' .
+                    htmlspecialchars(common_config('license', 'url')) .
+                    '">' .
+                    htmlspecialchars(common_config('license', 'title')) .
+                    '</a>';
+            $out .= sprintf(htmlspecialchars($message), $link);
+        }
+        return $out;
+    }
+
     /**
      * Show some information about registering for the site
      *
@@ -537,9 +580,9 @@ class RegisterAction extends Action
                                        array('nickname' => $nickname));
 
         $this->elementStart('div', 'success');
-        $instr = sprintf(_('Congratulations, %s! And welcome to %%%%site.name%%%%. '.
+        $instr = sprintf(_('Congratulations, %1$s! And welcome to %%%%site.name%%%%. '.
                            'From here, you may want to...'. "\n\n" .
-                           '* Go to [your profile](%s) '.
+                           '* Go to [your profile](%2$s) '.
                            'and post your first message.' .  "\n" .
                            '* Add a [Jabber/GTalk address]'.
                            '(%%%%action.imsettings%%%%) '.