summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-10-20 17:21:33 -0700
committerTim Almdal <tnalmdal@shaw.ca>2009-10-20 17:21:33 -0700
commitb28c758d4a98c9e877fb81f7b88f9c8597de74b6 (patch)
treef3d4257d739a3b23f0168b5618dab2586491b697 /modules
parent3ece1a01f25270939b3c12f754d555d6ac54d375 (diff)
Add lookup_group Identity provider API and change the permissions controller to use it to get the group it is modifying
Diffstat (limited to 'modules')
-rw-r--r--modules/gallery/controllers/permissions.php6
-rw-r--r--modules/gallery/libraries/Identity.php7
-rw-r--r--modules/gallery/libraries/drivers/Identity.php7
-rw-r--r--modules/user/libraries/drivers/Identity/Gallery.php6
4 files changed, 20 insertions, 6 deletions
diff --git a/modules/gallery/controllers/permissions.php b/modules/gallery/controllers/permissions.php
index 7a06c3d3..58c5b816 100644
--- a/modules/gallery/controllers/permissions.php
+++ b/modules/gallery/controllers/permissions.php
@@ -51,13 +51,13 @@ class Permissions_Controller extends Controller {
function change($command, $group_id, $perm_id, $item_id) {
access::verify_csrf();
- $group = ORM::factory("group", $group_id);
+ $group = Identity::lookup_group($group_id);
$perm = ORM::factory("permission", $perm_id);
$item = ORM::factory("item", $item_id);
access::required("view", $item);
access::required("edit", $item);
- if ($group->loaded && $perm->loaded && $item->loaded) {
+ if (!empty($group) && $perm->loaded && $item->loaded) {
switch($command) {
case "allow":
access::allow($group, $perm->name, $item);
@@ -84,7 +84,7 @@ class Permissions_Controller extends Controller {
private function _get_form($item) {
$view = new View("permissions_form.html");
$view->item = $item;
- $view->groups = ORM::factory("group")->find_all();
+ $view->groups = Identity::groups();
$view->permissions = ORM::factory("permission")->find_all();
return $view;
}
diff --git a/modules/gallery/libraries/Identity.php b/modules/gallery/libraries/Identity.php
index 3ef13a6d..1dd5d23b 100644
--- a/modules/gallery/libraries/Identity.php
+++ b/modules/gallery/libraries/Identity.php
@@ -193,6 +193,13 @@ class Identity_Core {
}
/**
+ * @see Identity_Driver::lookup_group.
+ */
+ static function lookup_group($id) {
+ return self::instance()->driver->lookup_group($id);
+ }
+
+ /**
* @see Identity_Driver::lookup_group_by_name.
*/
static function lookup_group_by_name($name) {
diff --git a/modules/gallery/libraries/drivers/Identity.php b/modules/gallery/libraries/drivers/Identity.php
index b77eb6be..5b35d49b 100644
--- a/modules/gallery/libraries/drivers/Identity.php
+++ b/modules/gallery/libraries/drivers/Identity.php
@@ -98,6 +98,13 @@ interface Identity_Driver {
public function get_user_list($ids);
/**
+ * Look up a group by id.
+ * @param integer id
+ * @return Group_Definition the user object, or null if the name was invalid.
+ */
+ static function lookup_group($id);
+
+ /**
* List the groups defined in the Identity Provider
*/
static function groups();
diff --git a/modules/user/libraries/drivers/Identity/Gallery.php b/modules/user/libraries/drivers/Identity/Gallery.php
index 8e6e204d..17327c17 100644
--- a/modules/user/libraries/drivers/Identity/Gallery.php
+++ b/modules/user/libraries/drivers/Identity/Gallery.php
@@ -116,10 +116,10 @@ class Identity_Gallery_Driver implements Identity_Driver {
}
/**
- * @see Identity_Driver::lookup_group_by_name.
+ * @see Identity_Driver::lookup_group.
*/
- static function lookup_group_by_name($name) {
- return group::lookup_by_field("name", $name);
+ static function lookup_group($id) {
+ return group::lookup_by_field("id", $id);
}
/**