From 712a33278d52493b7b7aa6e91d2da6394f8bd2ce Mon Sep 17 00:00:00 2001 From: Dishant Date: Wed, 1 Oct 2025 18:45:41 +0530 Subject: [PATCH] [IMP]Improved the gc_error method with the ORM --- security_workshop_demo/models/security_demo.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/security_workshop_demo/models/security_demo.py b/security_workshop_demo/models/security_demo.py index d0c28f6..180da8b 100644 --- a/security_workshop_demo/models/security_demo.py +++ b/security_workshop_demo/models/security_demo.py @@ -1,5 +1,7 @@ import logging import base64 +from datetime import timedelta + from odoo import api, models, fields, _ _logger = logging.getLogger(__name__) @@ -37,21 +39,17 @@ def log_message(self, endpoint, message): 'path': '', 'line': 1, }) - self.env.cr.commit() @api.autovacuum def _gc_error(self): - self.gc_error('security.demo') + self.gc_error() - def gc_error(self, name): + def gc_error(self): """Garbage collect old logs securely.""" - query = (""" - DELETE FROM ir_logging - WHERE create_date < (NOW() AT TIME ZONE 'UTC' - INTERVAL '7 DAYS') - AND name = %s - """ % name) - self.env.cr.execute(query) - _logger.info("GC'd %d security error logger entries", self.env.cr.rowcount) + cutoff = fields.Datetime.now() - timedelta(days=7) + old_logs = self.search([('create_date', '<', cutoff)]) + if old_logs: + old_logs.unlink() def _request(self, endpoint, params): """Dummy request handler (extend for real API calls)."""