}
} else {
- $person = 'Person';
+
+ $person = $au->tableName(); //'Person'; -- projects may not use person as the auth table...
$cfg = HTML_FlexyFramework::get()->Pman;
if (!empty($cfg['authTable'])) {
$person =$cfg['authTable'];
$rem = array();
// should this really go in remarks? -
if ($obj && method_exists($obj,'toEventString')) {
- $rem[] = $obj->toEventString() ;
+ if($obj->toEventString() !== false){
+ $rem[] = $obj->toEventString();
+ }
}
$rem[] = $remarks;
$this->remarks = implode(' : ', $rem);
self::$deleted[] = $del;
return true;
}
+ static $extra_data = false;
+
+ static function writeEventLogExtra($data) {
+ self::$extra_data = $data;
+ }
- function writeEventLog($extra_data = '')
+ function logDir()
{
$ff = HTML_FlexyFramework::get();
- if (empty($ff->Pman['event_log_dir'])) {
- return false;
- }
-
- // add user (eg. www-data or local user if not..)
if (function_exists('posix_getpwuid')) {
$uinfo = posix_getpwuid( posix_getuid () );
} else {
$user = getenv('USERNAME'); // windows.
}
+
+ // 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;
+ }
+
+
+
+ function writeEventLog($extra_data = false)
+ {
+ $logdir = $this->logDir();
+ if (!$logdir) {
+ return false;
+ }
+
+
//print_r($this);
- $file = $ff->Pman['event_log_dir']. '/'. $user. date('/Y/m/d/'). $this->id . ".json";
+ $file = $logdir. date('/Y/m/d/'). $this->id . ".json";
if (!file_exists(dirname($file))) {
- mkdir(dirname($file),0700,true);
+ mkdir(dirname($file),0700,true); // this might fail if it does not have correct permissions..
+
}
// Remove all the password from logs...
$files[$k]['tmp_name'] = $this->id . '-'. $i;
- $nf = $ff->Pman['event_log_dir']. '/'. $user. date('/Y/m/d/'). $files[$k]['tmp_name'];
+ $nf = $logdir . date('/Y/m/d/'). $files[$k]['tmp_name'];
if (!copy($f['tmp_name'], $nf)) {
print_r("failed to copy {$f['tmp_name']}...\n");
}
if (!empty(self::$deleted)) {
$out['DELETED_DATAOBJECTS'] = self::$deleted;
}
- if (!empty($extra_data)) {
+ if ($extra_data !== false) {
$out['EXTRA'] = $extra_data;
}
+ if ( self::$extra_data !== false) {
+ $out['EXTRA_DATA'] = self::$extra_data;
+ }
file_put_contents($file, json_encode($out));
function retrieveEventLog()
{
- $ff = HTML_FlexyFramework::get();
- if (empty($ff->Pman['event_log_dir'])) {
- return false;
- }
- if (function_exists('posix_getpwuid')) {
- $uinfo = posix_getpwuid( posix_getuid () );
+ $logdir = $this->logDir();
+ if (!$logdir) {
+ return false;
- $user = $uinfo['name'];
- } else {
- $user = getenv('USERNAME'); // windows.
}
$date = date('/Y/m/d/', strtotime($this->event_when));
- $file = $ff->Pman['event_log_dir']. '/'. $user. $date. $this->id . ".json";
+ $file = $logdir. $date. $this->id . ".json";
if (!file_exists(dirname($file))) {
return false;
}
$roo->jerr('Invalid url');
}
- $processed = array();
$restored = array();
foreach ($log['DELETED_DATAOBJECTS'] as $d){
empty($d['id']) ||
empty($d['_table']) ||
(
- !empty($processed[$d['_table']]) &&
- in_array($d['id'], $processed[$d['_table']])
+ !empty($restored[$d['_table']]) &&
+ in_array($d['id'], $restored[$d['_table']])
)
){
continue;
}
- if(!isset($processed[$d['_table']])){
- $processed[$d['_table']] = array();
+ if(!isset($restored[$d['_table']])){
+ $restored[$d['_table']] = array();
}
- $processed[$d['_table']][] = $d['id'];
+ $restored[$d['_table']][] = $d['id'];
$table = DB_DataObject::factory($d['_table']);
continue;
}
- $pk = $table->keys();
-
- $affects = array();
-
- $all_links = $GLOBALS['_DB_DATAOBJECT']['LINKS'][$this->_database];
-
- foreach($all_links as $tbl => $links) {
- foreach($links as $col => $totbl_col) {
- $to = explode(':', $totbl_col);
- if ($to[0] != $this->tableName()) {
- continue;
- }
-
- if(!isset($affects[$tbl])){
- $affects[$tbl] = array();
- }
-
- $affects[$tbl][$col] = $table->tableName() . '.' . ((empty($pk)) ? 'id' : $pk[0]);
-
- }
- }
- print_R($affects);exit;
unset($d['_table']);
$table->setFrom($d);
- $table->insert();
+ /*
+ * need to use the old id
+ */
+ $table->id = $d['id'];
- $restored[] = $table;
+ $table->sequenceKey(false,false);
- print_R($restored);exit;
+ $table->insert();
+ if($table->tableName() == 'crm_mailing_list_member'){
+ $ml = DB_DataObject::factory('crm_mailing_list');
+ if(!$ml->get($table->mailing_list_id)){
+ continue;
+ }
+
+ $mlm = DB_DataObject::factory('crm_mailing_list_member');
+ $mlm->setFrom(array(
+ 'mailing_list_id' => $table->mailing_list_id,
+ 'is_active' => 1
+ ));
+
+ $o = clone($ml);
+ $ml->no_members = $mlm->count();
+ $ml->update($o);
+ }
}
- print_R($log);exit;
+ $roo->jok('RESTORE');
+ }
+ function selectAddPersonEmail()
+ {
+ $this->selectAdd('join_person_id_id.email as email');
}
}