Editing a Markdown file in a public share fails: TextContextProviderFactory::__construct(): Argument #5 ($userId) must be of type string, null given
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- php
- Ambito
- authentication, backend
Direzione di ricerca
Inizia da lib/Provider/TextContextProviderFactory.php e lib/Provider/TextContextProvider.php, poi controlla come PermissionService gestisce un ID utente null. Aggiungi un test di regressione in tests/unit/Provider/TextContextProviderFactoryTest.php per la costruzione della factory con null e verifica che build() e buildForCard() restituiscano contesti validi. Il lavoro è concluso quando la modifica delle condivisioni pubbliche non causa più questo TypeError e il test di regressione passa.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
After upgrading Nextcloud (35.0.2.2), editing a Markdown file in a public share fails with a 500 error. Deck's TextContextProviderFactory is resolved by the Text app for every registered text context, and on public shares there is no logged-in user, so the DI container injects null into the non-nullable string $userId constructor parameter.
Steps to reproduce
Create a public share link for a Markdown (.md) file
Open the share and start editing the file
The sync request POST /index.php/apps/text/public/session/<id>/sync fails
Error
OCA\Deck\Provider\TextContextProviderFactory::__construct(): Argument #5 ($userId) must be of type string, null given
in /nextcloud/apps/deck/lib/Provider/TextContextProviderFactory.php line 20
Relevant trace: OCA\Text\Controller\PublicSessionController::sync → ApiService::getContext → ContextManager::getContexts → dispatchTyped(RegisterContextEvent) → ServiceEventListener → SimpleContainer::resolve(TextContextProviderFactory::class) → TypeError.
Expected behavior
Editing a Markdown file in a public share works; Deck's context factory must not crash when no user is logged in.
Proposed solution
Widen the constructor parameter to nullable in both classes, since the downstream consumer already accepts null:
lib/Provider/TextContextProviderFactory.php:25: string $userId → ?string $userId
lib/Provider/TextContextProvider.php:34: string $userId → ?string $userId
PermissionService::checkPermission(..., $userId = null) (lib/Service/PermissionService.php:172) and userCan()/userIsBoardOwner() already handle null, so with no user the context simply resolves to read-only instead of throwing a TypeError. A regression test (tests/unit/Provider/TextContextProviderFactoryTest.php) constructs the factory with null userId and asserts build()/buildForCard() still return a valid context.
Environment
Nextcloud 35.0.2.2, Deck current master, Text app public share session
- Lingua principale
- JavaScript
- Stelle
- 1.4k
- Fork
- 363
- Merge medio
- 1g 5h
- PR unite (30g)
- 118
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
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 nextcloud/deck
-
Federated board stacks return 500: getReadMark() called with null user in CardService::enrichCards()Aperta1. to develop bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
nextcloud/deck#8721 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
DeckProvider::setSubjects() overwrites IEvent subject with translated sentence → InvalidValueException, Deck bell notifications silently droppedForse già presa @tcarrondo l’ha presa 12 giorni fa. Aperta0. Needs triage bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
nextcloud/deck#8591 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
CSV export leaves trailing commas in tags and assigned-user fieldsForse già presa @Kumar-s75 l’ha presa 62 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
nextcloud/deck#8361 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di nextcloud/deck
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
home-sweet-gnome/dash-to-panel#2594 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
agentic-community/mcp-gateway-registry#2017 ·
I maintainer di solito rispondono entro 1 giorno
-
P2 Team S Type: Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
google/site-kit-wp#14138 ·
I maintainer di solito rispondono entro 2 giorni
-
from-agent
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
immich-app/immich#33181 ·
I maintainer di solito rispondono entro 1 giorno