Jonas b2984fcf1a Replace IsAdmin with role-based admin
Switch user admin handling from an AppUser boolean to ASP.NET Identity roles. Removed AppUser.IsAdmin and related configuration/model entries; added migration ReplaceIsAdminWithRoles to copy Users.IsAdmin=true into a persistent admin role and drop the IsAdmin column. CurrentUserResponse now exposes roles (string[]), AuthController returns ordered roles from UserManager, and IdentitySeedService now ensures the admin role exists and assigns/creates an initial admin user in that role. Program.cs registers an Admin-only policy (PolicyNames/RoleNames), adjusts cookie auth events to return 401/403 for API requests, and wires up authorization. Frontend updated to use roles: authSession normalizes roles, adds hasRole and ROLE_ADMIN, router and layout support meta.requiredRoles, and new Forbidden and AdminUsers pages/route are added. codexInfo.md updated to reflect the migration to role-based auth.
2026-04-20 19:57:49 +02:00
2026-04-20 19:57:49 +02:00
2026-04-20 19:57:49 +02:00
2026-04-15 20:34:10 +02:00
2026-04-15 20:34:10 +02:00

Hoard

Hoard ist eine einfache, selbst gehostete Web-App zur Verwaltung von Dateien und Ordnern mit integrierter Markdown-Bearbeitung direkt im Browser.

Die Anwendung bewegt sich funktional zwischen Google Drive, Notion und Obsidian, bleibt dabei aber bewusst schlank und pragmatisch umgesetzt. Fokus liegt auf klarer Navigation, einfacher Bedienung und einem realistischen Umfang für ein Solo-Projekt.

Features

  • 📁 Dateien und Ordner verwalten
  • 🧭 Durch Ordnerstrukturen navigieren
  • 📝 Markdown-Dateien direkt im Browser bearbeiten
  • 🖼️ Vorschau für Bilder und PDFs
  • 📦 Andere Dateien speichern und herunterladen
  • 👥 Mehrbenutzerfähig (Accounts werden manuell erstellt)
  • 🔐 Klassische Login-Session mit Cookies

Tech-Stack

  • Frontend: Vue 3
  • Markdown-Editor: md-editor-v3
  • Backend: ASP.NET Core (C#)
  • Datenbank: PostgreSQL
  • Dateispeicher: MinIO (S3-kompatibel)
  • Authentifizierung: Cookie-basiert
  • Deployment: Self-hosted auf eigenem Server

Ziel

Ein bewusst einfach gehaltenes System, das sich wie eine klassische Dateiverwaltung im Browser anfühlt ohne unnötige Komplexität, aber mit sauberer Grundlage für spätere Erweiterungen.

S
Description
File and Knowledge Management
Readme 5.2 MiB
Languages
C# 48.2%
TypeScript 34.3%
HTML 10.3%
Vue 7.2%