X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FCore_person.php;h=5160b4e3ead0d217a4f6a128f2dbc39e12d374d3;hp=b72ecbe0e497d66ab74cc2dd4a868d2a48ade211;hb=c8c28ad4fd428d676f271af4142af913d47f755a;hpb=ee1b0a9d018f5fa6cc582773ead32ff4c24a3ce9 diff --git a/DataObjects/Core_person.php b/DataObjects/Core_person.php index b72ecbe0..5160b4e3 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; } @@ -601,6 +602,9 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject function company() { + if (empty($this->company_id)) { + return false; + } $x = DB_DataObject::factory('core_company'); $x->autoJoin(); $x->get($this->company_id); @@ -702,9 +706,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject 'person_id' => $this->id )); - foreach ($core_person_settings->fetchAll() as $k => $v) { - $aur['core_person_settings'][$v->scope] = $v->toArray(); - } + $aur['core_person_settings'] = $core_person_settings->fetchAll('scope', 'data'); return $aur; } @@ -1135,13 +1137,33 @@ 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) { - $this->setFrom($ar); + $this->setFrom($ar); if(!empty($ar['_enable_oath_key'])){ $oath_key = $this->generateOathKey(); @@ -1162,7 +1184,7 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject } // this only applies to our owner company.. $c = $this->company(); - if (empty($c->comptype_name) || $c->comptype_name != 'OWNER') { + if (empty($c) || empty($c->comptype_name) || $c->comptype_name != 'OWNER') { return true; }