]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #3515 created a unified page handler for account pages
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 11 Jun 2011 15:56:11 +0000 (15:56 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 11 Jun 2011 15:56:11 +0000 (15:56 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@9175 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/classes/ElggSite.php
engine/lib/users.php
pages/account/forgotten_password.php
pages/account/reset_password.php [new file with mode: 0644]
views/default/core/account/login_walled_garden.php
views/default/forms/login.php

index d3cb0d488f0ae9ce1d36e0252babf3b1f95ab24c..30b222c2484d58957ac93008a4fa48f6f5380380 100644 (file)
@@ -400,7 +400,7 @@ class ElggSite extends ElggEntity {
                        'action/login',
                        'register',
                        'action/register',
-                       'pages/account/forgotten_password\.php',
+                       'forgotpassword',
                        'action/user/requestnewpassword',
                        'resetpassword',
                        'upgrade\.php',
index 832bcd5298392dbeca70f0037c5eeee9272a79b4..8333888a2120e32c23dd2bfb3bb8ae5fcddb1f0c 100644 (file)
@@ -747,40 +747,6 @@ function execute_new_password_request($user_guid, $conf_code) {
        return FALSE;
 }
 
-/**
- * Handles pages for password reset requests.
- *
- * @param array $page Pages array
- *
- * @return void
- */
-function elgg_user_resetpassword_page_handler($page) {
-
-       $user_guid = get_input('u');
-       $code = get_input('c');
-
-       $user = get_entity($user_guid);
-
-       // don't check code here to avoid automated attacks
-       if (!$user instanceof ElggUser) {
-               register_error(elgg_echo('user:passwordreset:unknown_user'));
-               forward();
-       }
-
-       $params = array(
-               'guid' => $user_guid,
-               'code' => $code,
-       );
-       $form = elgg_view_form('user/passwordreset', array(), $params);
-
-       $title = elgg_echo('resetpassword');
-       $content = elgg_view_title(elgg_echo('resetpassword')) . $form;
-
-       $body = elgg_view_layout('one_column', array('content' => $content));
-
-       echo elgg_view_page($title, $body);
-}
-
 /**
  * Simple function that will generate a random clear text password
  * suitable for feeding into generate_user_password().
@@ -1129,14 +1095,27 @@ function collections_page_handler($page_elements) {
 }
 
 /**
- * Page handler for registration
+ * Page handler for account related pages
  *
- * @param array $page_elements Page elements
+ * @param array  $page_elements Page elements
+ * @param string $handler The handler string
  *
  * @return void
  */
-function registration_page_handler($page_elements) {
-       require_once(dirname(dirname(dirname(__FILE__))) . "/pages/account/register.php");
+function elgg_user_account_page_handler($page_elements, $handler) {
+
+       $base_dir = elgg_get_root_path() . 'pages/account';
+       switch ($handler) {
+               case 'forgotpassword':
+                       require_once("$base_dir/forgotten_password.php");
+                       break;
+               case 'resetpassword':
+                       require_once("$base_dir/reset_password.php");
+                       break;
+               case 'register':
+                       require_once("$base_dir/register.php");
+                       break;
+       }
 }
 
 /**
@@ -1513,8 +1492,9 @@ function users_init() {
 
        elgg_register_page_handler('friends', 'friends_page_handler');
        elgg_register_page_handler('friendsof', 'friends_of_page_handler');
-       elgg_register_page_handler('register', 'registration_page_handler');
-       elgg_register_page_handler('resetpassword', 'elgg_user_resetpassword_page_handler');
+       elgg_register_page_handler('register', 'elgg_user_account_page_handler');
+       elgg_register_page_handler('forgotpassword', 'elgg_user_account_page_handler');
+       elgg_register_page_handler('resetpassword', 'elgg_user_account_page_handler');
        elgg_register_page_handler('login', 'elgg_user_login_page_handler');
        elgg_register_page_handler('avatar', 'elgg_avatar_page_handler');
        elgg_register_page_handler('profile', 'elgg_profile_page_handler');
index 93d786e226590d89475e399838a6885f1659aad0..7679eaa55f710c1904bbd551505adf4eb0efb120 100644 (file)
@@ -6,8 +6,6 @@
  * @subpackage Registration
  */
 
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
 if (elgg_is_logged_in()) {
        forward();
 }
diff --git a/pages/account/reset_password.php b/pages/account/reset_password.php
new file mode 100644 (file)
index 0000000..019ec3a
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Page for resetting a forgotten password
+ *
+ * @package Elgg.Core
+ * @subpackage Registration
+ */
+
+if (elgg_is_logged_in()) {
+       forward();
+}
+
+$user_guid = get_input('u');
+$code = get_input('c');
+
+$user = get_entity($user_guid);
+
+// don't check code here to avoid automated attacks
+if (!$user instanceof ElggUser) {
+       register_error(elgg_echo('user:passwordreset:unknown_user'));
+       forward();
+}
+
+$params = array(
+       'guid' => $user_guid,
+       'code' => $code,
+);
+$form = elgg_view_form('user/passwordreset', array(), $params);
+
+$title = elgg_echo('resetpassword');
+$content = elgg_view_title(elgg_echo('resetpassword')) . $form;
+
+$body = elgg_view_layout('one_column', array('content' => $content));
+
+echo elgg_view_page($title, $body);
index 9b50190960b39e154680380134059c3261c19cf5..1606b9592e28262f4633d61d82f0ef7e87df6e20 100644 (file)
@@ -6,7 +6,7 @@
  */
 
 $reg_url = elgg_normalize_url('register');
-$forgot_url = elgg_normalize_url('pages/account/forgotten_password.php');
+$forgot_url = elgg_normalize_url('forgotpassword');
 $cancel_button = elgg_view('input/button', array(
        'value' => elgg_echo('cancel'),
        'class' => 'elgg-button-cancel mlm',
index 452c4c4252d7cb04a57916b37c5009eea9612813..5cfdcd4c6923ba416733f213b5decc27edf3a809 100644 (file)
@@ -39,7 +39,7 @@
                echo '<li><a class="registration_link" href="' . elgg_get_site_url() . 'register">' . elgg_echo('register') . '</a></li>';
        }
 ?>
-       <li><a class="forgotten_password_link" href="<?php echo elgg_get_site_url(); ?>pages/account/forgotten_password.php">
+       <li><a class="forgotten_password_link" href="<?php echo elgg_get_site_url(); ?>forgotpassword">
                <?php echo elgg_echo('user:password:lost'); ?>
        </a></li>
 </ul>
\ No newline at end of file