diff options
Diffstat (limited to 'pages/account')
| -rw-r--r-- | pages/account/forgotten_password.php | 24 | ||||
| -rw-r--r-- | pages/account/login.php | 28 | ||||
| -rw-r--r-- | pages/account/register.php | 56 | ||||
| -rw-r--r-- | pages/account/reset_password.php | 40 |
4 files changed, 120 insertions, 28 deletions
diff --git a/pages/account/forgotten_password.php b/pages/account/forgotten_password.php index 2285e7299..f464f98c9 100644 --- a/pages/account/forgotten_password.php +++ b/pages/account/forgotten_password.php @@ -6,12 +6,22 @@ * @subpackage Registration */ -require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); +if (elgg_is_logged_in()) { + forward(); +} + +$title = elgg_echo("user:password:lost"); +$content = elgg_view_title($title); -if (!isloggedin()) { - $area1 = elgg_view_title(elgg_echo("user:password:lost")); - $area2 = elgg_view("account/forms/forgotten_password"); - page_draw(elgg_echo('user:password:lost'), elgg_view_layout("one_column_with_sidebar", $area1 . $area2)); +$content .= elgg_view_form('user/requestnewpassword', array( + 'class' => 'elgg-form-account', +)); + +if (elgg_get_config('walled_garden')) { + elgg_load_css('elgg.walled_garden'); + $body = elgg_view_layout('walled_garden', array('content' => $content)); + echo elgg_view_page($title, $body, 'walled_garden'); } else { - forward(); -}
\ No newline at end of file + $body = elgg_view_layout('one_column', array('content' => $content)); + echo elgg_view_page($title, $body); +} diff --git a/pages/account/login.php b/pages/account/login.php new file mode 100644 index 000000000..6aa3752d0 --- /dev/null +++ b/pages/account/login.php @@ -0,0 +1,28 @@ +<?php +/** + * Assembles and outputs a login page. + * + * This page serves as a fallback for non-JS users who click on the login + * drop down link. + * + * If the user is logged in, this page will forward to the front page. + * + * @package Elgg.Core + * @subpackage Accounts + */ + +if (elgg_is_logged_in()) { + forward(''); +} + +$title = elgg_echo('login'); +$content = elgg_view('core/account/login_box'); + +if (elgg_get_config('walled_garden')) { + elgg_load_css('elgg.walled_garden'); + $body = elgg_view_layout('walled_garden', array('content' => $content)); + echo elgg_view_page($title, $body, 'walled_garden'); +} else { + $body = elgg_view_layout('one_column', array('content' => $content)); + echo elgg_view_page($title, $body); +} diff --git a/pages/account/register.php b/pages/account/register.php index cbbc40060..2fe8b74c0 100644 --- a/pages/account/register.php +++ b/pages/account/register.php @@ -2,7 +2,7 @@ /** * Assembles and outputs the registration page. * - * Since 1.8 registration can be disabled via administration. If this is + * Since 1.8, registration can be disabled via administration. If this is * the case, calls to this page will forward to the network front page. * * If the user is logged in, this page will forward to the network @@ -12,33 +12,47 @@ * @subpackage Registration */ -/** - * Start the Elgg engine - * - * Why? In the case this file is called thru a page handler: $CONFIG - * is not within the global scope (the page handler function does not include it). - * BUT, there _might_ exist direct calls to this file, requiring the engine - * to be started. Logic for both cases follow. - */ -require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); -global $CONFIG; - // check new registration allowed -if (!$CONFIG->allow_registration) { +if (elgg_get_config('allow_registration') == false) { register_error(elgg_echo('registerdisabled')); forward(); } -$friend_guid = (int) get_input('friend_guid',0); +$friend_guid = (int) get_input('friend_guid', 0); $invitecode = get_input('invitecode'); -// If we're not logged in, display the registration page -if (!isloggedin()) { - $area1 = elgg_view_title(elgg_echo("register")); - $area2 = elgg_view("account/forms/register", array('friend_guid' => $friend_guid, 'invitecode' => $invitecode)); - page_draw(elgg_echo("register"), elgg_view_layout("one_column_with_sidebar", $area1 . $area2)); +// only logged out people need to register +if (elgg_is_logged_in()) { + forward(); +} + +$title = elgg_echo("register"); -// Otherwise, forward to the index page +$content = elgg_view_title($title); + +// create the registration url - including switching to https if configured +$register_url = elgg_get_site_url() . 'action/register'; +if (elgg_get_config('https_login')) { + $register_url = str_replace("http:", "https:", $register_url); +} +$form_params = array( + 'action' => $register_url, + 'class' => 'elgg-form-account', +); + +$body_params = array( + 'friend_guid' => $friend_guid, + 'invitecode' => $invitecode +); +$content .= elgg_view_form('register', $form_params, $body_params); + +$content .= elgg_view('help/register'); + +if (elgg_get_config('walled_garden')) { + elgg_load_css('elgg.walled_garden'); + $body = elgg_view_layout('walled_garden', array('content' => $content)); + echo elgg_view_page($title, $body, 'walled_garden'); } else { - forward(); + $body = elgg_view_layout('one_column', array('content' => $content)); + echo elgg_view_page($title, $body); } diff --git a/pages/account/reset_password.php b/pages/account/reset_password.php new file mode 100644 index 000000000..3ab8ccf3e --- /dev/null +++ b/pages/account/reset_password.php @@ -0,0 +1,40 @@ +<?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('class' => 'elgg-form-account'), $params); + +$title = elgg_echo('resetpassword'); +$content = elgg_view_title(elgg_echo('resetpassword')) . $form; + +if (elgg_get_config('walled_garden')) { + elgg_load_css('elgg.walled_garden'); + $body = elgg_view_layout('walled_garden', array('content' => $content)); + echo elgg_view_page($title, $body, 'walled_garden'); +} else { + $body = elgg_view_layout('one_column', array('content' => $content)); + echo elgg_view_page($title, $body); +} |
