X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FEvents.php;h=e8682ac8f2cadde618b6512710cb4b1c744fc85e;hp=1c26ba1b94e14b288537972829a9f13cfe19c8bf;hb=1524f8b36295809a3eedd6da3c6494f8aa0d86f5;hpb=16e7e7deae120f817dd8f3d4748464acdc47b5ae diff --git a/DataObjects/Events.php b/DataObjects/Events.php index 1c26ba1b..e8682ac8 100644 --- a/DataObjects/Events.php +++ b/DataObjects/Events.php @@ -25,6 +25,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject public $person_id; // int(11) public $remarks; // blob(65535) blob public $person_table; // string(64) + public $dupe_id; // int(11) /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -73,12 +74,12 @@ class Pman_Core_DataObjects_Events extends DB_DataObject } $jt = DB_DataObject::factory($person); - $this->whereAdd(" - person_table = '{$jt->tableName()}' - OR - person_table = '' - OR person_table IS NULL" - ); // default to our standard.. - unless otherwise requested.. + //$this->whereAdd(" + // person_table = '{$jt->tableName()}' + // OR + // person_table = '' + // OR person_table IS NULL" + //); // default to our standard.. - unless otherwise requested.. } @@ -91,13 +92,9 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $this->whereAdd(" {$tn}.event_when <= '$dt' "); } - if(!empty($q['dup_check'])){ - $et = DB_DataObject::factory($tn); - $this->_join .= "LEFT JOIN {$et->tableName()} AS evet ON (evet.id=Events.id)"; - $this->selectAdd("(select count(*)+1 from Events where Events.dup_id = evet.evet_id) as cnt "); - $this->selectAs($et,'%s','evet'); - $this->having('dup_id = 0 '); - + if(!empty($q['_with_dupe_count'])){ + $this->dupe_id = 0; + $this->selectAdd("(select count(*)+1 from Events ev_cnt where ev_cnt.dupe_id = {$tn}.id) as dupe_count"); } /* if (!empty($q['query']['grouped']) && $q['query']['grouped'] == 'gr') { @@ -110,13 +107,6 @@ class Pman_Core_DataObjects_Events extends DB_DataObject } */ - if (!$au->hasPerm("Admin.Admin_Tab", 'S')) { - //DB_DataObject::DebugLevel(1); - // they can only view their changes.. - $this->whereAdd("($tn.person_id = {$au->id} OR $tn.person_id = 0)"); -// $this->person_id = $au->id; - - } // _join = tablename,tablename... /// on_table=cohead @@ -220,8 +210,9 @@ class Pman_Core_DataObjects_Events extends DB_DataObject if (!$obj) { $roo->jerr("ontable is invalid"); } + if (!method_exists($obj,'relatedWhere')) { - $roo->jerr( $q['_related_on_table'] . " Does not have method relatedWhere :" . + $roo->jerr( $q['_related_on_table'] . " Does not have method relatedWhere or relatedEventsWhere:" . implode(',', get_class_methods($obj))); } if ($obj && method_exists($obj,'relatedWhere')) { @@ -245,11 +236,10 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $this->whereAdd(implode(' OR ' , $w)); } - - - + } + // since roo does not support autojoin yet.. if (!isset($q['_distinct'])) { //$this->autoJoinExtra(); @@ -266,8 +256,16 @@ class Pman_Core_DataObjects_Events extends DB_DataObject } } - + function applyPermissionFilters($q, $au ,$roo) + { + if (!$au->hasPerm("Admin.Admin_Tab", 'S')) { + //DB_DataObject::DebugLevel(1); + // they can only view their changes.. + $this->whereAdd("($tn.person_id = {$au->id} OR $tn.person_id = 0)"); +// $this->person_id = $au->id; + } + } /** * check who is trying to access this. false == access denied.. @@ -310,14 +308,17 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $ff = HTML_FlexyFramework::get(); $pg = $ff->page; $au = $pg->getAuthUser(); - + if ($ff->cli) { // && empty($au) && isset($obj->person_id)) { $au = false; // $au = DB_DataObject::Factory('Person'); // not always a person.. // $au->get($obj->person_id); } - + $this->person_name = $au && !empty($au->name) ? $au->name : ''; + //print_r($au); + //exit; + //$this->who = $au && !empty($au->name) ? $au->name : ''; if (empty($au) || (isset($au->id) && empty($au->id))) { // not authenticated - and a standard id based object $this->person_id = 0; @@ -327,7 +328,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $cols = $this->tableColumns(); $col = isset($cols[$col]) ? $col : 'person_id'; // for BC.... - revert to using person_id $this->{$col} = $au->pid(); - //$this->person_id = $au ? (!empty($au->id) ? $au->id : $au->pid()) : -1; + //$this->person_id = $au ? (!empty($au->id) ? $au->id : $au->pid()) : -1; } $this->person_table = $au ? $au->tableName() : ''; $this->ipaddr = isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : 'cli'; @@ -346,7 +347,11 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $rem[] = $obj->toEventString(); } } - $rem[] = $remarks; + + if(!empty($remarks)){ + $rem[] = $remarks; + } + $this->remarks = implode(' : ', $rem); } @@ -424,7 +429,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $this->ipaddr = $_SERVER['HTTP_X_FORWARDED_FOR']; } - } + } } function beforeUpdate($old, $request,$roo) @@ -482,14 +487,16 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $user = getenv('USERNAME'); // windows. } - // DEPRICATED... + + + if (!empty($ff->Pman['storedir'])) { + return $ff->Pman['storedir'] .'/Events/'.$user; + } + // DEPRICATED... if (!empty($ff->Pman['event_log_dir'])) { return $ff->Pman['event_log_dir'] . '/'.$user; } - if (!empty($ff->Pman['storedir'])) { - return $ff->Pman['storedir'] .'/Events/'.$user; - } return false; } @@ -498,6 +505,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject function writeEventLog($extra_data = false) { $logdir = $this->logDir(); + if (!$logdir) { return false; } @@ -509,7 +517,8 @@ class Pman_Core_DataObjects_Events extends DB_DataObject @mkdir(dirname($file),0700,true); // this might fail if it does not have correct permissions.. if (!file_exists(dirname($file))) { - die("could not create $file - permissons are not correct"); // fatal, otherwise we loop!? + //print_r($this); + die("Events:: writeEventLog: could not create $file - permissons are not correct\n"); // fatal, otherwise we loop!? } } @@ -542,6 +551,9 @@ class Pman_Core_DataObjects_Events extends DB_DataObject print_r("failed to copy {$f['tmp_name']}...\n"); } } + + + $out = array( 'REQUEST_URI' => empty($_SERVER['REQUEST_URI']) ? 'cli' : $_SERVER['REQUEST_URI'], 'HTTP_USER_AGENT' => empty($_SERVER['HTTP_USER_AGENT']) ? '' : $_SERVER['HTTP_USER_AGENT'], @@ -559,6 +571,16 @@ class Pman_Core_DataObjects_Events extends DB_DataObject if ( self::$extra_data !== false) { $out['EXTRA_DATA'] = self::$extra_data; } + $total_data = 0; + foreach($out as $k=>$v) { + if (!empty($v) && $k != 'REQUEST_URI') { + $total_data++; + } + } + if (!$total_data) { + return; // do not write an empty file with no usefull info. + } + file_put_contents($file, json_encode($out)); @@ -612,7 +634,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject function retrieveEventLog() { - + $logdir = $this->logDir(); if (!$logdir) { return false; @@ -707,4 +729,6 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $this->selectAdd('join_person_id_id.email as email'); } + + }