Medienkategorie verschieben (`parent_id`) fehlt in der API
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia leggendo la route esistente media/category/update e rex_media_category_service::editCategory(), che attualmente accetta solo name. Segui checkMediaPerm($user, $categoryId), il caching delle categorie e il punto di estensione MEDIA_CATEGORY_UPDATED prima di scegliere tra un parametro di aggiornamento e una route di spostamento. Il lavoro è completato quando sono stati convalidati i permessi della sorgente e della destinazione, sono stati prevenuti i cicli, sono stati aggiornati i parent, è stata invalidata la cache, è stato generato un evento di estensione ed è stata aggiunta la documentazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Was soll erreicht werden
Eine Medienkategorie per API (Bearer + Backend-Session) in eine andere Elternkategorie verschieben können, z. B. parent_id optional in PATCH media/category/{id}, oder eigene Route media/category/{id}/move.
Problem
media/category/update akzeptiert nur name. Grund lt. Code-Kommentar: Core kann parent_id nicht ändern. Stimmt — geprüft: rex_media_category_service::editCategory() liest ausschließlich $data['name']. Es gibt dafür in Core weder UI noch Service-Methode.
Weil die API bewusst nichts anbietet, was Core nicht kann, bauen Konsumenten (z. B. unser mediapool3_demo-Addon mit Drag&Drop-Kategoriebaum) das jeweils selbst nach: rohes SQL auf parent_id, eigener Zyklen-Schutz, eigene Cache-Invalidierung — am API-Addon vorbei, ohne Extension Point.
Warum
Kategorien per Drag&Drop umstrukturieren ist ein gängiges Bedürfnis für jede Custom-Medienpool-UI. Aktuell baut das jeder Konsument einzeln und uneinheitlich nach, statt eine zentrale, getestete Implementierung zu nutzen.
Was muss gemacht werden
- Route/Parameter festlegen:
parent_idinupdateoder eigenemove-Route (sauberer, da "update = 1:1 Core-Spiegel" von "move = bewusste Erweiterung" trennt) - Validierung: Zielkategorie existiert, kein Verschieben in eigenen Teilbaum (Zyklen-Schutz)
- Rechteprüfung
checkMediaPerm($user, $categoryId)für Quelle und Ziel - Direktes Update von
parent_id(kein Core-Service vorhanden) - Cache-Invalidierung: alte Elternkategorie, verschobene Kategorie, neue Elternkategorie
- Extension Point feuern (
MEDIA_CATEGORY_UPDATEDoder neu:MEDIA_CATEGORY_MOVED) - Dokumentieren, dass dies bewusst über Core-Parität hinausgeht (Ausnahme von der "nur spiegeln"-Regel)
- Lingua principale
- PHP
- Stelle
- 20
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di FriendsOfREDAXO/api
-
Medien löschen hinter Web Application Firewalls blockiert (Pfad enthält /delete)Forse già presa @skerbis l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
FriendsOfREDAXO/api#84 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
FriendsOfREDAXO/api#83 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
FriendsOfREDAXO/api#81 ·
-
checkMediaPerm(): Ziel nicht geprüft bei Verschieben + keine Kaskadierung auf UnterkategorienAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
FriendsOfREDAXO/api#80 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
FriendsOfREDAXO/api#65 ·
Tutte le issue di FriendsOfREDAXO/api
Issue simili
-
type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
needs-triage Technical TODO
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 2 giorni
-
Security: Vulnerable PHP version (CVE-2026-109618 / CVE-2026-109619) in current Docker imagesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
MISP/misp-docker#478 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
glpi-project/glpi#26045 ·
I maintainer di solito rispondono entro 1 giorno
-
sync-en
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno