diff options
author | Bharat Mediratta <bharat@menalto.com> | 2008-11-26 04:13:57 +0000 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2008-11-26 04:13:57 +0000 |
commit | 5ccb050413c15b4c16a20b2806886759332a90a7 (patch) | |
tree | 75928903df082c8a43b51e42c384f7dc39ca16c8 | |
parent | 242b3a1403aec688f82024adfa0ca20b25981a60 (diff) |
group::create() and group::delete() now manage the view_## columns in
the items table.
Convert installer over to using new creation API.
-rw-r--r-- | modules/user/helpers/group.php | 12 | ||||
-rw-r--r-- | modules/user/helpers/user_installer.php | 36 |
2 files changed, 20 insertions, 28 deletions
diff --git a/modules/user/helpers/group.php b/modules/user/helpers/group.php index 95daa767..84272b79 100644 --- a/modules/user/helpers/group.php +++ b/modules/user/helpers/group.php @@ -38,6 +38,10 @@ class group_Core { $group->name = $name; $group->save(); + + // Create the view column for this group in the items table. + Database::instance()->query("ALTER TABLE `items` ADD `view_{$group->id}` BOOLEAN DEFAULT 0"); + return $group; } @@ -47,6 +51,12 @@ class group_Core { * @param string $name the group name */ static function delete($name) { - ORM::factory("group")->where("name", $name)->find()->delete(); + $group = ORM::factory("group")->where("name", $name)->find(); + + if ($group->loaded) { + // Drop the view column for this group in the items table. + Database::instance()->query("ALTER TABLE `items` DROP `view_{$group->id}`"); + $group->delete(); + } } }
\ No newline at end of file diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index 1ba2e866..d3976e80 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -39,7 +39,7 @@ class user_installer { UNIQUE KEY(`display_name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); - $db->query("CREATE TABLE IF NOT EXISTS`groups` ( + $db->query("CREATE TABLE IF NOT EXISTS `groups` ( `id` int(9) NOT NULL auto_increment, `name` char(255) default NULL, PRIMARY KEY (`id`), @@ -55,34 +55,16 @@ class user_installer { module::set_version("user", 1); - $user = ORM::factory("user")->where("name", "admin")->find(); - $user->name = "admin"; - $user->display_name = "Gallery Administrator"; - $user->password = "admin"; - $user->save(); - $id = $user->id; + // @todo: get this info from the installer + $admin = user::create("admin", "Gallery Administrator", "admin"); + $user = user::create("joe", "Joe User", "joe"); - $db->query("UPDATE `items` SET `owner_id` = $id WHERE `owner_id` IS NULL"); + $registered = group::create("Registered Users"); + $registered->add($admin); + $registered->add($user); - foreach (array("administrator", "registered") as $group_name) { - $group = ORM::factory("group")->where("name", $group_name)->find(); - $group->name = $group_name; - $group->save(); - if (!$group->add($user)) { - throw new Exception("@todo {$user->name} WAS_NOT_ADDED_TO {$group_name}"); - } - } - - // @todo: get this name from the installer. - $user = ORM::factory("user")->where("name", "joe")->find(); - $user->name = "joe"; - $user->display_name = "Registered User"; - $user->password = "joe"; - $user->save(); - $group = ORM::factory("group")->where("name", "registered")->find(); - if (!$group->add($user)) { - throw new Exception("@todo {$user->name} WAS_NOT_ADDED_TO {$group_name}"); - } + // Let the admin own everything + $db->query("UPDATE `items` SET `owner_id` = {$admin->id} WHERE `owner_id` IS NULL"); } } |