From b6363bcb03fcb9644989336b983e0fd4ab2d574f Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Mon, 15 Dec 2008 20:49:05 +0000 Subject: Update to reflect changes in Kohana ORM relationship code. Now you must call ORM::save() after ORM::add() and ORM::remove(). --- modules/user/helpers/user.php | 15 ++++------ modules/user/helpers/user_installer.php | 2 +- modules/user/tests/User_Groups_Test.php | 52 +++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 10 deletions(-) create mode 100644 modules/user/tests/User_Groups_Test.php (limited to 'modules') diff --git a/modules/user/helpers/user.php b/modules/user/helpers/user.php index 7d72a9b6..e7a3e165 100644 --- a/modules/user/helpers/user.php +++ b/modules/user/helpers/user.php @@ -94,7 +94,7 @@ class user_Core { * @return User_Model */ static function create($name, $display_name, $password) { - $user = ORM::factory("user")->where("name", $name); + $user = ORM::factory("user")->where("name", $name)->find(); if ($user->loaded) { throw new Exception("@todo USER_ALREADY_EXISTS $name"); } @@ -102,16 +102,13 @@ class user_Core { $user->name = $name; $user->display_name = $display_name; $user->password = $password; - $user->save(); - - // Everybody user - $group = ORM::factory("group", 1); - $group->add($user); - // Registered users - $group = ORM::factory("group", 2); - $group->add($user); + // Everybody group + $user->add(ORM::factory("group", 1)); + // Registered Users group + $user->add(ORM::factory("group", 2)); + $user->save(); module::event("user_created", $user); return $user; } diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index 2de3a6cd..739a8815 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -62,8 +62,8 @@ class user_installer { $guest = user::create("guest", "Guest User", ""); $guest->guest = true; - $guest->save(); $guest->remove($registered); + $guest->save(); $admin = user::create("admin", "Gallery Administrator", "admin"); $admin->admin = true; diff --git a/modules/user/tests/User_Groups_Test.php b/modules/user/tests/User_Groups_Test.php new file mode 100644 index 00000000..f8f25cf1 --- /dev/null +++ b/modules/user/tests/User_Groups_Test.php @@ -0,0 +1,52 @@ +where("name", "user_groups_test")->find(); + if ($group->loaded) { + $group->delete(); + } + } catch (Exception $e) { } + + try { + $user = ORM::factory("user")->where("name", "user_groups_test")->find(); + if ($user->loaded) { + $user->delete(); + } + } catch (Exception $e) { } + } + + public function add_user_to_group_test() { + $user = ORM::factory("user"); + $user->name = "user_groups_test"; + $user->save(); + + $group = ORM::factory("group"); + $group->name = "user_groups_test"; + $group->save(); + + $group->add($user); + $group->save(); + + $this->assert_true($user->has($group)); + } +} -- cgit v1.2.3