From 3d39e978c55d20983b7ecc6b54a95dca4e76bbbb Mon Sep 17 00:00:00 2001 From: Jared Hancock <jared@osticket.com> Date: Fri, 8 Nov 2013 03:45:55 +0000 Subject: [PATCH] Add draft cleanup cron to remove stale client drafts --- include/class.cron.php | 6 ++++++ include/class.draft.php | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/include/class.cron.php b/include/class.cron.php index 257926e25..3aa0357c1 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 6796428b6..a4942ecb4 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); + } } ?> -- GitLab