From a6bbdb895bc737d5e77c611e8bca37f2d3179dfd Mon Sep 17 00:00:00 2001
From: Matthew Juhl <mjuhl24@gmail.com>
Date: Mon, 15 Jun 2009 20:18:43 +0000
Subject: [PATCH] redirect users to their profile page upon login instead of
 the dashboard

---
 unl_theme/actions/login.php | 82 +++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)
 create mode 100644 unl_theme/actions/login.php

diff --git a/unl_theme/actions/login.php b/unl_theme/actions/login.php
new file mode 100644
index 00000000..55a55566
--- /dev/null
+++ b/unl_theme/actions/login.php
@@ -0,0 +1,82 @@
+<?php
+
+    /**
+	 * Elgg login action
+	 * 
+	 * @package Elgg
+	 * @subpackage Core
+	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+	 * @author Curverider Ltd
+	 * @copyright Curverider Ltd 2008-2009
+	 * @link http://elgg.org/
+	 */
+	 
+	// Safety first
+		action_gatekeeper();
+
+    // Get username and password
+    
+        $username = get_input('username');
+        $password = get_input("password");
+        $persistent = get_input("persistent", false);
+        
+    // If all is present and correct, try to log in  
+    	$result = false;          
+        if (!empty($username) && !empty($password)) {
+        	if ($user = authenticate($username,$password)) {
+        		$result = login($user, $persistent);
+        	}
+        }
+        
+    // Set the system_message as appropriate
+        
+        if ($result) {
+            system_message(elgg_echo('loginok'));
+            if ($_SESSION['last_forward_from'])
+            {
+            	$forward_url = $_SESSION['last_forward_from'];
+            	$_SESSION['last_forward_from'] = "";
+            	forward($forward_url);
+            }
+            else
+            {
+            	if (
+            		(isadminloggedin()) &&
+            		(!datalist_get('first_admin_login'))
+            	) 
+            	{
+            		system_message(elgg_echo('firstadminlogininstructions'));
+            		
+            		datalist_set('first_admin_login', time());
+            		
+            		forward('pg/admin/plugins');
+            	} else	
+            	/* here's the modification we're making
+            		forward("pg/dashboard/"); */
+            		forward("pg/profile/$username");
+            }
+        } else {
+        	$error_msg = elgg_echo('loginerror');
+        	// figure out why the login failed
+        	if (!empty($username) && !empty($password)) {
+        		// See if it exists and is disabled
+				$access_status = access_get_show_hidden_status();
+				access_show_hidden_entities(true);
+        		if (($user = get_user_by_username($username)) && !$user->validated) {
+        			// give plugins a chance to respond
+        			if (!trigger_plugin_hook('unvalidated_login_attempt','user',array('entity'=>$user))) {
+        				// if plugins have not registered an action, the default action is to
+        				// trigger the validation event again and assume that the validation
+        				// event will display an appropriate message
+						trigger_elgg_event('validate', 'user', $user);
+        			}
+        		} else {
+        			 register_error(elgg_echo('loginerror'));
+        		}
+        		access_show_hidden_entities($access_status);
+        	} else {
+            	register_error(elgg_echo('loginerror'));
+        	}
+        }
+      
+?>
\ No newline at end of file
-- 
GitLab