From cfb27dde023e4f4d04fc9de687548501e607d371 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 17 Jan 2010 13:28:24 -0800 Subject: Adjust installers to work with model based validation. --- modules/user/helpers/user_installer.php | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'modules/user/helpers/user_installer.php') diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index 0cba502f..70bee300 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -53,21 +53,39 @@ class user_installer { UNIQUE KEY(`user_id`, `group_id`)) DEFAULT CHARSET=utf8;"); - $everybody = group::create("Everybody"); + $everybody = ORM::factory("group"); + $everybody->name = "Everybody"; $everybody->special = true; $everybody->save(); - $registered = group::create("Registered Users"); + $registered = ORM::factory("group"); + $registered->name = "Registered Users"; $registered->special = true; $registered->save(); - $guest = user::create("guest", "Guest User", ""); - $guest->guest = true; - $guest->remove($registered); + // Avoid ORM to sidestep validation. + db::build()->insert( + "users", + array("name" => "guest", + "full_name" => "Guest User", + "guest" => true)) + ->execute(); + + $guest = ORM::factory("user")->where("id", "=", 1)->find(); + $guest->add($everybody); $guest->save(); - $admin = user::create("admin", "Gallery Administrator", "admin"); - $admin->admin = true; + db::build()->insert( + "users", + array("name" => "admin", + "full_name" => "Gallery Administrator", + "password" => "admin", + "admin" => true)) + ->execute(); + + $admin = ORM::factory("user")->where("id", "=", 2)->find(); + $admin->add($everybody); + $admin->add($registered); $admin->save(); $current_provider = module::get_var("gallery", "identity_provider"); -- cgit v1.2.3 From 5162e35d499e8f57f2cff8eefeb633538aad8a65 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 17 Jan 2010 17:54:14 -0800 Subject: Use an empty password for the guest user. --- modules/user/helpers/user_installer.php | 1 + 1 file changed, 1 insertion(+) (limited to 'modules/user/helpers/user_installer.php') diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index 70bee300..f7e3b60b 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -68,6 +68,7 @@ class user_installer { "users", array("name" => "guest", "full_name" => "Guest User", + "password" => "", "guest" => true)) ->execute(); -- cgit v1.2.3 From b6dab323ac478339b03f98430c2591562e747f43 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Mon, 25 Jan 2010 20:42:48 -0800 Subject: Use ORM to create the users since now our validation can handle doing it the right way. Set a default email address for admins. --- modules/user/helpers/user_installer.php | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) (limited to 'modules/user/helpers/user_installer.php') diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index f2d131ae..1d49998d 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -95,30 +95,19 @@ class user_installer { $registered->special = true; $registered->save(); - // Avoid ORM to sidestep validation. - db::build()->insert( - "users", - array("name" => "guest", - "full_name" => "Guest User", - "password" => "", - "guest" => true)) - ->execute(); - - $guest = ORM::factory("user")->where("id", "=", 1)->find(); - $guest->add($everybody); + $guest = ORM::factory("user"); + $guest->name = "guest"; + $guest->full_name = "Guest User"; + $guest->password = ""; + $guest->guest = true; $guest->save(); - db::build()->insert( - "users", - array("name" => "admin", - "full_name" => "Gallery Administrator", - "password" => "admin", - "admin" => true)) - ->execute(); - - $admin = ORM::factory("user")->where("id", "=", 2)->find(); - $admin->add($everybody); - $admin->add($registered); + $admin = ORM::factory("user"); + $admin->name = "admin"; + $admin->full_name = "Gallery Administrator"; + $admin->password = "admin"; + $admin->email = "unknown@unknown.com"; + $admin->admin = true; $admin->save(); $root = ORM::factory("item", 1); -- cgit v1.2.3 From e1bf010d89c4ef2023f204834c468793d866483c Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 31 Jan 2010 20:50:52 -0800 Subject: Force all non-guest users to have an email address since that's required in model validation. Without this, any save on a user without email will fail which means that you can't log in. Bump user module to version 3. --- modules/user/helpers/user_installer.php | 16 ++++++++++++++-- modules/user/module.info | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'modules/user/helpers/user_installer.php') diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index 1d49998d..729f087a 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -29,9 +29,21 @@ class user_installer { static function upgrade($version) { if ($version == 1) { module::set_var("user", "mininum_password_length", 5); - module::set_version("user", $version = 2); } + + if ($version == 2) { + db::build() + ->update("users") + ->set("email", "unknown@unknown.com") + ->where("guest", "=", 0) + ->and_open() + ->where("email", "IS", null) + ->or_where("email", "=", "") + ->close() + ->execute(); + module::set_version("user", $version = 3); + } } static function uninstall() { @@ -117,7 +129,7 @@ class user_installer { access::allow($registered, "view", $root); access::allow($registered, "view_full", $root); - module::set_version("user", 2); module::set_var("user", "mininum_password_length", 5); + module::set_version("user", 3); } } \ No newline at end of file diff --git a/modules/user/module.info b/modules/user/module.info index d1e02382..185a3e3a 100644 --- a/modules/user/module.info +++ b/modules/user/module.info @@ -1,4 +1,4 @@ name = "Users and Groups" description = "Gallery 3 user and group management" -version = 2 +version = 3 -- cgit v1.2.3