Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and

### Fixed

- A member of a group a secret is shared with can now change it for everyone it is shared with, as the owner and write-grade members can. Their change only reached their own copy, so the owner and the other recipients kept the old value. Membership is checked at every save, so a member who left the group can't save for everyone, even when their copy was not removed. A use-only group share doesn't give this right, and a recipient of a direct share still changes only their own copy until they join such a group; then the right comes at once, with nothing to approve, and the owner is told unless the recipient can change it for everyone as a delegate or through a team folder they can write in. A member's sync through `PUT /api/v1/secrets/{id}/sync` needs a base version and every copy once, may not clear a copy's key and is checked again just before it writes, as a share-save is; otherwise it answers 409, or 403 when the source is a read-only copy from another organisation. (#1285)
- A member of a group a secret is shared with can now change it for everyone it is shared with, as the owner and write-grade members can. Their change only reached their own copy, so the owner and the other recipients kept the old value. Membership is checked at every save, so a member who left the group can't save for everyone, even when their copy was not removed. A use-only group share doesn't give this right, and a recipient of a direct share can't change it until they join such a group; then the right comes at once, with nothing to approve, and the owner is told unless the recipient can change it for everyone as a delegate or through a team folder they can write in. A member's sync through `PUT /api/v1/secrets/{id}/sync` needs a base version and every copy once, may not clear a copy's key and is checked again just before it writes, as a share-save is; otherwise it answers 409, or 403 when the source is a read-only copy from another organisation. (#1285)
- A save by a delegate, a team-folder writer or a group member through their copy now keeps the owner's previous value as a version of the owner's secret, so the owner can restore it. Only the writer's own copy kept a version, and a sync through `/sync` kept none at all. (#1285)
- Editing a shared secret in the web app updates the recipients' copies again. The copies were never updated, a write-grade member who changed only the password cleared the login and additional fields on the source, and a failed update showed as saved. A failed save now shows an error and changes nothing. (sharing-atomic-share-save, #1253)
- A recipient who may not write a shared secret can no longer change the value of their own copy, which split that copy from the source and every other copy. A copy shared directly, or through a group whose share is use-only or expired, or held as a team-folder Viewer, is view-only: the web app hides Edit, Restore and "Ask for new values" on it, keeps Save disabled in its edit dialog and says it is shared to view only, while moving, starring, archiving, tagging and deleting it still work. An offline edit of such a copy fails on replay with its values kept to copy or discard. `PUT /api/v1/secrets/{id}` and `POST /api/v1/versions/{id}/restore` refuse a change of the value, login or additional fields of a view-only copy with 428 `view_only`, and a change of only other fields, such as the folder, still saves. `PUT /api/v1/secrets/{id}/sync` refuses a received copy's id with 428 `forbidden`, since a sync starts from the source. Filling a secret request for a view-only copy is refused too; a refused fill, also one for a use-only copy or a read-only copy from another organisation, answers 428 instead of 500, stores nothing and leaves the request pending. (user-sharing, sharing-atomic-share-save, #1287)
- A save through `PUT /api/v1/secrets/{id}`, a sync through `PUT /api/v1/secrets/{id}/sync` and a version restore could overwrite a change that landed between their read and their write, such as a share-save from the web app while the browser extension saved. They now read and write in one step, so a change that lands meanwhile is kept in the version history instead of overwritten. A save or sync with a base version answers 409, as do a sync or restore without one; a save without one, filling a secret request for a user's secret and setting an expiry try once more on the current version, and answer 409 only if it moves again. (sharing-atomic-share-save)
- A delegate or write-grade member who saves a shared secret through their copy is now recorded in the audit log on the owner's secret too, with the holders that were left out. A restore made through a share-save is recorded as the version the client restored from. (sharing-atomic-share-save)
- Revoking a partner share while an update to that partner was still being sent could leave the partner's copy in place: the slower update replaced the pending unshare, so the unshare was never sent. An update now never replaces a pending unshare. (sharing-atomic-share-save)
Expand Down
2 changes: 2 additions & 0 deletions l10n/be.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ OC.L10N.register(
"This secret is shared with many partner organisations, so the save is waiting for the lookup limit and then continues. Keep this dialog open.": "Гэты сакрэт абагулены з многімі партнёрскімі арганізацыямі, таму захаванне чакае ліміту запытаў і потым працягнецца. Не закрывайце гэта акно.",
"Too many partner lookups. Nothing was saved; try again in a minute.": "Занадта шмат запытаў да партнёрскіх арганізацый. Нічога не захавана; паспрабуйце яшчэ раз праз хвіліну.",
"This version cannot be restored to this secret. Nothing was saved.": "Гэтую версію нельга аднавіць для гэтага сакрэту. Нічога не захавана.",
"Shared with you to view only. Ask its owner for edit rights to change it.": "Абагулена з вамі толькі для прагляду. Каб змяніць, папрасіце ўладальніка даць правы на рэдагаванне.",
"Shared with you to view only. Nothing was saved; ask its owner for edit rights to change it.": "Абагулена з вамі толькі для прагляду. Нічога не захавана; каб змяніць, папрасіце ўладальніка даць правы на рэдагаванне.",
"A partner organisation this secret is shared with cannot be reached ({partners}). Make the change again online, where you can save without them.": "Партнёрская арганізацыя, з якой абагулены гэты сакрэт, недаступная ({partners}). Зрабіце змену яшчэ раз онлайн, дзе можна захаваць без іх.",
"Save without them": "Захаваць без іх",
"Saved. Recipients at partner organisations get this change when the owner next saves this secret.": "Захавана. Атрымальнікі ў партнёрскіх арганізацыях атрымаюць гэтую змену, калі ўладальнік наступным разам захавае гэты сакрэт.",
Expand Down
2 changes: 2 additions & 0 deletions l10n/be.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
"This secret is shared with many partner organisations, so the save is waiting for the lookup limit and then continues. Keep this dialog open.": "Гэты сакрэт абагулены з многімі партнёрскімі арганізацыямі, таму захаванне чакае ліміту запытаў і потым працягнецца. Не закрывайце гэта акно.",
"Too many partner lookups. Nothing was saved; try again in a minute.": "Занадта шмат запытаў да партнёрскіх арганізацый. Нічога не захавана; паспрабуйце яшчэ раз праз хвіліну.",
"This version cannot be restored to this secret. Nothing was saved.": "Гэтую версію нельга аднавіць для гэтага сакрэту. Нічога не захавана.",
"Shared with you to view only. Ask its owner for edit rights to change it.": "Абагулена з вамі толькі для прагляду. Каб змяніць, папрасіце ўладальніка даць правы на рэдагаванне.",
"Shared with you to view only. Nothing was saved; ask its owner for edit rights to change it.": "Абагулена з вамі толькі для прагляду. Нічога не захавана; каб змяніць, папрасіце ўладальніка даць правы на рэдагаванне.",
"A partner organisation this secret is shared with cannot be reached ({partners}). Make the change again online, where you can save without them.": "Партнёрская арганізацыя, з якой абагулены гэты сакрэт, недаступная ({partners}). Зрабіце змену яшчэ раз онлайн, дзе можна захаваць без іх.",
"Save without them": "Захаваць без іх",
"Saved. Recipients at partner organisations get this change when the owner next saves this secret.": "Захавана. Атрымальнікі ў партнёрскіх арганізацыях атрымаюць гэтую змену, калі ўладальнік наступным разам захавае гэты сакрэт.",
Expand Down
2 changes: 2 additions & 0 deletions l10n/bg.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ OC.L10N.register(
"This secret is shared with many partner organisations, so the save is waiting for the lookup limit and then continues. Keep this dialog open.": "Тази тайна е споделена с много партньорски организации, затова запазването изчаква лимита на заявките и след това продължава. Не затваряйте този прозорец.",
"Too many partner lookups. Nothing was saved; try again in a minute.": "Твърде много заявки към партньорски организации. Нищо не е запазено; опитайте отново след минута.",
"This version cannot be restored to this secret. Nothing was saved.": "Тази версия не може да бъде възстановена за тази тайна. Нищо не е запазено.",
"Shared with you to view only. Ask its owner for edit rights to change it.": "Споделено с вас само за преглед. Помолете собственика за права за редактиране, за да го промените.",
"Shared with you to view only. Nothing was saved; ask its owner for edit rights to change it.": "Споделено с вас само за преглед. Нищо не е запазено; помолете собственика за права за редактиране, за да го промените.",
"A partner organisation this secret is shared with cannot be reached ({partners}). Make the change again online, where you can save without them.": "Партньорска организация, с която е споделена тази тайна, е недостъпна ({partners}). Направете промяната отново онлайн, където можете да запазите без тях.",
"Save without them": "Запазване без тях",
"Saved. Recipients at partner organisations get this change when the owner next saves this secret.": "Запазено. Получателите в партньорски организации ще получат тази промяна, когато собственикът запази тази тайна следващия път.",
Expand Down
2 changes: 2 additions & 0 deletions l10n/bg.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
"This secret is shared with many partner organisations, so the save is waiting for the lookup limit and then continues. Keep this dialog open.": "Тази тайна е споделена с много партньорски организации, затова запазването изчаква лимита на заявките и след това продължава. Не затваряйте този прозорец.",
"Too many partner lookups. Nothing was saved; try again in a minute.": "Твърде много заявки към партньорски организации. Нищо не е запазено; опитайте отново след минута.",
"This version cannot be restored to this secret. Nothing was saved.": "Тази версия не може да бъде възстановена за тази тайна. Нищо не е запазено.",
"Shared with you to view only. Ask its owner for edit rights to change it.": "Споделено с вас само за преглед. Помолете собственика за права за редактиране, за да го промените.",
"Shared with you to view only. Nothing was saved; ask its owner for edit rights to change it.": "Споделено с вас само за преглед. Нищо не е запазено; помолете собственика за права за редактиране, за да го промените.",
"A partner organisation this secret is shared with cannot be reached ({partners}). Make the change again online, where you can save without them.": "Партньорска организация, с която е споделена тази тайна, е недостъпна ({partners}). Направете промяната отново онлайн, където можете да запазите без тях.",
"Save without them": "Запазване без тях",
"Saved. Recipients at partner organisations get this change when the owner next saves this secret.": "Запазено. Получателите в партньорски организации ще получат тази промяна, когато собственикът запази тази тайна следващия път.",
Expand Down
2 changes: 2 additions & 0 deletions l10n/bs.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ OC.L10N.register(
"This secret is shared with many partner organisations, so the save is waiting for the lookup limit and then continues. Keep this dialog open.": "Ova tajna je podijeljena s mnogo partnerskih organizacija, pa čuvanje čeka na ograničenje upita i zatim se nastavlja. Ne zatvarajte ovaj prozor.",
"Too many partner lookups. Nothing was saved; try again in a minute.": "Previše upita partnerskim organizacijama. Ništa nije sačuvano; pokušajte ponovo za minutu.",
"This version cannot be restored to this secret. Nothing was saved.": "Ova verzija se ne može vratiti za ovu tajnu. Ništa nije sačuvano.",
"Shared with you to view only. Ask its owner for edit rights to change it.": "Podijeljeno s vama samo za pregled. Zatražite od vlasnika prava uređivanja da biste je promijenili.",
"Shared with you to view only. Nothing was saved; ask its owner for edit rights to change it.": "Podijeljeno s vama samo za pregled. Ništa nije sačuvano; zatražite od vlasnika prava uređivanja da biste je promijenili.",
"A partner organisation this secret is shared with cannot be reached ({partners}). Make the change again online, where you can save without them.": "Partnerska organizacija s kojom se dijeli ova tajna nije dostupna ({partners}). Napravite promjenu ponovo dok ste na mreži, gdje je možete sačuvati bez njih.",
"Save without them": "Sačuvaj bez njih",
"Saved. Recipients at partner organisations get this change when the owner next saves this secret.": "Sačuvano. Primaoci u partnerskim organizacijama dobit će ovu promjenu kada vlasnik sljedeći put sačuva ovu tajnu.",
Expand Down
2 changes: 2 additions & 0 deletions l10n/bs.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
"This secret is shared with many partner organisations, so the save is waiting for the lookup limit and then continues. Keep this dialog open.": "Ova tajna je podijeljena s mnogo partnerskih organizacija, pa čuvanje čeka na ograničenje upita i zatim se nastavlja. Ne zatvarajte ovaj prozor.",
"Too many partner lookups. Nothing was saved; try again in a minute.": "Previše upita partnerskim organizacijama. Ništa nije sačuvano; pokušajte ponovo za minutu.",
"This version cannot be restored to this secret. Nothing was saved.": "Ova verzija se ne može vratiti za ovu tajnu. Ništa nije sačuvano.",
"Shared with you to view only. Ask its owner for edit rights to change it.": "Podijeljeno s vama samo za pregled. Zatražite od vlasnika prava uređivanja da biste je promijenili.",
"Shared with you to view only. Nothing was saved; ask its owner for edit rights to change it.": "Podijeljeno s vama samo za pregled. Ništa nije sačuvano; zatražite od vlasnika prava uređivanja da biste je promijenili.",
"A partner organisation this secret is shared with cannot be reached ({partners}). Make the change again online, where you can save without them.": "Partnerska organizacija s kojom se dijeli ova tajna nije dostupna ({partners}). Napravite promjenu ponovo dok ste na mreži, gdje je možete sačuvati bez njih.",
"Save without them": "Sačuvaj bez njih",
"Saved. Recipients at partner organisations get this change when the owner next saves this secret.": "Sačuvano. Primaoci u partnerskim organizacijama dobit će ovu promjenu kada vlasnik sljedeći put sačuva ovu tajnu.",
Expand Down
2 changes: 2 additions & 0 deletions l10n/ca.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ OC.L10N.register(
"This secret is shared with many partner organisations, so the save is waiting for the lookup limit and then continues. Keep this dialog open.": "Aquest secret es comparteix amb moltes organitzacions associades, així que el desament espera el límit de consultes i després continua. Mantén aquest diàleg obert.",
"Too many partner lookups. Nothing was saved; try again in a minute.": "Massa consultes a organitzacions associades. No s'ha desat res; torna-ho a provar d'aquí a un minut.",
"This version cannot be restored to this secret. Nothing was saved.": "Aquesta versió no es pot restaurar en aquest secret. No s'ha desat res.",
"Shared with you to view only. Ask its owner for edit rights to change it.": "Compartit amb tu només per veure'l. Demana al propietari permisos d'edició per canviar-lo.",
"Shared with you to view only. Nothing was saved; ask its owner for edit rights to change it.": "Compartit amb tu només per veure'l. No s'ha desat res; demana al propietari permisos d'edició per canviar-lo.",
"A partner organisation this secret is shared with cannot be reached ({partners}). Make the change again online, where you can save without them.": "No es pot contactar amb una organització associada amb qui es comparteix aquest secret ({partners}). Torna a fer el canvi en línia, on pots desar sense ells.",
"Save without them": "Desa sense ells",
"Saved. Recipients at partner organisations get this change when the owner next saves this secret.": "Desat. Els destinataris d'organitzacions associades rebran aquest canvi quan el propietari torni a desar aquest secret.",
Expand Down
Loading
Loading