fix:zugriffsverwaltung liess sich nicht öffnen

This commit is contained in:
Ida Dittrich 2026-02-14 17:59:28 +01:00
parent 9d365aa65a
commit 6272d21942
3 changed files with 32 additions and 5 deletions

View file

@ -36,7 +36,7 @@ import { DashboardPage } from './pages/Dashboard';
import { SettingsPage } from './pages/Settings';
import { GDPRPage } from './pages/GDPR';
import { FeatureViewPage } from './pages/FeatureView';
import { AdminMandatesPage, AdminUsersPage, AdminUserMandatesPage, AdminFeatureAccessPage, AdminInvitationsPage, AdminFeatureRolesPage, AdminFeatureInstanceUsersPage, AdminMandateRolesPage, AdminMandateRolePermissionsPage, AdminUserAccessOverviewPage } from './pages/admin';
import { AdminMandatesPage, AdminUsersPage, AdminUserMandatesPage, AdminFeatureAccessPage, AdminInvitationsPage, AdminFeatureRolesPage, AdminFeatureInstanceUsersPage, AdminMandateRolesPage, AdminMandateRolePermissionsPage, AdminUserAccessOverviewPage, AccessManagementHub } from './pages/admin';
import { PlaygroundPage, WorkflowsPage, AutomationsPage } from './pages/workflows';
import { PromptsPage, FilesPage, ConnectionsPage } from './pages/basedata';
function App() {
@ -163,6 +163,7 @@ function App() {
<Route path="mandates" element={<AdminMandatesPage />} />
<Route path="users" element={<AdminUsersPage />} />
<Route path="user-mandates" element={<AdminUserMandatesPage />} />
<Route path="access" element={<AccessManagementHub />} />
<Route path="feature-instances" element={<AdminFeatureAccessPage />} />
<Route path="feature-roles" element={<AdminFeatureRolesPage />} />
<Route path="feature-users" element={<AdminFeatureInstanceUsersPage />} />

View file

@ -102,7 +102,15 @@ export function useFeatureAccess() {
setError(null);
try {
const response = await api.get('/api/features/');
const data = Array.isArray(response.data) ? response.data : [];
// Handle different API response formats (array, {items}, {data})
let data: Feature[] = [];
if (Array.isArray(response.data)) {
data = response.data;
} else if (response.data?.items && Array.isArray(response.data.items)) {
data = response.data.items;
} else if (response.data?.data && Array.isArray(response.data.data)) {
data = response.data.data;
}
setFeatures(data);
return data;
} catch (err: any) {

View file

@ -390,6 +390,7 @@ export const AdminFeatureAccessPage: React.FC = () => {
className={styles.primaryButton}
onClick={() => setShowCreateModal(true)}
disabled={features.length === 0}
title={features.length === 0 ? 'Keine Features verfügbar. Bitte laden Sie die Seite neu oder prüfen Sie die Konsole auf Fehler.' : undefined}
>
<FaPlus /> Neue Instanz
</button>
@ -397,8 +398,8 @@ export const AdminFeatureAccessPage: React.FC = () => {
)}
</div>
{/* Available Features Info */}
{features.length > 0 && (
{/* Available Features Info / Empty Features Warning */}
{features.length > 0 ? (
<div className={styles.infoBox}>
<FaCube style={{ marginRight: 8 }} />
<span>Verfügbare Features: </span>
@ -409,7 +410,23 @@ export const AdminFeatureAccessPage: React.FC = () => {
</span>
))}
</div>
)}
) : selectedMandateId && !loading ? (
<div className={styles.infoBox} style={{ borderColor: 'var(--error-color, #dc3545)', backgroundColor: 'var(--error-bg, rgba(220, 53, 69, 0.1))' }}>
<FaCube style={{ marginRight: 8 }} />
<span>
Keine Features geladen.
{error ? ` Fehler: ${error}` : ' Die API hat keine Features zurückgegeben.'}
{' '}Öffnen Sie die Browser-Konsole (F12) und prüfen Sie den Netzwerk-Tab für /api/features/
</span>
<button
className={styles.secondaryButton}
onClick={() => fetchFeatures()}
style={{ marginLeft: '1rem' }}
>
<FaSync /> Features erneut laden
</button>
</div>
) : null}
{/* Content */}
{!selectedMandateId ? (
@ -436,6 +453,7 @@ export const AdminFeatureAccessPage: React.FC = () => {
className={styles.primaryButton}
onClick={() => setShowCreateModal(true)}
disabled={features.length === 0}
title={features.length === 0 ? 'Keine Features verfügbar. Bitte laden Sie die Features erneut.' : undefined}
>
<FaPlus /> Erste Instanz erstellen
</button>