From c7e55396cc674c2275a8116fbb3f6c2e9d79d0ab Mon Sep 17 00:00:00 2001
From: Lorenz Schori <lo@znerol.ch>
Date: Sat, 7 Sep 2013 13:27:46 +0200
Subject: [PATCH 1/2] Use $_SESSION instead of $user->data for remember_me
 flag

---
 remember_me.admin.inc |    2 +-
 remember_me.module    |   29 ++++-------------------------
 2 files changed, 5 insertions(+), 26 deletions(-)

diff --git a/remember_me.admin.inc b/remember_me.admin.inc
index 1c482e5..0162904 100644
--- a/remember_me.admin.inc
+++ b/remember_me.admin.inc
@@ -19,7 +19,7 @@ function remember_me_admin_settings($form, &$form_state) {
     'remember' => array(
       '#type' => 'item',
       '#title' => t('Remember me'),
-      '#value' => isset($user->data['remember_me']) ? t('Yes') : t('No'),
+      '#value' => isset($_SESSION['remember_me']) ? t('Yes') : t('No'),
       '#description' => t('Current user chose at log in.'),
     ),
     'session' => array(
diff --git a/remember_me.module b/remember_me.module
index f820bb2..b733a35 100644
--- a/remember_me.module
+++ b/remember_me.module
@@ -13,13 +13,13 @@ function remember_me_init() {
 
   // If we have a user logged in, then we have a session.
   if ($user->uid) {
-    if (isset($user->data['remember_me']) && variable_get('remember_me_managed', 0) != 0) {
+    if (isset($_SESSION['remember_me']) && variable_get('remember_me_managed', 0) != 0) {
       // Set lifetime as configured via admin settings.
       if (variable_get('remember_me_lifetime', 604800) != ini_get('session.cookie_lifetime')) {
         _remember_me_set_lifetime(variable_get('remember_me_lifetime', 604800));
       }
     }
-    elseif (!isset($user->data['remember_me'])) {
+    elseif (!isset($_SESSION['remember_me'])) {
       // If we have cookie lifetime set already then unset it.
       if (0 != ini_get('session.cookie_lifetime')) {
         _remember_me_set_lifetime(0);
@@ -51,29 +51,8 @@ function _remember_me_set_lifetime($cookie_lifetime) {
  * Implements hook_user_login().
  */
 function remember_me_user_login(&$edit, $account) {
-  if ($account->uid) {
-    user_save($account, array('remember_me' => !empty($edit['input']['remember_me'])), 'remember-me');
-  }
-}
-
-/**
- * Implements hook_user_presave().
- */
-function remember_me_user_presave(&$edit, $account, $category) {
-  // only listen to remember me events
-  if ($category != 'remember-me') {
-    return;
-  }
-  
-  // Make sure that our form value 'remember_me' is stored as data 'remember_me'.
-  if (!empty($edit['remember_me'])) {
-    if (!isset($edit['data'])) {
-      $edit['data'] = array();
-    }
-    $edit['data']['remember_me'] = (bool) $edit['remember_me'];
-  }
-  else {
-    unset($edit['data']['remember_me']);
+  if (!empty($edit['input']['remember_me'])) {
+    $_SESSION['remember_me'] = TRUE;
   }
 }
 
-- 
1.7.10.4

