+ {/* Object Name */}
+
+ {getContextIcon()}
+ {rule.item || '(global)'}
+ |
+
+ {/* View Checkbox */}
+
+ onUpdate(rule.id, { view: e.target.checked })}
+ disabled={readOnly}
+ title="Sichtbar"
+ />
+ |
+
+ {/* CRUD Checkboxes for DATA context */}
+ {isDataContext && (
+ <>
+ {/* EIGENE (m) */}
+ {(['create', 'read', 'update', 'delete'] as const).map(op => (
+
+ handleLevelToggle(op, 'm', e.target.checked)}
+ disabled={readOnly}
+ title={`${op.charAt(0).toUpperCase() + op.slice(1)} - Eigene`}
+ />
+ |
+ ))}
+
+ {/* GRUPPE (g) */}
+ {(['create', 'read', 'update', 'delete'] as const).map(op => (
+
+ handleLevelToggle(op, 'g', e.target.checked)}
+ disabled={readOnly}
+ title={`${op.charAt(0).toUpperCase() + op.slice(1)} - Gruppe`}
+ />
+ |
+ ))}
+
+ {/* ALLE (a) */}
+ {(['create', 'read', 'update', 'delete'] as const).map(op => (
+
+ handleLevelToggle(op, 'a', e.target.checked)}
+ disabled={readOnly}
+ title={`${op.charAt(0).toUpperCase() + op.slice(1)} - Alle`}
+ />
+ |
+ ))}
+ >
+ )}
+
+ {/* Delete Button */}
+
+ {!readOnly && (
+
+ )}
+ |
+
+ );
+};
+
+// =============================================================================
+// MAIN TABLE COMPONENT
+// =============================================================================
+
+export const AccessRulesTable: React.FC