[Bug] Lock owned by another client (e.g. Text app) cannot be unlocked from the app
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
Direzione di ricerca
Leggi FileLockingHelper.canUserUnlockFile() e segui come il menu di overflow usa il risultato per mostrare l’azione di sblocco. Confronta il controllo lato client con la regola lato server descritta nell’issue, inclusa la riserva relativa alle cartelle di gruppo e all’archiviazione esterna. Il lavoro è completo quando il proprietario del file può sbloccare un file di sua proprietà e il comportamento è coperto da un test pertinente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Steps to reproduce
- Open a Markdown/text file in the Text app (web or Android) and close it without releasing the lock (tab killed, connection lost, app swiped away).
files_lockkeeps the lock with ownertext.- Open that file's overflow menu in the Nextcloud Android app.
Actual behaviour
The file is shown as locked (lock icon, "Locked by Text app — expires in …"), but the menu has no "Unlock file" entry. FileLockingHelper.canUserUnlockFile() only returns true when lockOwnerId == userId, so the file owner is never offered the action.
With the default lock_timeout = -1 the lock never expires; edits then fail with ManuallyLockedException / HTTP 423 and are only recoverable from the web UI (or by waiting for a configured timeout).
Expected behaviour
The file owner can unlock. The server already allows this — OCA\FilesLock\Service\LockService::canUnlock():
if ($request->getType() === ILock::TYPE_USER && $isFileOwner) {
return;
}
Possible fix
Also accept the file owner in FileLockingHelper (file.ownerId == userId), mirroring the server check. I'm preparing a PR.
Caveat: for group folders and external storage the server deliberately skips the file-owner check, so the client cannot mirror the rule exactly there.
Environment
- Server: Nextcloud 34 (AIO),
files_lock34.0.1 - Client: current Play release
- File in personal storage
- Lingua principale
- Kotlin
- Stelle
- 5.6k
- Fork
- 2k
- Merge medio
- 2g 4h
- PR unite (30g)
- 92
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/android
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
Modification time is not preserved when uploading MediaStore content via Android shareForse già presa @alperozturk96 l’ha presa 26 giorni fa. Aperta3. to review bug feature: transfers
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
nextcloud/android#17675 · 4 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
0. Needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
nextcloud/android#17533 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
RC 34.1.0-01: Duplicated wording in creation menu — "New" prefix + creator name produces "New New document" ("Neu Neues Dokument")Forse già presa @ChristianTannheimer l’ha presa 92 giorni fa. Aperta0. Needs triage bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
0. Needs triage bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di nextcloud/android
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
dafonton77-tech/Cadreenf#11 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
Hy4ri/hermes-mobile#1647 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
rawnaldclark/Stash#649 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
I maintainer di solito rispondono entro 1 giorno