diff options
-rw-r--r-- | modules/g2_import/helpers/g2_import.php | 73 | ||||
-rw-r--r-- | modules/g2_import/helpers/g2_import_installer.php | 3 | ||||
-rw-r--r-- | modules/g2_import/helpers/g2_import_task.php | 2 |
3 files changed, 47 insertions, 31 deletions
diff --git a/modules/g2_import/helpers/g2_import.php b/modules/g2_import/helpers/g2_import.php index 20be2107..0f632c5c 100644 --- a/modules/g2_import/helpers/g2_import.php +++ b/modules/g2_import/helpers/g2_import.php @@ -103,22 +103,28 @@ class g2_import_Core { } $g2_group = g2(GalleryCoreApi::loadEntitiesById($g2_group_id)); - if ($g2_group->getGroupType() != GROUP_NORMAL) { - return; - } - - try { + switch ($g2_group->getGroupType()) { + case GROUP_NORMAL: $group = group::create($g2_group->getGroupName()); + break; - $map[$g2_group->getId()] = $group->id; - $g2_map = ORM::factory("g2_map"); - $g2_map->id = $group->id; - $g2_map->g2_id = $g2_group->getId(); - $g2_map->save(); - } catch (Exception $e) { - // @todo For now we assume this is a "duplicate group" exception - // which we will ignore. + case GROUP_ALL_USERS: + $group = group::registered_users(); + break; + + case GROUP_SITE_ADMINS: + break; // This is not a group in G3 + + case GROUP_EVERYBODY: + $group = group::everybody(); + break; } + + $map[$g2_group->getId()] = $group->id; + $g2_map = ORM::factory("g2_map"); + $g2_map->g3_id = $group->id; + $g2_map->g2_id = $g2_group->getId(); + $g2_map->save(); } static function import_user(&$queue, &$map) { @@ -131,26 +137,35 @@ class g2_import_Core { return; } + $g2_admin_group_id = + g2(GalleryCoreApi::getPluginParameter("module", "core", "id.adminGroup"));; $g2_user = g2(GalleryCoreApi::loadEntitiesById($g2_user_id)); + $g2_groups = g2(GalleryCoreApi::fetchGroupsForUser($g2_user->getId())); + try { - $user = user::create($g2_user->getUserName(), $g2_user->getFullName(), ""); - $user->hashed_password = $g2_user->getHashedPassword(); - $user->email = $g2_user->getEmail(); - $user->language = $g2_user->getLanguage(); - $user->save(); - $user_map[$g2_user->getId()] = $user->id; - - $map[$g2_user->getId()] = $user->id; - $g2_map = ORM::factory("g2_map"); - $g2_map->id = $user->id; - $g2_map->g2_id = $g2_user->getId(); - $g2_map->save(); - - // @todo put the user into the appropriate groups + $user = user::create($g2_user->getUsername(), $g2_user->getfullname(), ""); } catch (Exception $e) { // @todo For now we assume this is a "duplicate user" exception - // which we will ignore. + $user = user::lookup_by_name($g2_user->getUsername()); + } + + $user->hashed_password = $g2_user->getHashedPassword(); + $user->email = $g2_user->getEmail(); + $user->locale = $g2_user->getLanguage(); + foreach ($g2_groups as $g2_group_id => $g2_group_name) { + if ($g2_group_id == $g2_admin_group_id) { + $user->admin = true; + } else { + $user->add(ORM::factory("group", $map[$g2_group_id])); + } } + $user->save(); + + $map[$g2_user->getId()] = $user->id; + $g2_map = ORM::factory("g2_map"); + $g2_map->g3_id = $user->id; + $g2_map->g2_id = $g2_user->getId(); + $g2_map->save(); } static function import_album(&$queue, &$map) { @@ -185,7 +200,7 @@ class g2_import_Core { $map[$g2_album->getId()] = $album->id; $g2_map = ORM::factory("g2_map"); - $g2_map->id = $album->id; + $g2_map->g3_id = $album->id; $g2_map->g2_id = $g2_album->getId(); $g2_map->save(); diff --git a/modules/g2_import/helpers/g2_import_installer.php b/modules/g2_import/helpers/g2_import_installer.php index 22aa76c4..40fc304a 100644 --- a/modules/g2_import/helpers/g2_import_installer.php +++ b/modules/g2_import/helpers/g2_import_installer.php @@ -23,8 +23,9 @@ class g2_import_installer { $version = module::get_version("g2_import"); if ($version == 0) { $db->query("CREATE TABLE IF NOT EXISTS {g2_maps} ( - `id` int(9) NOT NULL, + `id` int(9) NOT NULL auto_increment, `g2_id` int(9) NOT NULL, + `g3_id` int(9) NOT NULL, PRIMARY KEY (`id`), KEY (`g2_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); diff --git a/modules/g2_import/helpers/g2_import_task.php b/modules/g2_import/helpers/g2_import_task.php index 3715e8a1..fea949e5 100644 --- a/modules/g2_import/helpers/g2_import_task.php +++ b/modules/g2_import/helpers/g2_import_task.php @@ -50,8 +50,8 @@ class g2_import_task_Core { $root_g2_id = g2(GalleryCoreApi::getDefaultAlbumId()); $root = ORM::factory("g2_map")->where("g2_id", $root_g2_id)->find(); if (!$root->loaded) { - $root->id = 1; $root->g2_id = $root_g2_id; + $root->g3_id = 1; $root->save(); } |