fix permissions
This commit is contained in:
@@ -10,7 +10,7 @@ class IssueController {
|
||||
try {
|
||||
const userId = req.user!.id;
|
||||
const groups: string[] = (req.user as any).groups || [];
|
||||
const canViewAll = permissionService.hasPermission(groups, 'issues:view_all');
|
||||
const canViewAll = groups.includes('dashboard_admin') || permissionService.hasPermission(groups, 'issues:view_all');
|
||||
|
||||
// Parse filter query params
|
||||
const filters: {
|
||||
@@ -60,7 +60,7 @@ class IssueController {
|
||||
}
|
||||
const userId = req.user!.id;
|
||||
const groups: string[] = (req.user as any).groups || [];
|
||||
const canViewAll = permissionService.hasPermission(groups, 'issues:view_all');
|
||||
const canViewAll = groups.includes('dashboard_admin') || permissionService.hasPermission(groups, 'issues:view_all');
|
||||
if (!canViewAll && issue.erstellt_von !== userId && issue.zugewiesen_an !== userId) {
|
||||
res.status(403).json({ success: false, message: 'Kein Zugriff' });
|
||||
return;
|
||||
@@ -227,7 +227,7 @@ class IssueController {
|
||||
}
|
||||
const userId = req.user!.id;
|
||||
const groups: string[] = (req.user as any).groups || [];
|
||||
const canViewAll = permissionService.hasPermission(groups, 'issues:view_all');
|
||||
const canViewAll = groups.includes('dashboard_admin') || permissionService.hasPermission(groups, 'issues:view_all');
|
||||
if (!canViewAll && issue.erstellt_von !== userId && issue.zugewiesen_an !== userId) {
|
||||
res.status(403).json({ success: false, message: 'Kein Zugriff' });
|
||||
return;
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
-- Migration 056: Add issues:widget permission
|
||||
-- Gated permission for the Issue Quick Add dashboard widget.
|
||||
-- Granted to all groups that currently have issues:create.
|
||||
|
||||
-- 1. Insert the new permission
|
||||
INSERT INTO permissions (id, feature_group_id, label, description, sort_order)
|
||||
VALUES ('issues:widget', 'issues', 'Widget', 'Issue-Schnelleingabe auf dem Dashboard', 8)
|
||||
ON CONFLICT (id) DO NOTHING;
|
||||
|
||||
-- 2. Grant to every group that already has issues:create
|
||||
INSERT INTO group_permissions (authentik_group, permission_id)
|
||||
SELECT authentik_group, 'issues:widget'
|
||||
FROM group_permissions
|
||||
WHERE permission_id = 'issues:create'
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- 3. Add dependency: issues:widget requires issues:create
|
||||
UPDATE app_settings
|
||||
SET value = value || '{"issues:widget": ["issues:create"]}'::jsonb
|
||||
WHERE key = 'permission_deps';
|
||||
Reference in New Issue
Block a user