diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2008-11-10 20:17:09 +0000 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2008-11-10 20:17:09 +0000 |
commit | 0a8d5edbdc8e3e251f29b7370fdc2e594b06446f (patch) | |
tree | c32a89c1c0b7f4458d0c6161be5d2a73f396f3ce /modules/user/helpers | |
parent | ddf0a519000f4c93df1f2ded18b631325256a905 (diff) |
Early look at the User/Auth module refactoring. It will look for a driver based on the contents of the user/config/user.php file. And load that driver based on the User_Driver interface. There is a default User_Gallery_Driver class that will provide the actual interface implementation. Replacing this driver will allow a completely different user and authentication implementation to be used... hopefully will reduce issues with embedding and other user management systems. Removed from unit tests so they will still run.
Diffstat (limited to 'modules/user/helpers')
-rw-r--r-- | modules/user/helpers/user_installer.php | 68 |
1 files changed, 5 insertions, 63 deletions
diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index 97206752..31865ad1 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -22,71 +22,13 @@ class user_installer { public static function install() { Kohana::log("debug", "user_installer::install"); - $db = Database::instance(); - try { - $base_version = ORM::factory("module")->where("name", "user")->find()->version; - } catch (Exception $e) { - if ($e->getCode() == E_DATABASE_ERROR) { - $base_version = 0; - } else { - Kohana::log("error", $e); - throw $e; - } - } - Kohana::log("debug", "base_version: $base_version"); - - if ($base_version == 0) { - $db->query("CREATE TABLE IF NOT EXISTS `users` ( - `id` int(9) NOT NULL auto_increment, - `name` varchar(255) NOT NULL, - `display_name` char(255) NOT NULL, - `email` int(9) default NULL, - PRIMARY KEY (`id`), - UNIQUE KEY(`display_name`)) - ENGINE=InnoDB DEFAULT CHARSET=utf8;"); - - $db->query("CREATE TABLE IF NOT EXISTS`groups` ( - `id` int(9) NOT NULL auto_increment, - `name` char(255) default NULL, - PRIMARY KEY (`id`), - UNIQUE KEY(`name`)) - ENGINE=InnoDB DEFAULT CHARSET=utf8;"); - - $db->query("CREATE TABLE IF NOT EXISTS `groups_users` ( - `group_id` int(9) NOT NULL, - `user_id` int(9) NOT NULL, - PRIMARY KEY (`group_id`, `user_id`), - UNIQUE KEY(`user_id`, `group_id`)) - ENGINE=InnoDB DEFAULT CHARSET=utf8;"); - - $user_module = ORM::factory("module")->where("name", "user")->find(); - $user_module->name = "user"; - $user_module->version = 1; - $user_module->save(); - - $user = ORM::factory("user")->where("display_name", "admin")->find(); - $user->name = "admin"; - $user->display_name = "Gallery Administrator"; - $user->save(); - $id = $user->id; - $db->query("UPDATE `items` SET `owner_id` = $id WHERE `owner_id` IS NULL"); - - 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}"); - } - } - } + $user = User::instance(); + $user->install(); } public static function uninstall() { - $db = Database::instance(); - $db->query("DROP TABLE IF EXISTS `users`;"); - $db->query("DROP TABLE IF EXISTS `groups`;"); - $db->query("DROP TABLE IF EXISTS `groups_users`;"); - ORM::factory("module")->where("name", "user")->find()->delete(); + Kohana::log("debug", "user_installer::install"); + $user = User::instance(); + $user->uninstall(); } }
\ No newline at end of file |