Add auditing

This commit is contained in:
Constantin Graf
2024-09-03 14:07:13 +02:00
committed by Constantin Graf
parent a01e1d6b0b
commit 156d2ff1a0
26 changed files with 732 additions and 16 deletions

33
app/Models/Audit.php Normal file
View File

@@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
namespace App\Models;
use Database\Factories\AuditFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Models\Audit as PackageAuditModel;
/**
* @property int $id
* @property string|null $user_type
* @property string|null $user_id
* @property string $event
* @property string $auditable_type
* @property string $auditable_id
* @property array|null $old_values
* @property array|null $new_values
* @property string|null $url
* @property string|null $ip_address
* @property string|null $user_agent
* @property string|null $tags
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @method static AuditFactory factory()
*/
class Audit extends PackageAuditModel
{
use HasFactory;
}

View File

@@ -12,6 +12,8 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -25,8 +27,9 @@ use Illuminate\Support\Carbon;
*
* @method static ClientFactory factory()
*/
class Client extends Model
class Client extends Model implements AuditableContract
{
use Auditable;
use HasFactory;
use HasUuids;

View File

@@ -11,6 +11,8 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Carbon;
use Laravel\Jetstream\Membership as JetstreamMembership;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -25,8 +27,9 @@ use Laravel\Jetstream\Membership as JetstreamMembership;
*
* @method static MemberFactory factory()
*/
class Member extends JetstreamMembership
class Member extends JetstreamMembership implements AuditableContract
{
use Auditable;
use HasFactory;
use HasUuids;

View File

@@ -18,6 +18,8 @@ use Laravel\Jetstream\Events\TeamDeleted;
use Laravel\Jetstream\Events\TeamUpdated;
use Laravel\Jetstream\Jetstream;
use Laravel\Jetstream\Team as JetstreamTeam;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -37,8 +39,9 @@ use Laravel\Jetstream\Team as JetstreamTeam;
* @method HasMany<OrganizationInvitation> teamInvitations()
* @method static OrganizationFactory factory()
*/
class Organization extends JetstreamTeam
class Organization extends JetstreamTeam implements AuditableContract
{
use Auditable;
use HasFactory;
use HasUuids;

View File

@@ -11,6 +11,8 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use Laravel\Jetstream\Jetstream;
use Laravel\Jetstream\TeamInvitation as JetstreamTeamInvitation;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -23,8 +25,9 @@ use Laravel\Jetstream\TeamInvitation as JetstreamTeamInvitation;
*
* @method static OrganizationInvitationFactory factory()
*/
class OrganizationInvitation extends JetstreamTeamInvitation
class OrganizationInvitation extends JetstreamTeamInvitation implements AuditableContract
{
use Auditable;
use HasFactory;
use HasUuids;

View File

@@ -14,6 +14,8 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -36,8 +38,9 @@ use Illuminate\Support\Carbon;
* @method Builder<Project> visibleByEmployee(User $user)
* @method static ProjectFactory factory()
*/
class Project extends Model
class Project extends Model implements AuditableContract
{
use Auditable;
use HasFactory;
use HasUuids;

View File

@@ -11,6 +11,8 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -27,8 +29,9 @@ use Illuminate\Support\Carbon;
* @method static Builder<ProjectMember> whereBelongsToOrganization(Organization $organization)
* @method static ProjectMemberFactory factory()
*/
class ProjectMember extends Model
class ProjectMember extends Model implements AuditableContract
{
use Auditable;
use HasFactory;
use HasUuids;

View File

@@ -10,6 +10,8 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -21,8 +23,9 @@ use Illuminate\Support\Carbon;
*
* @method static TagFactory factory()
*/
class Tag extends Model
class Tag extends Model implements AuditableContract
{
use Auditable;
use HasFactory;
use HasUuids;

View File

@@ -14,6 +14,8 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Carbon;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -30,8 +32,9 @@ use Illuminate\Support\Carbon;
*
* @method static TaskFactory factory()
*/
class Task extends Model
class Task extends Model implements AuditableContract
{
use Auditable;
use HasFactory;
use HasUuids;

View File

@@ -14,6 +14,8 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use Korridor\LaravelComputedAttributes\ComputedAttributes;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -43,8 +45,9 @@ use Korridor\LaravelComputedAttributes\ComputedAttributes;
* @method Builder<TimeEntry> hasTag(Tag $tag)
* @method static TimeEntryFactory factory()
*/
class TimeEntry extends Model
class TimeEntry extends Model implements AuditableContract
{
use Auditable;
use ComputedAttributes;
use HasFactory;
use HasUuids;

View File

@@ -25,6 +25,8 @@ use Laravel\Fortify\TwoFactorAuthenticatable;
use Laravel\Jetstream\HasProfilePhoto;
use Laravel\Jetstream\HasTeams;
use Laravel\Passport\HasApiTokens;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;
/**
* @property string $id
@@ -53,8 +55,9 @@ use Laravel\Passport\HasApiTokens;
* @method Builder<User> belongsToOrganization(Organization $organization)
* @method Builder<User> active()
*/
class User extends Authenticatable implements FilamentUser, MustVerifyEmail
class User extends Authenticatable implements AuditableContract, FilamentUser, MustVerifyEmail
{
use Auditable;
use HasApiTokens;
use HasFactory;
use HasProfilePhoto;