refactor: align addressbook module to MintyPHP\Module\AddressBook namespace
Migrates addressbook service classes from core namespace (MintyPHP\Service\AddressBook\*) to proper module namespace (MintyPHP\Module\AddressBook\Service\*), consistent with the bookmarks module pattern. Moved to module: - AddressBookService → modules/addressbook/lib/Module/AddressBook/Service/ - AddressBookServicesFactory → modules/addressbook/lib/Module/AddressBook/Service/ - AddressBookServiceTest → modules/addressbook/tests/Module/AddressBook/Service/ - Pages, templates, CSS, JS all in module directory All module PHP classes now live under MintyPHP\Module\<Name>\*, enforced by ModuleStructureContractTest::testModuleClassesUseModuleNamespace. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3,13 +3,8 @@
|
||||
/**
|
||||
* Address Book module manifest.
|
||||
*
|
||||
* Contributes the "People" aside tab/panel, global search section,
|
||||
* Contributes routes, sidebar slots, search entry, user-edit aside action,
|
||||
* layout context data, and session lifecycle.
|
||||
*
|
||||
* Permissions (address_book.view) remain in Core PermissionService because
|
||||
* they gate general user-visibility in UserAuthorizationPolicy, not just
|
||||
* address-book access. Asset groups remain in config/assets.php because the
|
||||
* asset pipeline does not yet consume ModuleRegistry::getAssetGroups().
|
||||
*/
|
||||
return [
|
||||
'id' => 'addressbook',
|
||||
@@ -17,9 +12,18 @@ return [
|
||||
'enabled_by_default' => false,
|
||||
'load_order' => 10,
|
||||
|
||||
'routes' => [],
|
||||
'routes' => [
|
||||
// Keep canonical route stable without forcing a /index target to avoid Router redirect loops.
|
||||
['path' => 'address-book', 'target' => 'address-book'],
|
||||
['path' => 'address-book/data', 'target' => 'address-book/data'],
|
||||
// Legacy aliases for existing bookmarks/links.
|
||||
['path' => 'addressbook', 'target' => 'address-book'],
|
||||
['path' => 'adressbook', 'target' => 'address-book'],
|
||||
],
|
||||
'public_paths' => [],
|
||||
'container_registrars' => [],
|
||||
'container_registrars' => [
|
||||
\MintyPHP\Module\AddressBook\AddressBookContainerRegistrar::class,
|
||||
],
|
||||
|
||||
'ui_slots' => [
|
||||
'aside.tab_panel' => [
|
||||
@@ -32,15 +36,47 @@ return [
|
||||
'panel_template' => __DIR__ . '/templates/aside-people-panel.phtml',
|
||||
'details_storage' => 'aside-people-tenant',
|
||||
'details_open_active' => true,
|
||||
'order' => 110,
|
||||
],
|
||||
],
|
||||
'search.resource_item' => [
|
||||
[
|
||||
'key' => 'address-book',
|
||||
'label' => 'Address book',
|
||||
'base_url' => 'address-book',
|
||||
'permission' => 'can_view_address_book',
|
||||
'order' => 110,
|
||||
],
|
||||
],
|
||||
'user.edit.aside_action' => [
|
||||
[
|
||||
'key' => 'address-book-view-user',
|
||||
'type' => 'link',
|
||||
'label' => 'View in address book',
|
||||
'href' => 'address-book/view/{user_uuid}',
|
||||
'permission' => 'can_view_address_book',
|
||||
'order' => 110,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'authorization_policies' => [
|
||||
\MintyPHP\Module\AddressBook\AddressBookAuthorizationPolicy::class,
|
||||
],
|
||||
|
||||
'layout_capabilities' => [
|
||||
'can_view_address_book' => 'addressbook.view',
|
||||
],
|
||||
|
||||
'search_resources' => [
|
||||
\MintyPHP\Module\AddressBook\Providers\AddressBookSearchProvider::class,
|
||||
],
|
||||
|
||||
'asset_groups' => [],
|
||||
'asset_groups' => [
|
||||
'address-book' => [
|
||||
'modules/addressbook/css/pages/address-book-view.css',
|
||||
],
|
||||
],
|
||||
'scheduler_jobs' => [],
|
||||
|
||||
'layout_context_providers' => [
|
||||
@@ -51,7 +87,14 @@ return [
|
||||
\MintyPHP\Module\AddressBook\Providers\AddressBookSessionProvider::class,
|
||||
],
|
||||
|
||||
'permissions' => [],
|
||||
'permissions' => [
|
||||
[
|
||||
'key' => 'address_book.view',
|
||||
'description' => 'Can view address book',
|
||||
'active' => true,
|
||||
'is_system' => true,
|
||||
],
|
||||
],
|
||||
|
||||
'migrations_path' => 'db/updates',
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user