PHP code example of ginkelsoft / laravel-data-subject-access
1. Go to this page and download the library: Download ginkelsoft/laravel-data-subject-access library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ginkelsoft / laravel-data-subject-access example snippets
use Ginkelsoft\DataSubjectAccess\Attributes\Exportable;
use Ginkelsoft\DataSubjectAccess\Concerns\Exportable as ExportableTrait;
use Ginkelsoft\DataSubjectAccess\Contracts\Exportable as ExportableContract;
#[Exportable(column: 'id')]
class User extends Model implements ExportableContract
{
use ExportableTrait;
protected array $exportable = [
'fields' => [
'id' => 'Subject identifier',
'email' => 'E-mailadres',
],
];
}
class Profile extends Model implements ExportableContract
{
use ExportableTrait;
protected array $exportable = [
'column' => 'user_id',
'fields' => [
'first_name' => 'Voornaam',
'last_name' => 'Achternaam',
'email' => ['label' => 'E-mailadres'],
'logged_in_at' => [
'label' => 'Aangemeld op',
'transform' => fn ($v) => $v?->format('Y-m-d H:i:s'),
],
// internal_note is intentionally not listed: it stays out of the export.
],
];
}
// config/subject-access.php
return [
'models' => [
\App\Models\User::class,
\App\Models\Profile::class,
],
'
use Ginkelsoft\ComplianceCore\Config\LogSecret;
use Ginkelsoft\ComplianceCore\Support\HashChain;
use Illuminate\Support\Facades\DB;
$entries = DB::table('subject_access_log')->orderBy('id')->get()
->map(fn ($row) => (array) $row)->all();
$intact = HashChain::verify($entries, LogSecret::value());
use Ginkelsoft\DataRightToBeForgotten\Concerns\Forgettable;
use Ginkelsoft\DataSubjectAccess\Concerns\Exportable;
class User extends Model implements ExportableContract, ForgettableContract
{
use Exportable, Forgettable {
Forgettable::forSubjectQuery insteadof Exportable;
}
}
bash
php artisan retention:export 01HXYZ
php artisan retention:export 01HXYZ --format=markdown
php artisan retention:export 01HXYZ --format=json --output=storage/exports/01HXYZ.json
bash
composer vendor:publish --tag=compliance-config
php artisan vendor:publish --tag=subject-access-config
php artisan vendor:publish --tag=subject-access-migrations
php artisan migrate