diff --git a/include/class.cron.php b/include/class.cron.php index 257926e253fe1662b0630548b62e483bffe20e48..3aa0357c198ce61e25a22dae6bc9ea982954877e 100644 --- a/include/class.cron.php +++ b/include/class.cron.php @@ -35,6 +35,11 @@ class Cron { if($ost) $ost->purgeLogs(); } + function PurgeDrafts() { + require_once(INCLUDE_DIR.'class.draft.php'); + Draft::cleanup(); + } + function CleanOrphanedFiles() { require_once(INCLUDE_DIR.'class.file.php'); AttachmentFile::deleteOrphans(); @@ -49,6 +54,7 @@ class Cron { self::TicketMonitor(); self::PurgeLogs(); self::CleanOrphanedFiles(); + self::PurgeDrafts(); } } ?> diff --git a/include/class.draft.php b/include/class.draft.php index 6796428b6d0a51ea0c5777331190c2e942e987b8..a4942ecb4bc5611fd9fa4572a3c0e1d022f893b0 100644 --- a/include/class.draft.php +++ b/include/class.draft.php @@ -149,6 +149,14 @@ class Draft { $sql .= ' AND staff_id='.db_input($staff_id); return (!db_query($sql) || !db_affected_rows()); } + + static function cleanup() { + // Keep client drafts for two weeks (14 days) + $sql = 'DELETE FROM '.DRAFT_TABLE + ." WHERE `namespace` LIKE 'ticket.client.%' + AND datediff(now(), updated) > 14"; + return db_query($sql); + } } ?>