Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5679afa25 | ||
|
|
a55411aaf2 |
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||||
|
|
||||||
|
## [0.25.1] - 2026-09-28
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- `CustomerErasureActionsExtension` (Privacy) added "Request Erasure"/"Request Export" header
|
||||||
|
actions to the Customer edit/view pages but left Lunar's own plain `DeleteAction` in place
|
||||||
|
alongside them — bypassing the grace period, cascades, and audit trail an erasure request
|
||||||
|
provides. That header action is now stripped whenever Privacy is installed, so "Request
|
||||||
|
Erasure" is the only way to remove a Customer.
|
||||||
|
|
||||||
## [0.25.0] - 2026-09-28
|
## [0.25.0] - 2026-09-28
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
"name": "boboko/core",
|
"name": "boboko/core",
|
||||||
"description": "Core module — authentication and shared panel behaviour",
|
"description": "Core module — authentication and shared panel behaviour",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"version": "0.25.0",
|
"version": "0.25.1",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Modules\\Core\\": "src/"
|
"Modules\\Core\\": "src/"
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@boboko/core",
|
"name": "@boboko/core",
|
||||||
"version": "0.25.0",
|
"version": "0.25.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Portable Stimulus controllers and styles for boboko-core's cart + checkout module. Installed as a real npm dependency (file:../boboko-core in dev, a tagged git install in prod) so a consuming app's `npm install` resolves this package's own dependencies (leaflet, @hotwired/stimulus) transitively, the same way `composer update boboko/*` does for PHP. See CONTRIBUTE.md's \"JS/CSS: a real npm package\" section.",
|
"description": "Portable Stimulus controllers and styles for boboko-core's cart + checkout module. Installed as a real npm dependency (file:../boboko-core in dev, a tagged git install in prod) so a consuming app's `npm install` resolves this package's own dependencies (leaflet, @hotwired/stimulus) transitively, the same way `composer update boboko/*` does for PHP. See CONTRIBUTE.md's \"JS/CSS: a real npm package\" section.",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace Modules\Core\Privacy\Filament\Extensions;
|
namespace Modules\Core\Privacy\Filament\Extensions;
|
||||||
|
|
||||||
use Filament\Actions\Action;
|
use Filament\Actions\Action;
|
||||||
|
use Filament\Actions\DeleteAction;
|
||||||
use Filament\Forms\Components\Checkbox;
|
use Filament\Forms\Components\Checkbox;
|
||||||
use Filament\Notifications\Notification;
|
use Filament\Notifications\Notification;
|
||||||
use Lunar\Admin\Support\Extending\BaseExtension;
|
use Lunar\Admin\Support\Extending\BaseExtension;
|
||||||
@@ -20,13 +21,18 @@ use Modules\Core\Privacy\Services\PrivacyService;
|
|||||||
* docs/modules.md "Layering Module and App Configuration"), and this extension
|
* docs/modules.md "Layering Module and App Configuration"), and this extension
|
||||||
* deliberately only implements headerActions(), so it never conflicts with an
|
* deliberately only implements headerActions(), so it never conflicts with an
|
||||||
* app's own extension for the same resource.
|
* app's own extension for the same resource.
|
||||||
|
*
|
||||||
|
* Also strips Lunar's own plain DeleteAction from these pages — with Privacy
|
||||||
|
* installed, "Request Erasure" (grace period, cascades, audit trail via
|
||||||
|
* DataErasureRequest) is the only sanctioned way to remove a Customer; a
|
||||||
|
* direct delete would bypass all of that.
|
||||||
*/
|
*/
|
||||||
class CustomerErasureActionsExtension extends BaseExtension
|
class CustomerErasureActionsExtension extends BaseExtension
|
||||||
{
|
{
|
||||||
public function headerActions(array $actions): array
|
public function headerActions(array $actions): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
...$actions,
|
...array_filter($actions, fn ($action) => ! $action instanceof DeleteAction),
|
||||||
Action::make('requestErasure')
|
Action::make('requestErasure')
|
||||||
->label('Request Erasure')
|
->label('Request Erasure')
|
||||||
->icon('heroicon-o-shield-exclamation')
|
->icon('heroicon-o-shield-exclamation')
|
||||||
|
|||||||
Reference in New Issue
Block a user