summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/controllers/welcome.php14
-rw-r--r--core/tests/Access_Helper_Test.php8
2 files changed, 15 insertions, 7 deletions
diff --git a/core/controllers/welcome.php b/core/controllers/welcome.php
index 9e6f9542..5afe094e 100644
--- a/core/controllers/welcome.php
+++ b/core/controllers/welcome.php
@@ -455,16 +455,22 @@ class Welcome_Controller extends Template_Controller {
}
public function remove_from_group($group_id, $user_id) {
- ORM::factory("group", $group_id)->remove(
- ORM::factory("user", $user_id));
+ $group = ORM::factory("group", $group_id);
+ $user = ORM::factory("group", $user_id);
+ if ($group->loaded && $user->loaded) {
+ $group->remove($user);
+ $group->save();
+ }
url::redirect("welcome");
}
public function add_to_group($user_id) {
$group_name = $this->input->post("group_name");
$group = ORM::factory("group")->where("name", $group_name)->find();
- if ($group->loaded) {
- $group->add(ORM::factory("user", $user_id));
+ $user = ORM::factory("group", $user_id);
+ if ($group->loaded && $user->loaded) {
+ $group->add($user);
+ $group->save();
}
url::redirect("welcome");
}
diff --git a/core/tests/Access_Helper_Test.php b/core/tests/Access_Helper_Test.php
index 9b08b2cd..ce9276fd 100644
--- a/core/tests/Access_Helper_Test.php
+++ b/core/tests/Access_Helper_Test.php
@@ -280,8 +280,7 @@ class Access_Helper_Test extends Unit_Test_Case {
foreach ($user->groups as $group) {
$user->remove($group);
}
- // @todo remove this reload when http://dev.kohanaphp.com/ticket/959 is resolved
- $user->reload();
+ $user->save();
user::set_active($user);
// This user can't edit anything
@@ -291,8 +290,11 @@ class Access_Helper_Test extends Unit_Test_Case {
// Now add them to a group that has edit permission
$group = group::create("access_test");
$group->add($user);
+ $group->save();
access::allow($group, "edit", $root);
- user::set_active($user->reload());
+
+ $user = ORM::factory("user", $user->id); // reload() does not flush related columns
+ user::set_active($user);
// And verify that the user can edit.
$this->assert_true(access::can("edit", $root));