X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=DataObjects%2FCore_person.php;h=30b72af79887f21a7efb8ec068ac431fa7d661ce;hb=586e4eb470252d837ba18b67e4c3c1702131fd1d;hp=a11f1bd58d86c0f4d0095238d81fd70af3b389e9;hpb=32ec5f7602976566d43721db7f03f49e0dc68735;p=Pman.Core diff --git a/DataObjects/Core_person.php b/DataObjects/Core_person.php index a11f1bd5..30b72af7 100644 --- a/DataObjects/Core_person.php +++ b/DataObjects/Core_person.php @@ -56,7 +56,8 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject function owner() { - $p = DB_DataObject::Factory($this->tableName()); + // this might be a Person in some old code? + $p = DB_DataObject::Factory('core_person'); $p->get($this->owner_id); return $p; } @@ -1133,8 +1134,28 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject LENGTH({$this->tableName()}.oath_key) AS length_oath_key "); } + if (isset($q['_with_group_membership'])) { + $this->selectAddGroupMemberships(); + } - + } + + function selectAddGroupMemberships() + { + $this->selectAdd(" + + COALESCE(( + SELECT + GROUP_CONCAT( core_group.name separator '\n') + FROM + core_group_member + LEFT JOIN + core_group + ON + core_group.id = core_group_member.group_id + WHERE + core_group_member.user_id = core_person.id + ), '') as member_of"); } function setFromRoo($ar, $roo)