From fac61fa985a0227a1746a671c0e54adedc96ec48 Mon Sep 17 00:00:00 2001 From: ben Date: Fri, 15 Feb 2008 18:21:35 +0000 Subject: All kinds of object and database stuff git-svn-id: https://code.elgg.org/elgg/trunk@44 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/users.php | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 engine/lib/users.php (limited to 'engine/lib/users.php') diff --git a/engine/lib/users.php b/engine/lib/users.php new file mode 100644 index 000000000..9d5e40288 --- /dev/null +++ b/engine/lib/users.php @@ -0,0 +1,97 @@ + 0) + return true; + return false; + + } + + /** + * Initialises the system session and potentially logs the user in + * + * This function looks for: + * + * 1. $_SESSION['id'] - if not present, we're logged out, and this is set to -1 + * 2. The cookie 'elggperm' - if present, checks it for an authentication token, validates it, and potentially logs the user in + * + * @uses $_SESSION + * @param unknown_type $event + * @param unknown_type $object_type + * @param unknown_type $object + */ + function session_init($event, $object_type, $object) { + session_name('Elgg'); + session_start(); + + if (empty($_SESSION['id'])) { + if (isset($_COOKIE['elggperm'])) { + + $code = $_COOKIE['elggperm']; + $code = md5($code); + if ($users = get_users(array( + "code" =>$code + ), "id, username, name, password")) { + foreach($users as $user) { + $_SESSION['id'] = $user->id; + $_SESSION['username'] = $user->username; + $_SESSION['name'] = $user->name; + $_SESSION['code'] = $_COOKIE['elggperm']; + // set_login_fields($user->id); + } + } else { + $_SESSION['id'] = -1; + } + } else { + $_SESSION['id'] = -1; + } + } else { + if (!empty($_SESSION['code'])) { + $code = md5($_SESSION['code']); + if ($uid = get_users(array( + "code" =>$code + ), "id")) { + $id = $uid->id; + } else { + + } + } else { + $_SESSION['id'] = -1; + } + } + if ($_SESSION['id'] > 0) { + // set_last_action($_SESSION['id']); + } + } + + register_event_handler("init","system","session_init"); + +?> \ No newline at end of file -- cgit v1.2.3