-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModules.php
More file actions
114 lines (107 loc) · 3.81 KB
/
Modules.php
File metadata and controls
114 lines (107 loc) · 3.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
/*
* Copyright (c) 2025-2026 Netresearch DTT GmbH
* SPDX-License-Identifier: GPL-2.0-or-later
*/
declare(strict_types=1);
use Netresearch\NrVault\Controller\AuditController;
use Netresearch\NrVault\Controller\MigrationController;
use Netresearch\NrVault\Controller\OverviewController;
use Netresearch\NrVault\Controller\SecretsController;
/**
* Backend module configuration for nr_vault.
*
* Parent module with submodules (following TYPO3 styleguide pattern).
* - Parent shows submodule overview with cards
* - Submodule selector appears in DocHeader
*
* Uses 'tools' as parent for v13+v14 compatibility:
* - v13: 'tools' exists natively as the admin tools group
* - v14: 'tools' is an alias for the new 'admin' group
*
* Uses LLL:EXT: label format (compatible with TYPO3 v13+v14)
*/
return [
// Parent module - custom overview with usage information
// dependsOnSubmodules: true enables the submodule dropdown in DocHeader
// showSubmoduleOverview: true prevents redirect to last-used submodule
'admin_vault' => [
'parent' => 'tools',
'position' => ['after' => 'admin_sites'],
'access' => 'admin',
'workspaces' => 'live',
'path' => '/module/admin/vault',
'labels' => 'LLL:EXT:nr_vault/Resources/Private/Language/Modules/overview.xlf',
'iconIdentifier' => 'module-vault',
'appearance' => [
'dependsOnSubmodules' => true,
],
// v14+: Show overview page for parent module
'showSubmoduleOverview' => true,
'routes' => [
'_default' => [
'target' => OverviewController::class . '::indexAction',
],
],
],
// Secrets submodule
'admin_vault_secrets' => [
'parent' => 'admin_vault',
'access' => 'admin',
'workspaces' => 'live',
'path' => '/module/admin/vault/secrets',
'labels' => 'LLL:EXT:nr_vault/Resources/Private/Language/Modules/secrets.xlf',
'routes' => [
'_default' => [
'target' => SecretsController::class . '::listAction',
],
'create' => [
'target' => SecretsController::class . '::createAction',
],
'edit' => [
'target' => SecretsController::class . '::editAction',
],
'toggle' => [
'target' => SecretsController::class . '::toggleAction',
'methods' => ['POST'],
],
'delete' => [
'target' => SecretsController::class . '::deleteAction',
'methods' => ['POST'],
],
],
],
// Audit submodule
'admin_vault_audit' => [
'parent' => 'admin_vault',
'access' => 'admin',
'workspaces' => 'live',
'path' => '/module/admin/vault/audit',
'labels' => 'LLL:EXT:nr_vault/Resources/Private/Language/Modules/audit.xlf',
'routes' => [
'_default' => [
'target' => AuditController::class . '::listAction',
],
'export' => [
'target' => AuditController::class . '::exportAction',
],
'verifyChain' => [
'target' => AuditController::class . '::verifyChainAction',
],
],
],
// Migration wizard submodule
// Uses handleRequest pattern like TYPO3 core - dispatches based on ?action= query param
'admin_vault_migration' => [
'parent' => 'admin_vault',
'access' => 'admin',
'workspaces' => 'live',
'path' => '/module/admin/vault/migration',
'labels' => 'LLL:EXT:nr_vault/Resources/Private/Language/Modules/migration.xlf',
'routes' => [
'_default' => [
'target' => MigrationController::class . '::handleRequest',
],
],
],
];