Ability_Audit_Logger.php
1 month ago
Cookiebot_Abilities_Registrar.php
1 month ago
Cookiebot_Ability_Interface.php
1 month ago
Get_Compliance_Summary_Ability.php
1 month ago
Get_Status_Ability.php
1 month ago
Install_Ppg_Ability.php
1 month ago
Set_Cbid_Ability.php
1 month ago
Toggle_Gcm_Ability.php
1 month ago
Verify_Setup_Ability.php
1 month ago
Ability_Audit_Logger.php
47 lines
| 1 | <?php |
| 2 | |
| 3 | namespace cybot\cookiebot\abilities; |
| 4 | |
| 5 | /** |
| 6 | * Class Ability_Audit_Logger |
| 7 | * |
| 8 | * Logs AI ability executions for audit trails, capping at 50 most recent entries. |
| 9 | * |
| 10 | * @package cybot\cookiebot\abilities |
| 11 | */ |
| 12 | class Ability_Audit_Logger { |
| 13 | |
| 14 | const OPTION_NAME = 'cookiebot-ai-action-log'; |
| 15 | const MAX_ENTRIES = 50; |
| 16 | |
| 17 | /** |
| 18 | * Log an ability execution. |
| 19 | * |
| 20 | * @param string $ability_name e.g. 'cookiebot/set-cbid' |
| 21 | * @param mixed $old_value The value before the change |
| 22 | * @param mixed $new_value The value after the change |
| 23 | * |
| 24 | * @return void |
| 25 | * |
| 26 | * @since 4.8.0 |
| 27 | */ |
| 28 | public function log( $ability_name, $old_value, $new_value ) { |
| 29 | $log = get_option( self::OPTION_NAME, array() ); |
| 30 | if ( ! is_array( $log ) ) { |
| 31 | $log = array(); |
| 32 | } |
| 33 | array_unshift( |
| 34 | $log, |
| 35 | array( |
| 36 | 'ts' => time(), |
| 37 | 'ability' => $ability_name, |
| 38 | 'user_id' => get_current_user_id(), |
| 39 | 'old' => $old_value, |
| 40 | 'new' => $new_value, |
| 41 | ) |
| 42 | ); |
| 43 | $log = array_slice( $log, 0, self::MAX_ENTRIES ); |
| 44 | update_option( self::OPTION_NAME, $log, false ); |
| 45 | } |
| 46 | } |
| 47 |