First public release. - docs: document the audit log, user offboarding, CSV export and the "require a reason for destructive actions" setting across README, docs/ and CLAUDE/AGENTS.md; note retention for panel_audit - docs: fill the publishing placeholders (repo URL, security contact, issue-template links) and add a semantic-versioning policy - move agent/contributor context into CLAUDE/ (AGENTS.md + a README); root CLAUDE.md is now a thin @-import pointer - add a favicon (shield-lock, matching the login screen) to the login page and the app layout - CHANGELOG: promote [Unreleased] to [1.0.0]; keep the earlier internal build as [0.1.0] Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UfuvfwexztdS7LDpGuKsuK
42 lines
1.0 KiB
PHP
42 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Support\Carbon;
|
|
|
|
/**
|
|
* Jeden wpis dziennika zmian panelu (tabela `panel_audit`).
|
|
* Zapis wyłącznie przez App\Services\AuditLogger; odczyt w AuditController.
|
|
*
|
|
* @property int $id
|
|
* @property string $actor
|
|
* @property string $actor_name
|
|
* @property string $action
|
|
* @property string|null $target_type
|
|
* @property string|null $target
|
|
* @property string|null $target_dn
|
|
* @property string|null $reason
|
|
* @property array|null $changes
|
|
* @property array|null $context
|
|
* @property string|null $ip
|
|
* @property Carbon|null $created_at
|
|
*/
|
|
class AuditLog extends Model
|
|
{
|
|
protected $table = 'panel_audit';
|
|
|
|
public $timestamps = false;
|
|
|
|
protected $fillable = [
|
|
'actor', 'actor_name', 'action', 'target_type', 'target',
|
|
'target_dn', 'reason', 'changes', 'context', 'ip', 'created_at',
|
|
];
|
|
|
|
protected $casts = [
|
|
'changes' => 'array',
|
|
'context' => 'array',
|
|
'created_at' => 'datetime',
|
|
];
|
|
}
|