rights system
This commit is contained in:
@@ -76,6 +76,21 @@ class PermissionController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* DELETE /api/admin/permissions/group/:groupName
|
||||
* Removes a group and all its permissions from the matrix.
|
||||
*/
|
||||
async deleteGroup(req: Request, res: Response): Promise<void> {
|
||||
try {
|
||||
const groupName = req.params.groupName as string;
|
||||
await permissionService.deleteGroup(groupName);
|
||||
res.json({ success: true, message: 'Gruppe entfernt' });
|
||||
} catch (error) {
|
||||
logger.error('Failed to delete group', { error });
|
||||
res.status(500).json({ success: false, message: 'Fehler beim Entfernen der Gruppe' });
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PUT /api/admin/permissions/bulk
|
||||
* Bulk-update permissions for multiple groups in one request.
|
||||
|
||||
@@ -15,6 +15,7 @@ router.get('/admin/unknown-groups', authenticate, requirePermission('admin:view'
|
||||
router.get('/admin/config', authenticate, requirePermission('admin:view'), permissionController.getDependencyConfig.bind(permissionController));
|
||||
router.put('/admin/config', authenticate, requirePermission('admin:write'), permissionController.setDependencyConfig.bind(permissionController));
|
||||
router.put('/admin/group/:groupName', authenticate, requirePermission('admin:write'), permissionController.setGroupPermissions.bind(permissionController));
|
||||
router.delete('/admin/group/:groupName', authenticate, requirePermission('admin:write'), permissionController.deleteGroup.bind(permissionController));
|
||||
router.put('/admin/bulk', authenticate, requirePermission('admin:write'), permissionController.setBulkPermissions.bind(permissionController));
|
||||
router.put('/admin/maintenance/:featureGroupId', authenticate, requirePermission('admin:write'), permissionController.setMaintenanceFlag.bind(permissionController));
|
||||
|
||||
|
||||
@@ -238,6 +238,12 @@ class PermissionService {
|
||||
}
|
||||
}
|
||||
|
||||
async deleteGroup(group: string): Promise<void> {
|
||||
await pool.query('DELETE FROM group_permissions WHERE authentik_group = $1', [group]);
|
||||
await this.loadCache();
|
||||
logger.info('Group deleted from permissions', { group });
|
||||
}
|
||||
|
||||
/**
|
||||
* Bulk-update permissions for multiple groups in a single transaction.
|
||||
* Reloads cache once at the end.
|
||||
|
||||
Reference in New Issue
Block a user