From 397fa3cee3647241203e29a7b1c1637a8a64c87e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 30 Nov 2011 20:18:49 +0100 Subject: [PATCH] Fix: Purge of audit events --- htdocs/admin/tools/listevents.php | 15 +++++++++++---- htdocs/langs/en_US/admin.lang | 1 + htdocs/langs/fr_FR/admin.lang | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php index d9b12102758..be98a382e5b 100644 --- a/htdocs/admin/tools/listevents.php +++ b/htdocs/admin/tools/listevents.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -24,8 +24,10 @@ require("../../main.inc.php"); require_once(DOL_DOCUMENT_ROOT.'/core/class/events.class.php'); -if (! $user->admin) -accessforbidden(); + +$action=GETPOST('action'); + +if (! $user->admin) accessforbidden(); // Security check if ($user->societe_id > 0) @@ -55,6 +57,7 @@ $search_user = GETPOST("search_user"); $search_desc = GETPOST("search_desc"); $search_ua = GETPOST("search_ua"); + /* * Actions */ @@ -62,7 +65,7 @@ $search_ua = GETPOST("search_ua"); $now=dol_now(); // Purge audit events -if ($_REQUEST['action'] == 'confirm_purge' && $_REQUEST['confirm'] == 'yes' && $user->admin) +if ($action == 'confirm_purge' && $_REQUEST['confirm'] == 'yes' && $user->admin) { $error=0; @@ -72,12 +75,15 @@ if ($_REQUEST['action'] == 'confirm_purge' && $_REQUEST['confirm'] == 'yes' && $ // Delete events $sql = "DELETE FROM ".MAIN_DB_PREFIX."events"; $sql.= " WHERE entity = ".$conf->entity; + + dol_syslog("listevents purge sql=".$sql); $resql = $db->query($sql); if (! $resql) { $error++; $mesg='
'.$db->lasterror().'
'; } + // Add event purge $text=$langs->trans("SecurityEventsPurged"); $securityevent=new Events($db); @@ -87,6 +93,7 @@ if ($_REQUEST['action'] == 'confirm_purge' && $_REQUEST['confirm'] == 'yes' && $ $result=$securityevent->create($user); if ($result > 0) { + $db->commit(); dol_syslog($text, LOG_WARNING); } else diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 923884898a0..8b00ca7c90d 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -789,6 +789,7 @@ LogEvents=Security audit events Audit=Audit ListEvents=Audit events ListOfSecurityEvents=List of Dolibarr security events +SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. AreaForAdminOnly=Those features can be used by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index b4a3e212f2e..f0d8cc70218 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -797,6 +797,7 @@ LogEvents= Événements d'audit de sécurité Audit= Audit ListEvents= Audit événements ListOfSecurityEvents= Liste des événements de sécurité Dolibarr +SecurityEventsPurged=Evenement de sécurité purgés LogEventDesc= Vous pouvez activer ici, le traçage des événements d'audit de sécurité. Cet historique est consultable aux administrateurs dans le menu Outils systèmes - Audit. Attention, cette fonctionnalité peut consommer un gros volume de données. AreaForAdminOnly= Ces fonctions ne sont accessibles qu'à un utilisateur administrateur. SystemInfoDesc= Les informations systèmes sont des informations techniques diverses accessibles en lecture seule aux administrateurs uniquement.