Merge branch 'w34_MDL-34901_m23_useraccess' of git://github.com/skodak/moodle into...
authorDan Poltawski <dan@moodle.com>
Tue, 21 Aug 2012 04:02:25 +0000 (12:02 +0800)
committerDan Poltawski <dan@moodle.com>
Tue, 21 Aug 2012 04:02:25 +0000 (12:02 +0800)
1  2 
lib/moodlelib.php

diff --combined lib/moodlelib.php
@@@ -2324,10 -2324,10 +2324,10 @@@ function get_user_timezone($tz = 99) 
  
      $tz = 99;
  
 -    while(($tz == '' || $tz == 99 || $tz == NULL) && $next = each($timezones)) {
 +    // Loop while $tz is, empty but not zero, or 99, and there is another timezone is the array
 +    while(((empty($tz) && !is_numeric($tz)) || $tz == 99) && $next = each($timezones)) {
          $tz = $next['value'];
      }
 -
      return is_numeric($tz) ? (float) $tz : $tz;
  }
  
@@@ -3283,11 -3283,24 +3283,24 @@@ function get_user_key($script, $userid
  function update_user_login_times() {
      global $USER, $DB;
  
+     $now = time();
      $user = new stdClass();
+     $user->id = $USER->id;
+     // Make sure all users that logged in have some firstaccess.
+     if ($USER->firstaccess == 0) {
+         $USER->firstaccess = $user->firstaccess = $now;
+     }
+     // Store the previous current as lastlogin.
      $USER->lastlogin = $user->lastlogin = $USER->currentlogin;
-     $USER->currentlogin = $user->lastaccess = $user->currentlogin = time();
  
-     $user->id = $USER->id;
+     $USER->currentlogin = $user->currentlogin = $now;
+     // Function user_accesstime_log() may not update immediately, better do it here.
+     $USER->lastaccess = $user->lastaccess = $now;
+     $USER->lastip = $user->lastip = getremoteaddr();
  
      $DB->update_record('user', $user);
      return true;
@@@ -4074,10 -4087,6 +4087,6 @@@ function authenticate_user_login($usern
                  $DB->set_field('user', 'auth', $auth, array('username'=>$username));
                  $user->auth = $auth;
              }
-             if (empty($user->firstaccess)) { //prevent firstaccess from remaining 0 for manual account that never required confirmation
-                 $DB->set_field('user','firstaccess', $user->timemodified, array('id' => $user->id));
-                 $user->firstaccess = $user->timemodified;
-             }
  
              update_internal_user_password($user, $password); // just in case salt or encoding were changed (magic quotes too one day)
  
@@@ -4829,13 -4838,12 +4838,13 @@@ function reset_course_userdata($data) 
          $status[] = array('component'=>$componentstr, 'item'=>get_string('deleteblogassociations', 'blog'), 'error'=>false);
      }
  
 -    if (!empty($data->reset_course_completion)) {
 -        // Delete course completion information
 +    if (!empty($data->reset_completion)) {
 +        // Delete course and activity completion information.
          $course = $DB->get_record('course', array('id'=>$data->courseid));
          $cc = new completion_info($course);
 -        $cc->delete_course_completion_data();
 -        $status[] = array('component'=>$componentstr, 'item'=>get_string('deletecoursecompletiondata', 'completion'), 'error'=>false);
 +        $cc->delete_all_completion_data();
 +        $status[] = array('component' => $componentstr,
 +                'item' => get_string('deletecompletiondata', 'completion'), 'error' => false);
      }
  
      $componentstr = get_string('roles');