MigrationMoodle: Set option to load sessions when some one exists - refs BT#15992

pull/3159/head
Angel Fernando Quiroz Campos 6 years ago
parent fcb2a1a8cf
commit a053a7e984
  1. 29
      plugin/migrationmoodle/src/Loader/UserSessionLoader.php

@ -12,21 +12,44 @@ use Chamilo\PluginBundle\MigrationMoodle\Interfaces\LoaderInterface;
*/
class UserSessionLoader implements LoaderInterface
{
const LOAD_MODE_REUSE = 'reuse';
const LOAD_MODE_DUPLICATE = 'duplicate';
/**
* @var string Load mode: "reuse" or "duplicate". Default is "duplicate".
*/
private $loadMode = self::LOAD_MODE_DUPLICATE;
/**
* {@inheritdoc}
*/
public function load(array $incomingData)
{
$datetime = api_get_utc_datetime();
$coachId = 1;
foreach ($incomingData['course_ids'] as $courseId) {
if (empty($courseId)) {
throw new \Exception("Course ($courseId) not found when creating course session for user ({$incomingData['user_id']}). ".'Session will not be created.');
}
}
$tblSession = \Database::get_main_table(TABLE_MAIN_SESSION);
$sessionInfo = \Database::fetch_assoc(
\Database::query("SELECT id FROM $tblSession WHERE name = '{$incomingData['name']}'")
);
if (!empty($sessionInfo)) {
if ($this->loadMode == self::LOAD_MODE_REUSE) {
return $sessionInfo['id'];
}
if ($this->loadMode === self::LOAD_MODE_DUPLICATE) {
$incomingData['name'] = '['.substr(md5(uniqid(rand())), 0, 5).'] '.$incomingData['name'];
}
}
$urlId = \MigrationMoodlePlugin::create()->getAccessUrlId();
$datetime = api_get_utc_datetime();
$coachId = 1;
$sessionId = \SessionManager::create_session(
$incomingData['name'],

Loading…
Cancel
Save