feat(quick-261008-w5w): Modul-Changelog Durchstich mit Nextcloud-Status
- Typen, Register, Route GET /modules/changelog/:slug, Waechter-Test - Seed liest die Version per latestVersion aus dem Changelog - Marktplatz-Detailseite zeigt den Abschnitt Aenderungen Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@ import { Roles } from '../auth/decorators/roles.decorator';
|
||||
import { RolesGuard } from '../auth/guards/roles.guard';
|
||||
import { ModuleCategoriesService } from '../module-categories/module-categories.service';
|
||||
import { ModuleAccessService } from './module-access.service';
|
||||
import { getModuleChangelog } from './module-changelog.registry';
|
||||
import { ModuleRegistryService } from './module-registry.service';
|
||||
|
||||
/**
|
||||
@@ -22,6 +23,10 @@ import { ModuleRegistryService } from './module-registry.service';
|
||||
* - GET /modules/active — list modules accessible to the requesting user
|
||||
* (Aktivierung UND Grant/Rolle, via ModuleAccessService — D-01: dieselbe
|
||||
* Auflösung wie ModuleGuard)
|
||||
* - GET /modules/changelog/:slug — Modul-Changelog aus dem Code (neueste Version
|
||||
* zuerst; unbekannte Kennung → leere Liste). Das statische Segment `changelog`
|
||||
* steht vorn, weil die Modul-Controller unter `modules/<slug>` eigene
|
||||
* `:id`-Routen haben und `/modules/:slug/changelog` sonst verschattet würde.
|
||||
* - POST /modules/:moduleId/activate — activate a module (ADMIN/SUPER_ADMIN)
|
||||
* - POST /modules/:moduleId/deactivate — deactivate a module (ADMIN/SUPER_ADMIN)
|
||||
*
|
||||
@@ -106,6 +111,17 @@ export class ModuleRegistryController {
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /modules/changelog/:slug
|
||||
* Liefert den Changelog eines eingebauten Moduls (quick-261008-w5w). Statische
|
||||
* Produkttexte, daher wie der Katalog ohne @Roles für jeden angemeldeten
|
||||
* Benutzer (T-03-03). Unbekannte und eigene Module → leere Liste.
|
||||
*/
|
||||
@Get('changelog/:slug')
|
||||
getChangelog(@Param('slug') slug: string) {
|
||||
return getModuleChangelog(slug);
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /modules/:moduleId/activate
|
||||
* Activates a module for the current tenant.
|
||||
|
||||
Reference in New Issue
Block a user