X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=DataObjects%2FCore_person.php;h=0c17a7de131bef86ce0b67a908a533b55784f939;hb=89b7f2b7d9572a08b32450cb1604478ce066a064;hp=b72ecbe0e497d66ab74cc2dd4a868d2a48ade211;hpb=ee1b0a9d018f5fa6cc582773ead32ff4c24a3ce9;p=Pman.Core diff --git a/DataObjects/Core_person.php b/DataObjects/Core_person.php index b72ecbe0..0c17a7de 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; } @@ -250,7 +251,10 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject // ---------------- authentication / passwords and keys stuff ---------------- function isAuth() { - @session_start(); + // do not start a session if we are using http auth... + if (empty($_SERVER['PHP_AUTH_USER'])) { + @session_start(); + } $ff= HTML_FlexyFramework::get(); @@ -601,6 +605,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 +709,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 +1140,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 +1187,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; }