Feature: Data Access and Data Export Admin Service
This commit introduces the data retention and data export Admin Services, accessed by the Boboko admin UI
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Core\Privacy\Filament\Extensions;
|
||||
|
||||
use Lunar\Admin\Filament\Resources\CustomerResource\RelationManagers\UserRelationManager as BaseUserRelationManager;
|
||||
use Lunar\Admin\Support\Extending\BaseExtension;
|
||||
use Modules\Core\Privacy\RelationManagers\ErasureRequestsRelationManager;
|
||||
use Modules\Core\Privacy\RelationManagers\ExportRequestsRelationManager;
|
||||
use Modules\Core\Privacy\RelationManagers\UserRelationManager;
|
||||
|
||||
/**
|
||||
* Adds the erasureRequests/exportRequests relation managers (see CorePlugin's
|
||||
* Customer::erasureRequests()/exportRequests() macros) to the Customer resource's
|
||||
* relation tabs — separate from CustomerErasureActionsExtension (headerActions)
|
||||
* so each extension stays single-purpose. Unlike headerActions(), getRelations()
|
||||
* genuinely is resource-keyed (called statically from the Resource class, not a
|
||||
* page instance), so this is registered under CustomerResource::class itself in
|
||||
* CorePlugin, not a page class.
|
||||
*
|
||||
* Also swaps Lunar's base UserRelationManager for Modules\Core\Privacy\
|
||||
* RelationManagers\UserRelationManager, which adds a "Privacy Requests" row
|
||||
* action per user — see that class's docblock for why this can't be a nested
|
||||
* relation manager instead. Compares against Lunar's own base class, not any
|
||||
* intermediate override, per docs/lunar.md "Overriding Lunar Relation Managers".
|
||||
*/
|
||||
class CustomerErasureRelationsExtension extends BaseExtension
|
||||
{
|
||||
public function getRelations(array $relations): array
|
||||
{
|
||||
$relations = array_map(
|
||||
fn ($relation) => $relation === BaseUserRelationManager::class ? UserRelationManager::class : $relation,
|
||||
$relations
|
||||
);
|
||||
|
||||
return [
|
||||
...$relations,
|
||||
ErasureRequestsRelationManager::class,
|
||||
ExportRequestsRelationManager::class,
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user