summaryrefslogtreecommitdiff
path: root/modules/gallery
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gallery')
-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
3 files changed, 17 insertions, 3 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();