diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/user/helpers/user.php | 15 | ||||
-rw-r--r-- | modules/user/helpers/user_installer.php | 2 | ||||
-rw-r--r-- | modules/user/tests/User_Groups_Test.php | 52 |
3 files changed, 59 insertions, 10 deletions
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 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ + +class User_Groups_Test extends Unit_Test_Case { + public function teardown() { + try { + $group = ORM::factory("group")->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)); + } +} |