fix: restrict languages in console (#6964)

* feat: return 404 or 409 if org reg disallowed

* fix: system limit permissions

* feat: add iam limits api

* feat: disallow public org registrations on default instance

* add integration test

* test: integration

* fix test

* docs: describe public org registrations

* avoid updating docs deps

* fix system limits integration test

* silence integration tests

* fix linting

* ignore strange linter complaints

* review

* improve reset properties naming

* redefine the api

* use restrictions aggregate

* test query

* simplify and test projection

* test commands

* fix unit tests

* move integration test

* support restrictions on default instance

* also test GetRestrictions

* self review

* lint

* abstract away resource owner

* fix tests

* configure supported languages

* fix allowed languages

* fix tests

* default lang must not be restricted

* preferred language must be allowed

* change preferred languages

* check languages everywhere

* lint

* test command side

* lint

* add integration test

* add integration test

* restrict supported ui locales

* lint

* lint

* cleanup

* lint

* allow undefined preferred language

* fix integration tests

* update main

* fix env var

* ignore linter

* ignore linter

* improve integration test config

* reduce cognitive complexity

* compile

* fix(console): switch back to saved language

* feat(API): get allowed languages

* fix(console): only make allowed languages selectable

* warn when editing not allowed languages

* check for duplicates

* remove useless restriction checks

* review

* revert restriction renaming

* fix language restrictions

* lint

* generate

* allow custom texts for supported langs for now

* fix tests

* cleanup

* cleanup

* cleanup

* lint

* unsupported preferred lang is allowed

* fix integration test

* allow unsupported preferred languages

* lint

* load languages for tests

* cleanup

* lint

* cleanup

* get allowed only on admin

* cleanup

* reduce flakiness on very limited postgres

* simplify langSvc

* refactor according to suggestions in pr

* lint

* set first allowed language as default

* selectionchange for language in msg texts

* initialize login texts

* init message texts

* lint

---------

Co-authored-by: peintnermax <max@caos.ch>
This commit is contained in:
Elio Bischof
2023-12-07 09:43:23 +01:00
committed by GitHub
parent f09fbf8709
commit 8c85318fbd
46 changed files with 479 additions and 312 deletions

View File

@@ -1255,8 +1255,10 @@
"RESET_DESCRIPTION": "На път сте да възстановите всички стойности по подразбиране. ",
"UNSAVED_TITLE": "Продължаване без запазване?",
"UNSAVED_DESCRIPTION": "Направихте промени без да запазите. ",
"LOCALE": "Локален код",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Избрахте език, който не е разрешен. Можете да продължите да променяте текстовете. Но ако искате вашите потребители да могат да използват този език, променете ограниченията на вашите екземпляри.",
"LANGUAGES_NOT_ALLOWED": "Не е разрешено:",
"LANGUAGE": "Език",
"LANGUAGES": {
"de": "Deutsch",
"en": "Английски",
"es": "Español",

View File

@@ -1262,8 +1262,10 @@
"RESET_DESCRIPTION": "Chystáte se obnovit všechny výchozí hodnoty. Všechny vaše změny budou trvale smazány. Opravdu chcete pokračovat?",
"UNSAVED_TITLE": "Pokračovat bez uložení?",
"UNSAVED_DESCRIPTION": "Provedli jste změny bez uložení. Chcete je nyní uložit?",
"LOCALE": "Kód jazyka",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Vybrali jste jazyk, který není povolen. Můžete pokračovat v úpravách textů. Ale pokud chcete, aby vaši uživatelé mohli tento jazyk skutečně používat, změňte omezení vašich instancí.",
"LANGUAGES_NOT_ALLOWED": "Nepovolené jazyky:",
"LANGUAGE": "Jazyk",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1261,8 +1261,10 @@
"RESET_DESCRIPTION": "Sie sind im Begriff alle Standardwerte wiederherzustellen. Alle von Ihnen gesetzten Änderungen werden unwiderruflich gelöscht. Wollen Sie fortfahren?",
"UNSAVED_TITLE": "Ohne speichern fortfahren?",
"UNSAVED_DESCRIPTION": "Sie haben Änderungen vorgenommen ohne zu speichern. Möchten Sie jetzt speichern?",
"LOCALE": "Sprachcode",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Sie haben eine Sprache ausgewählt, die nicht erlaubt ist. Sie können weiterhin die Texte ändern. Wenn Sie jedoch möchten, dass Ihre Benutzer diese Sprache tatsächlich verwenden können, ändern Sie die Einschränkungen Ihrer Instanz.",
"LANGUAGES_NOT_ALLOWED": "Nicht erlaubt:",
"LANGUAGE": "Sprache",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1262,8 +1262,10 @@
"RESET_DESCRIPTION": "You are about to restore all default values. All changes you have made will be permanently deleted. Do you really want to continue?",
"UNSAVED_TITLE": "Continue without saving?",
"UNSAVED_DESCRIPTION": "You have made changes without saving. Do you want to save now?",
"LOCALE": "Locale Code",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "You selected a language that is not allowed. You can go on modifying the texts. But if you want your users to actually be able to use this language, change your instances restrictions.",
"LANGUAGES_NOT_ALLOWED": "Not allowed:",
"LANGUAGE": "Language",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1262,8 +1262,10 @@
"RESET_DESCRIPTION": "Estás a punto de restaurar todos los valores por defecto. Todos los cambios que has hecho serán borrados permanentemente. ¿Estás seguro de que quieres continuar?",
"UNSAVED_TITLE": "¿Continuar sin guardar?",
"UNSAVED_DESCRIPTION": "Has hecho cambios sin guardar. ¿Quieres guardarlos ahora?",
"LOCALE": "Código de idioma",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Has seleccionado un idioma que no está permitido. Puedes seguir modificando los textos. Pero si quieres que tus usuarios realmente puedan usar este idioma, cambia las restricciones de tus instancias.",
"LANGUAGES_NOT_ALLOWED": "No permitido:",
"LANGUAGE": "Idioma",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1261,8 +1261,10 @@
"RESET_DESCRIPTION": "Vous êtes sur le point de restaurer toutes les valeurs par défaut. Toutes les modifications que vous avez apportées seront définitivement supprimées. Voulez-vous vraiment continuer ?",
"UNSAVED_TITLE": "Continuer sans sauvegarder ?",
"UNSAVED_DESCRIPTION": "Vous avez apporté des modifications sans les sauvegarder. Voulez-vous les enregistrer maintenant ?",
"LOCALE": "Code Locale",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Vous avez sélectionné une langue qui n'est pas autorisée. Vous pouvez continuer à modifier les textes. Mais si vous voulez que vos utilisateurs puissent réellement utiliser cette langue, modifiez les restrictions de vos instances.",
"LANGUAGES_NOT_ALLOWED": "Non autorisé:",
"LANGUAGE": "Langue",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1261,8 +1261,10 @@
"RESET_DESCRIPTION": "Stai per ripristinare tutti i valori predefiniti. Tutte le modifiche che hai fatto saranno cancellate in modo permanente. Vuoi davvero continuare?",
"UNSAVED_TITLE": "Continuare senza salvare?",
"UNSAVED_DESCRIPTION": "Hai fatto delle modifiche senza salvare. Vuoi salvare ora?",
"LOCALE": "Codice locale",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Hai selezionato una lingua non consentita. Puoi continuare a modificare i testi. Ma se vuoi che i tuoi utenti possano effettivamente utilizzare questa lingua, cambia le restrizioni delle tue istanze.",
"LANGUAGE": "Lingua",
"LANGUAGES_NOT_ALLOWED": "Non consentito:",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1257,8 +1257,10 @@
"RESET_DESCRIPTION": "すべてのデフォルト値を復元しようとしています。ユーザーが行ったすべての変更は完全に削除されます。本当によろしいですか?",
"UNSAVED_TITLE": "保存せずに続行しますか?",
"UNSAVED_DESCRIPTION": "あなたは保存せずに変更を加えました。今すぐ保存しますか?",
"LOCALE": "ロケールコード",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "許可されていない言語を選択しました。テキストを変更し続けることはできますが、実際にこの言語を使用できるようにするには、インスタンスの制限を変更してください。",
"LANGUAGES_NOT_ALLOWED": "許可されていない言語:",
"LANGUAGE": "言語",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1263,8 +1263,10 @@
"RESET_DESCRIPTION": "Се подготвувате да ги вратите сите стандардни вредности. Сите промени што ги направивте ќе бидат трајно избришани. Дали сте сигурни дека сакате да продолжите?",
"UNSAVED_TITLE": "Дали сакате да продолжите без зачувување?",
"UNSAVED_DESCRIPTION": "Имате направено промени без зачувување. Дали сакате да ги зачувате сега?",
"LOCALE": "Locale Code",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Избравте јазик кој не е дозволен. Можете да продолжите да ги менувате текстовите. Но, ако сакате вашите корисници да можат да го користат овој јазик, променете ги ограничувањата на вашата инстанца.",
"LANGUAGES_NOT_ALLOWED": "Не е дозволено:",
"LANGUAGE": "Јазик",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1261,9 +1261,11 @@
"RESET_TITLE": "Herstel Standaard Waarden",
"RESET_DESCRIPTION": "U staat op het punt om alle standaardwaarden te herstellen. Alle wijzigingen die u heeft gemaakt zullen permanent worden verwijderd. Weet u zeker dat u wilt doorgaan?",
"UNSAVED_TITLE": "Doorgaan zonder opslaan?",
"UNSAAVED_DESCRIPTION": "U heeft wijzigingen gemaakt zonder op te slaan. Wilt u nu opslaan?",
"LOCALE": "Locale Code",
"LOCALES": {
"UNSAVED_DESCRIPTION": "U heeft wijzigingen gemaakt zonder op te slaan. Wilt u nu opslaan?",
"ACTIVE_LANGUAGE_NOT_ALLOWED": "U heeft een taal geselecteerd die niet is toegestaan. U kunt doorgaan met het wijzigen van de teksten. Maar als u wilt dat uw gebruikers deze taal daadwerkelijk kunnen gebruiken, wijzig dan de beperkingen van uw instantie.",
"LANGUAGES_NOT_ALLOWED": "Niet toegestaan:",
"LANGUAGE": "Taal",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1261,8 +1261,10 @@
"RESET_DESCRIPTION": "Masz zamiar przywrócić domyślne linki dla TOS i polityki prywatności. Czy na pewno chcesz kontynuować?",
"UNSAVED_TITLE": "Kontynuuj bez zapisywania?",
"UNSAVED_DESCRIPTION": "Wprowadziłeś zmiany bez zapisywania. Czy chcesz zapisać teraz?",
"LOCALE": "Kod Języka",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Wybrałeś język, który nie jest dozwolony. Możesz kontynuować modyfikowanie tekstów. Ale jeśli chcesz, aby twoi użytkownicy mogli faktycznie używać tego języka, zmień ograniczenia swoich instancji.",
"LANGUAGES_NOT_ALLOWED": "Niedozwolone:",
"LANGUAGE": "Język",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1263,8 +1263,10 @@
"RESET_DESCRIPTION": "Você está prestes a restaurar todos os valores padrão. Todas as alterações que você fez serão excluídas permanentemente. Deseja realmente continuar?",
"UNSAVED_TITLE": "Continuar sem salvar?",
"UNSAVED_DESCRIPTION": "Você fez alterações sem salvar. Deseja salvar agora?",
"LOCALE": "Código de localidade",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Você selecionou um idioma que não é permitido. Você pode continuar modificando os textos. Mas se deseja que seus usuários realmente possam usar este idioma, altere as restrições de suas instâncias.",
"LANGUAGES_NOT_ALLOWED": "Não permitido:",
"LANGUAGE": "Idioma",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",

View File

@@ -1248,8 +1248,10 @@
"RESET_DESCRIPTION": "Вы собираетесь восстановить все значения по умолчанию. Все внесенные вами изменения будут безвозвратно удалены. Вы действительно хотите продолжить?",
"UNSAVED_TITLE": "Продолжить без сохранения?",
"UNSAVED_DESCRIPTION": "Вы внесли изменения без сохранения. Вы хотите сохранить сейчас?",
"LOCALE": "Код региона",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "Вы выбрали язык, который не разрешен. Вы можете продолжить изменять тексты. Но если вы хотите, чтобы ваши пользователи могли фактически использовать этот язык, измените ограничения ваших экземпляров.",
"LANGUAGES_NOT_ALLOWED": "Не разрешено:",
"LANGUAGE": "Язык",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",
@@ -1261,6 +1263,7 @@
"bg": "Български",
"pt": "Portuguese",
"mk": "Македонски",
"cs": "Čeština",
"ru": "Русский",
"nl": "Nederlands"
},

View File

@@ -1260,8 +1260,10 @@
"RESET_DESCRIPTION": "您即将恢复所有默认值。您所做的所有更改都将被永久删除。你真的要继续吗?",
"UNSAVED_TITLE": "继续但不保存?",
"UNSAVED_DESCRIPTION": "您在未保存的情况下进行了更改。您现在要保存吗?",
"LOCALE": "本地化",
"LOCALES": {
"ACTIVE_LANGUAGE_NOT_ALLOWED": "您选择了不允许的语言。您可以继续修改文本。但是,如果您希望您的用户实际上能够使用此语言,请更改您的实例限制。",
"LANGUAGES_NOT_ALLOWED": "不允许:",
"LANGUAGE": "语言",
"LANGUAGES": {
"de": "Deutsch",
"en": "English",
"es": "Español",