audiobookshelf/client/strings
zriddle 464b720d9e Add canStream user permission to control streaming access
Adds a per-user "Can Stream" permission mirroring the existing "Can Download"
pattern. Server admins can now disable streaming for specific users, encouraging
local downloads instead. Addresses #2572.

Changes:
- User model: stream permission in mapping, defaults, and getter
- ApiKey model: stream permission in defaults
- Controller: 403 enforcement on playback session creation endpoints
- Frontend: permission toggle in admin UI, play button gated by canStream,
  download button shown when streaming disabled, message when neither allowed
- Tests: 11 Mocha tests (model + controller), 1 Cypress test (card UI)
- Localization: English strings for toggle label and fallback message

The getter uses !== false (rather than !!) so existing users without the
stream key in their permissions JSON default to allowed on upgrade.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:12:08 -06:00
..
ar.json Translated using Weblate (Arabic) 2025-12-12 23:24:17 +00:00
be.json Translated using Weblate (Belarusian) 2026-03-18 23:01:28 +01:00
bg.json Translated using Weblate (Bulgarian) 2025-12-12 23:24:19 +00:00
bn.json Translated using Weblate (Bengali) 2025-11-10 23:37:16 +01:00
ca.json Translated using Weblate (Catalan) 2026-02-03 20:10:06 +01:00
cs.json Translated using Weblate (Czech) 2026-03-08 23:26:09 +01:00
da.json Translated using Weblate (Danish) 2026-02-02 08:02:19 +00:00
de.json Translated using Weblate (German) 2026-03-18 23:01:29 +01:00
el.json Translated using Weblate (Greek) 2026-03-08 23:26:10 +01:00
en-us.json Add canStream user permission to control streaming access 2026-04-02 14:12:08 -06:00
es.json Translated using Weblate (Spanish) 2026-03-18 23:01:31 +01:00
et.json Translated using Weblate (Estonian) 2025-11-10 23:37:16 +01:00
eu.json Added translation using Weblate (Basque) 2025-08-25 21:50:29 +00:00
fa.json Translated using Weblate (Persian) 2025-10-03 21:43:18 +00:00
fi.json Translated using Weblate (Finnish) 2025-12-23 23:44:37 +01:00
fr.json Translated using Weblate (French) 2026-03-18 23:01:27 +01:00
gu.json Translated using Weblate (Gujarati) 2025-07-09 19:54:28 +00:00
he.json Translated using Weblate (Hebrew) 2026-02-02 08:02:26 +00:00
hi.json Translated using Weblate (Hindi) 2025-08-10 22:26:29 +00:00
hr.json Translated using Weblate (Croatian) 2026-03-08 23:26:09 +01:00
hu.json Translated using Weblate (Hungarian) 2026-03-08 23:26:09 +01:00
is.json Added translation using Weblate (Icelandic) 2025-11-29 23:26:53 +01:00
it.json Translated using Weblate (Italian) 2026-02-02 08:02:15 +00:00
ja.json Translated using Weblate (Japanese) 2026-03-08 23:26:09 +01:00
ko.json Translated using Weblate (Korean) 2025-12-12 23:24:17 +00:00
lt.json Translated using Weblate (Lithuanian) 2026-02-02 08:02:22 +00:00
nl.json Translated using Weblate (Dutch) 2025-08-25 21:50:31 +00:00
no.json Translated using Weblate (Norwegian Bokmål) 2026-03-08 23:26:10 +01:00
pl.json Translated using Weblate (Polish) 2026-03-08 23:26:10 +01:00
pt-br.json Translated using Weblate (Portuguese (Brazil)) 2026-03-08 23:26:09 +01:00
ro.json Translated using Weblate (Romanian) 2026-03-08 23:26:09 +01:00
ru.json Translated using Weblate (Russian) 2025-12-23 23:44:37 +01:00
sk.json Translated using Weblate (Slovak) 2026-03-08 23:26:10 +01:00
sl.json Translated using Weblate (Slovenian) 2026-03-08 23:26:10 +01:00
sv.json Translated using Weblate (Swedish) 2026-03-08 23:26:09 +01:00
tr.json Translated using Weblate (Turkish) 2026-02-02 08:02:24 +00:00
uk.json Translated using Weblate (Ukrainian) 2025-11-29 23:26:41 +01:00
vi-vn.json Translated using Weblate (Vietnamese) 2025-08-20 22:45:24 +00:00
zh-cn.json Translated using Weblate (Chinese (Simplified Han script)) 2026-02-02 08:02:25 +00:00
zh-tw.json Remove old unused i18n strings 2025-03-12 17:22:12 -05:00