diff --git a/plugin/migrationmoodle/admin.php b/plugin/migrationmoodle/admin.php index a9dd50f65e..82af3d9edd 100644 --- a/plugin/migrationmoodle/admin.php +++ b/plugin/migrationmoodle/admin.php @@ -94,6 +94,7 @@ $menu = [ ], 'users' => [ 'users_last_login', + 'track_login', 'user_sessions', ], 'user_sessions' => [ diff --git a/plugin/migrationmoodle/lang/english.php b/plugin/migrationmoodle/lang/english.php index 04e3223632..b8306b7e14 100644 --- a/plugin/migrationmoodle/lang/english.php +++ b/plugin/migrationmoodle/lang/english.php @@ -73,3 +73,4 @@ $strings['UserQuestionAttemptsShortanswerTask'] = 'Question attempts of users fo $strings['UserQuestionAttemptsGapselectTask'] = 'Question attempts of users for gapselect'; $strings['UserQuestionAttemptsTruefalseTask'] = 'Question attempts of users for truefalse'; $strings['UsersLastLoginTask'] = 'Last logins for users'; +$strings['TrackLoginTask'] = 'First login and last logout'; diff --git a/plugin/migrationmoodle/run_cli.php b/plugin/migrationmoodle/run_cli.php index 6d03501e4a..b36698625a 100644 --- a/plugin/migrationmoodle/run_cli.php +++ b/plugin/migrationmoodle/run_cli.php @@ -63,6 +63,7 @@ $taskNames = [ /**//**//**/'files_for_scorm_scoes', 'users', /**/'users_last_login', + /**/'track_login', /**/'user_sessions', /**//**/'users_learn_paths', /**//**//**/'users_learn_paths_lesson_timer', diff --git a/plugin/migrationmoodle/src/Loader/TrackLoginLoader.php b/plugin/migrationmoodle/src/Loader/TrackLoginLoader.php new file mode 100644 index 0000000000..b76307c3ee --- /dev/null +++ b/plugin/migrationmoodle/src/Loader/TrackLoginLoader.php @@ -0,0 +1,33 @@ +format('Y-m-d H:i:s'); + + if ($incomingData['logout_date']) { + $incomingData['logout_date'] = $incomingData['logout_date']->format('Y-m-d H:i:s'); + } + + $incomingData['user_ip'] = ''; + + return \Database::insert( + \Database::get_main_table(TABLE_STATISTIC_TRACK_E_LOGIN), + $incomingData + ); + } +} diff --git a/plugin/migrationmoodle/src/Task/TrackLoginTask.php b/plugin/migrationmoodle/src/Task/TrackLoginTask.php new file mode 100644 index 0000000000..388812feb0 --- /dev/null +++ b/plugin/migrationmoodle/src/Task/TrackLoginTask.php @@ -0,0 +1,63 @@ + LoadedUsersFilterExtractor::class, + 'query' => 'SELECT id, firstaccess, lastaccess FROM mdl_user WHERE firstaccess != 0', + ]; + } + + /** + * @inheritDoc + */ + public function getTransformConfiguration() + { + return [ + 'class' => BaseTransformer::class, + 'map' => [ + 'login_user_id' => [ + 'class' => LoadedUserLookup::class, + 'properties' => ['id'], + ], + 'login_date' => [ + 'class' => DateTimeObject::class, + 'properties' => ['firstaccess'], + ], + 'logout_date' => [ + 'class' => DateTimeObject::class, + 'properties' => ['lastaccess'], + ], + ], + ]; + } + + /** + * @inheritDoc + */ + public function getLoadConfiguration() + { + return [ + 'class' => TrackLoginLoader::class, + ]; + } +}