aboutsummaryrefslogtreecommitdiff
path: root/pages/account
diff options
context:
space:
mode:
Diffstat (limited to 'pages/account')
-rw-r--r--pages/account/forgotten_password.php25
-rw-r--r--pages/account/login.php28
-rw-r--r--pages/account/register.php54
-rw-r--r--pages/account/reset_password.php40
4 files changed, 118 insertions, 29 deletions
diff --git a/pages/account/forgotten_password.php b/pages/account/forgotten_password.php
index 3fb629ef6..f464f98c9 100644
--- a/pages/account/forgotten_password.php
+++ b/pages/account/forgotten_password.php
@@ -6,13 +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");
- $content = elgg_view_layout("one_column_with_sidebar", $area1 . $area2);
- echo elgg_view_page(elgg_echo('user:password:lost'), $content);
+$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 2638ef561..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,19 +12,8 @@
* @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();
}
@@ -32,15 +21,38 @@ if (!$CONFIG->allow_registration) {
$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));
+// only logged out people need to register
+if (elgg_is_logged_in()) {
+ forward();
+}
+
+$title = elgg_echo("register");
+
+$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);
- echo elgg_view_page(elgg_echo("register"), elgg_view_layout("one_column_with_sidebar", $area1 . $area2));
+$content .= elgg_view('help/register');
- // Otherwise, forward to the index page
+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);
+}