feat(module-grants): Proxmox, Handelsware und DKV mit Freigabestufe Verwalten
- Proxmox-Schreibwege und Handelsware-Einstellungen auf @ModuleManage umgestellt - DKV-Fleet: ganze Klasse Verwalten-Stufe, Benutzen allein bleibt ohne Zugriff - Metadaten-Test belegt umgestellte und bewusst Administratoren vorbehaltene Handler - Webseiten (Proxmox, Handelsware, Widget) folgen canManage, DKV-Zugriffsseite erklärt die Stufe Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,11 +13,9 @@ import {
|
||||
UseInterceptors,
|
||||
} from '@nestjs/common';
|
||||
import { FileInterceptor } from '@nestjs/platform-express';
|
||||
import { Role } from '@prisma/client';
|
||||
import { decodeUploadFilename } from '../accounting/decode-upload-filename';
|
||||
import { Roles } from '../auth/decorators/roles.decorator';
|
||||
import type { AuthenticatedRequest, UploadedFileLike } from '../auth/types/auth-user';
|
||||
import { UseModule } from '../module-registry/module.guard';
|
||||
import { ModuleManage, UseModule } from '../module-registry/module.guard';
|
||||
import { HandelswareAccountDto } from './dto/handelsware-account.dto';
|
||||
import { HandelswareSettingsDto } from './dto/handelsware-settings.dto';
|
||||
import { HandelswareDatevService } from './handelsware-datev.service';
|
||||
@@ -61,7 +59,8 @@ export function parseNewAccountsField(raw: unknown): { name: string; gegenkonto:
|
||||
/**
|
||||
* `@UseModule('handelsware-datev')` auf Klassenebene — Aktivierung UND Freigabe.
|
||||
* `tenantId` kommt ausschliesslich aus `req.tenantId`. Die Einstellungen aendern
|
||||
* nur Administratoren (T-FM5-02); die Kontenliste pflegen alle Benutzer mit
|
||||
* Administratoren und Benutzer mit der Freigabestufe Verwalten
|
||||
* (`@ModuleManage`, 261002-icv; T-FM5-02); die Kontenliste pflegen alle Benutzer mit
|
||||
* Modulzugriff.
|
||||
*
|
||||
* REIHENFOLGE: alle statischen Routen (`accounts`, `accounts/export-csv`,
|
||||
@@ -88,7 +87,7 @@ export class HandelswareDatevController {
|
||||
}
|
||||
|
||||
@Put('settings')
|
||||
@Roles(Role.ADMIN, Role.SUPER_ADMIN)
|
||||
@ModuleManage('handelsware-datev')
|
||||
async saveSettings(@Req() req: AuthenticatedRequest, @Body() dto: HandelswareSettingsDto) {
|
||||
return this.service.saveSettings(this.requireTenantId(req), dto);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user