Per-User Domain-Ausschlüsse + Grundquellen-Schutz
- Neue Tabelle user_excluded_domains für benutzerspezifische Ausschlüsse - Domain-Ausschlüsse wirken nur für den jeweiligen User, nicht org-weit - user_id wird durch die gesamte Pipeline geschleust (Orchestrator → Researcher → RSS-Parser) - Grundquellen (is_global) können nicht mehr bearbeitet/gelöscht werden im Frontend - Grundquelle-Badge bei globalen Quellen statt Edit/Delete-Buttons - Filter Von mir ausgeschlossen im Quellen-Modal Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -661,6 +661,24 @@ async def get_feeds_with_metadata(tenant_id: int = None) -> list[dict]:
|
||||
await db.close()
|
||||
|
||||
|
||||
async def get_user_excluded_domains(user_id: int) -> list[str]:
|
||||
"""Laedt die vom User ausgeschlossenen Domains."""
|
||||
from database import get_db
|
||||
|
||||
db = await get_db()
|
||||
try:
|
||||
cursor = await db.execute(
|
||||
"SELECT domain FROM user_excluded_domains WHERE user_id = ?",
|
||||
(user_id,),
|
||||
)
|
||||
return [row[0] for row in await cursor.fetchall()]
|
||||
except Exception as e:
|
||||
logger.warning(f"Fehler beim Laden der User-Ausschluesse: {e}")
|
||||
return []
|
||||
finally:
|
||||
await db.close()
|
||||
|
||||
|
||||
async def get_source_rules(tenant_id: int = None) -> dict:
|
||||
"""Liest Quellen-Konfiguration aus DB (global + org-spezifisch).
|
||||
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren