rights system
This commit is contained in:
@@ -154,6 +154,52 @@ class PermissionController {
|
||||
res.status(500).json({ success: false, message: 'Fehler beim Setzen des Wartungsmodus' });
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /api/admin/permissions/config
|
||||
* Returns the dependency configuration (group hierarchy + permission deps).
|
||||
*/
|
||||
async getDependencyConfig(_req: Request, res: Response): Promise<void> {
|
||||
try {
|
||||
const config = await permissionService.getDependencyConfig();
|
||||
res.json({ success: true, data: config });
|
||||
} catch (error) {
|
||||
logger.error('Failed to get dependency config', { error });
|
||||
res.status(500).json({ success: false, message: 'Fehler beim Laden der Konfiguration' });
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PUT /api/admin/permissions/config
|
||||
* Updates the dependency configuration.
|
||||
* Body: { groupHierarchy?: Record<string, string[]>, permissionDeps?: Record<string, string[]> }
|
||||
*/
|
||||
async setDependencyConfig(req: Request, res: Response): Promise<void> {
|
||||
try {
|
||||
const { groupHierarchy, permissionDeps } = req.body;
|
||||
|
||||
if (groupHierarchy !== undefined) {
|
||||
if (typeof groupHierarchy !== 'object' || groupHierarchy === null) {
|
||||
res.status(400).json({ success: false, message: 'groupHierarchy must be an object' });
|
||||
return;
|
||||
}
|
||||
await permissionService.setGroupHierarchy(groupHierarchy, req.user!.id);
|
||||
}
|
||||
|
||||
if (permissionDeps !== undefined) {
|
||||
if (typeof permissionDeps !== 'object' || permissionDeps === null) {
|
||||
res.status(400).json({ success: false, message: 'permissionDeps must be an object' });
|
||||
return;
|
||||
}
|
||||
await permissionService.setPermissionDeps(permissionDeps, req.user!.id);
|
||||
}
|
||||
|
||||
res.json({ success: true, message: 'Konfiguration aktualisiert' });
|
||||
} catch (error) {
|
||||
logger.error('Failed to set dependency config', { error });
|
||||
res.status(500).json({ success: false, message: 'Fehler beim Speichern der Konfiguration' });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default new PermissionController();
|
||||
|
||||
Reference in New Issue
Block a user