diff --git a/api4/hosted_customer.go b/api4/hosted_customer.go index ae11514ae4..9c76b33efc 100644 --- a/api4/hosted_customer.go +++ b/api4/hosted_customer.go @@ -217,7 +217,11 @@ func handleSignupAvailable(c *Context, w http.ResponseWriter, r *http.Request) { return } if err := c.App.Cloud().SelfHostedSignupAvailable(); err != nil { - c.Err = model.NewAppError(where, "api.server.hosted_signup_unavailable.error", nil, "", http.StatusNotImplemented) + if err.Error() == "upstream_off" { + c.Err = model.NewAppError(where, "api.server.hosted_signup_unavailable.error", nil, "", http.StatusServiceUnavailable) + } else { + c.Err = model.NewAppError(where, "api.server.hosted_signup_unavailable.error", nil, "", http.StatusNotImplemented) + } return } diff --git a/app/group.go b/app/group.go index a01b369e41..507a56072e 100644 --- a/app/group.go +++ b/app/group.go @@ -6,7 +6,6 @@ package app import ( "encoding/json" "errors" - "fmt" "net/http" "github.com/mattermost/mattermost-server/v6/model" @@ -117,7 +116,7 @@ func (a *App) isUniqueToUsernames(val string) *model.AppError { return model.NewAppError("isUniqueToUsernames", model.NoTranslation, nil, "", http.StatusInternalServerError).Wrap(err) } if user != nil { - return model.NewAppError("isUniqueToUsernames", model.NoTranslation, nil, fmt.Sprintf("user name %s exists", val), http.StatusBadRequest) + return model.NewAppError("isUniqueToUsernames", "app.group.username_conflict", map[string]interface{}{"Username": val}, "", http.StatusBadRequest) } return nil } diff --git a/app/group_test.go b/app/group_test.go index 4419eff777..fb53d3e637 100644 --- a/app/group_test.go +++ b/app/group_test.go @@ -84,16 +84,19 @@ func TestCreateGroup(t *testing.T) { require.NotNil(t, err) require.Nil(t, g) - user := th.CreateUser() - usernameGroup := &model.Group{ - DisplayName: "dn_" + model.NewId(), - Name: &user.Username, - Source: model.GroupSourceLdap, - RemoteId: model.NewString(model.NewId()), - } - g, err = th.App.CreateGroup(usernameGroup) - require.NotNil(t, err) - require.Nil(t, g) + t.Run("should check if the group mention is in use as a username", func(t *testing.T) { + user := th.CreateUser() + usernameGroup := &model.Group{ + DisplayName: "dn_" + model.NewId(), + Name: &user.Username, + Source: model.GroupSourceLdap, + RemoteId: model.NewString(model.NewId()), + } + g, err = th.App.CreateGroup(usernameGroup) + require.NotNil(t, err) + require.Equal(t, "app.group.username_conflict", err.Id) + require.Nil(t, g) + }) } func TestUpdateGroup(t *testing.T) { diff --git a/build/Dockerfile b/build/Dockerfile index de0d18800b..dbf1619dd2 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -8,7 +8,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] ENV PATH="/mattermost/bin:${PATH}" ARG PUID=2000 ARG PGID=2000 -ARG MM_PACKAGE="https://releases.mattermost.com/7.7.0/mattermost-7.7.0-linux-amd64.tar.gz?src=docker" +ARG MM_PACKAGE="https://releases.mattermost.com/7.7.1/mattermost-7.7.1-linux-amd64.tar.gz?src=docker" # # Install needed packages and indirect dependencies RUN apt-get update \ diff --git a/i18n/de.json b/i18n/de.json index ed0aa7e5da..8ee5e0a0ca 100644 --- a/i18n/de.json +++ b/i18n/de.json @@ -9733,5 +9733,41 @@ { "id": "ent.elasticsearch.create_client.ca_cert_malformed", "translation": "Dekodierung der CA für Elasticsearch fehlgeschlagen" + }, + { + "id": "api.server.cws.health_check.app_error", + "translation": "CWS Server ist nicht verfügbar." + }, + { + "id": "api.license.true_up_review.webhook_out_count_fail", + "translation": "Die Gesamtzahl der ausgehenden Webhooks konnte nicht ermittelt werden" + }, + { + "id": "api.license.true_up_review.webhook_in_count_fail", + "translation": "Die Gesamtzahl der eingehenden Webhooks konnte nicht ermittelt werden" + }, + { + "id": "api.license.true_up_review.user_count_fail", + "translation": "Die Gesamtzahl der aktiven Benutzer konnte nicht ermittelt werden" + }, + { + "id": "api.license.true_up_review.not_allowed_for_cloud", + "translation": "True Up Review ist für Cloud-Instanzen nicht erlaubt" + }, + { + "id": "api.license.true_up_review.license_required", + "translation": "True up review erfordert eine Lizenz" + }, + { + "id": "api.license.true_up_review.get_status_error", + "translation": "Konnte keine True-Up-Status-Datensätze abrufen" + }, + { + "id": "api.license.true_up_review.create_error", + "translation": "Konnte keinen True-Up-Status-Datensatz erstellen" + }, + { + "id": "api.templates.delinquency_45.subtitle2", + "translation": "Ein herabgestufter Arbeitsbereich kann sich negativ auf kritische Arbeitsabläufe und andere geschäftskritische Aktivitäten auswirken, die in deinem Arbeitsbereich durchgeführt werden." } ] diff --git a/i18n/en.json b/i18n/en.json index 5ce385139d..da4d987d34 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -5163,6 +5163,10 @@ "id": "app.group.uniqueness_error", "translation": "group member already exists" }, + { + "id": "app.group.username_conflict", + "translation": "user with username \"{{.Username}}\" already exists." + }, { "id": "app.import.attachment.bad_file.error", "translation": "Error reading the file at: \"{{.FilePath}}\"" diff --git a/i18n/en_AU.json b/i18n/en_AU.json index dbac18fc84..d303407152 100644 --- a/i18n/en_AU.json +++ b/i18n/en_AU.json @@ -9701,5 +9701,69 @@ { "id": "ent.elasticsearch.create_client.ca_cert_malformed", "translation": "Decoding of the CA for Elasticsearch failed" + }, + { + "id": "app.worktemplates.get_templates.app_error", + "translation": "Unable to retrieve work templates" + }, + { + "id": "app.worktemplates.get_categories.app_error", + "translation": "Unable to retrieve categories for work templates" + }, + { + "id": "app.channel.count_urgent_posts_since.app_error", + "translation": "Unable to enumerate urgent posts since the given date." + }, + { + "id": "app.acknowledgement.save.save.app_error", + "translation": "Unable to save post acknowledgement." + }, + { + "id": "app.acknowledgement.getforpost.get.app_error", + "translation": "Unable to retrieve post acknowledgement." + }, + { + "id": "app.acknowledgement.get.app_error", + "translation": "Unable to retrieve acknowledgement." + }, + { + "id": "api.server.cws.health_check.app_error", + "translation": "The CWS Server is unavailable." + }, + { + "id": "api.license.true_up_review.webhook_out_count_fail", + "translation": "Could not retrieve the total number of outgoing webhooks" + }, + { + "id": "api.license.true_up_review.webhook_in_count_fail", + "translation": "Could not retrieve the total number of incoming webhooks" + }, + { + "id": "api.license.true_up_review.user_count_fail", + "translation": "Could not retrieve the total number of active users" + }, + { + "id": "api.license.true_up_review.not_allowed_for_cloud", + "translation": "True up review is not allowed for cloud instances" + }, + { + "id": "api.license.true_up_review.license_required", + "translation": "True up review requires a licence" + }, + { + "id": "api.license.true_up_review.get_status_error", + "translation": "Could not retrieve true up status records" + }, + { + "id": "api.license.true_up_review.create_error", + "translation": "Could not create true up status record" + }, + { + "id": "api.draft.create_draft.can_not_draft_to_deleted.error", + "translation": "Cannot save a draft to a deleted channel" + }, + { + "id": "api.acknowledgement.delete.deadline.app_error", + "translation": "You cannot delete an acknowledgment after 5 minutes has elapsed." } ] diff --git a/i18n/ja.json b/i18n/ja.json index b64ded05a2..fda0e9722b 100644 --- a/i18n/ja.json +++ b/i18n/ja.json @@ -9726,5 +9726,25 @@ { "id": "ent.elasticsearch.create_client.ca_cert_malformed", "translation": "Elasticsearch用CAのデコードに失敗しました" + }, + { + "id": "api.templates.delinquency_45.subtitle2", + "translation": "ワークスペースがダウングレードされると、ワークスペースで実行されている重要なワークフロー、その他のビジネス上の重要な活動に悪影響を与える可能性があります。" + }, + { + "id": "api.server.cws.health_check.app_error", + "translation": "CWSサーバーは使用できません。" + }, + { + "id": "api.license.true_up_review.webhook_out_count_fail", + "translation": "外向きのウェブフックの総数を取得できませんでした" + }, + { + "id": "api.license.true_up_review.webhook_in_count_fail", + "translation": "内向きのウェブフックの総数を取得できませんでした" + }, + { + "id": "api.license.true_up_review.user_count_fail", + "translation": "総アクティブユーザー数を取得できませんでした" } ] diff --git a/i18n/nl.json b/i18n/nl.json index 7475f9ab21..b77b988a2e 100644 --- a/i18n/nl.json +++ b/i18n/nl.json @@ -9416,7 +9416,7 @@ }, { "id": "api.templates.delinquency_75.subtitle1", - "translation": "Dit is de laatste herinnering dat we geen betaling hebben ontvangen voor jouw Mattermost Cloud-werkruimte sinds {{.DelinquencyDate}}" + "translation": "Dit is de laatste herinnering dat we geen betaling hebben ontvangen voor jouw Mattermost Cloud-workspace sinds {{.DelinquencyDate}}." }, { "id": "api.templates.delinquency_75.subject", @@ -9733,5 +9733,41 @@ { "id": "ent.elasticsearch.create_client.ca_cert_malformed", "translation": "Decodering van de CA voor Elasticsearch is mislukt" + }, + { + "id": "api.license.true_up_review.not_allowed_for_cloud", + "translation": "True up-review is niet toegestaan voor cloud-instances" + }, + { + "id": "api.license.true_up_review.license_required", + "translation": "True up-review vereist een licentie" + }, + { + "id": "api.license.true_up_review.get_status_error", + "translation": "Kon geen true up statusrecords krijgen" + }, + { + "id": "api.license.true_up_review.create_error", + "translation": "Kon geen true up statusrecord aanmaken" + }, + { + "id": "api.templates.delinquency_45.subtitle2", + "translation": "Een gedowngrade workspace kan een negatieve invloed hebben op kritische workflows en andere activiteiten die op je workspace worden verricht." + }, + { + "id": "api.server.cws.health_check.app_error", + "translation": "CWS Server is niet beschikbaar." + }, + { + "id": "api.license.true_up_review.webhook_out_count_fail", + "translation": "Fout bij het ophalen van het totaal aantal uitgaande webhooks" + }, + { + "id": "api.license.true_up_review.webhook_in_count_fail", + "translation": "Fout bij het ophalen van het totaal aantal inkomende webhooks" + }, + { + "id": "api.license.true_up_review.user_count_fail", + "translation": "Fout bij het ophalen van het totaal aantal actieve gebruikers" } ] diff --git a/i18n/pl.json b/i18n/pl.json index 4c3e376ce2..32dccb736a 100644 --- a/i18n/pl.json +++ b/i18n/pl.json @@ -9734,5 +9734,41 @@ { "id": "ent.elasticsearch.create_client.ca_cert_malformed", "translation": "Dekodowanie CA dla Elasticsearch nie powiodło się" + }, + { + "id": "api.server.cws.health_check.app_error", + "translation": "Serwer CWS nie jest dostępny." + }, + { + "id": "api.license.true_up_review.webhook_out_count_fail", + "translation": "Nie można uzyskać całkowitej liczby wychodzących webhooków" + }, + { + "id": "api.license.true_up_review.webhook_in_count_fail", + "translation": "Nie można uzyskać całkowitej liczby przychodzących webhooków" + }, + { + "id": "api.license.true_up_review.user_count_fail", + "translation": "Nie można uzyskać całkowitej liczby aktywnych użytkowników" + }, + { + "id": "api.license.true_up_review.not_allowed_for_cloud", + "translation": "Przegląd True up nie jest dozwolony dla instancji w chmurze" + }, + { + "id": "api.license.true_up_review.license_required", + "translation": "Prawdziwy przegląd wymaga licencji" + }, + { + "id": "api.license.true_up_review.get_status_error", + "translation": "Nie można uzyskać prawdziwych zapisów statusu" + }, + { + "id": "api.license.true_up_review.create_error", + "translation": "Nie można utworzyć rekordu statusu true up" + }, + { + "id": "api.templates.delinquency_45.subtitle2", + "translation": "Zdegradowane miejsce pracy może mieć negatywny wpływ na krytyczne przepływy pracy i inne krytyczne działania biznesowe wykonywane w miejscu pracy." } ] diff --git a/i18n/ru.json b/i18n/ru.json index 545e60ad8d..2e6e68a893 100644 --- a/i18n/ru.json +++ b/i18n/ru.json @@ -9734,5 +9734,41 @@ { "id": "ent.elasticsearch.create_client.ca_cert_malformed", "translation": "Расшифровка CA для Elasticsearch не удалась" + }, + { + "id": "api.server.cws.health_check.app_error", + "translation": "Сервер CWS не доступен." + }, + { + "id": "api.license.true_up_review.webhook_out_count_fail", + "translation": "Не удалось получить общее количество исходящих вебхуков" + }, + { + "id": "api.license.true_up_review.webhook_in_count_fail", + "translation": "Не удалось получить общее количество входящих вебхуков" + }, + { + "id": "api.license.true_up_review.user_count_fail", + "translation": "Не удалось получить общее количество активных пользователей" + }, + { + "id": "api.license.true_up_review.not_allowed_for_cloud", + "translation": "Для облачных экземпляров не допускается пересмотр в сторону увеличения" + }, + { + "id": "api.license.true_up_review.license_required", + "translation": "Для проверки достоверности требуется лицензия" + }, + { + "id": "api.license.true_up_review.get_status_error", + "translation": "Не удалось получить запись истинного состояния" + }, + { + "id": "api.license.true_up_review.create_error", + "translation": "Не удалось создать запись истинного состояния" + }, + { + "id": "api.templates.delinquency_45.subtitle2", + "translation": "Пониженное рабочее пространство может негативно повлиять на критически важные рабочие процессы, интеграции и другие важные для бизнеса действия, выполняемые в вашем рабочем пространстве." } ] diff --git a/i18n/sv.json b/i18n/sv.json index 740243a138..d3cf70c2e2 100644 --- a/i18n/sv.json +++ b/i18n/sv.json @@ -885,7 +885,7 @@ }, { "id": "model.channel.is_valid.name.app_error", - "translation": "Ogiltigt kanalnamn. Användarnamn är inte tillåtna i kanalnamn, förutom i namn på direktmeddelandekanaler." + "translation": "Kanalnamnet kan inte vara i hexadecimal-format. Ange ett annat kanalnamn." }, { "id": "model.channel.is_valid.id.app_error", @@ -9713,5 +9713,61 @@ { "id": "api.server.hosted_signup_unavailable.error", "translation": "Portalen är inte tillgänglig för egen-hostad registrering." + }, + { + "id": "ent.elasticsearch.create_client.client_key_missing", + "translation": "Kunde inte öppna nyckelfilen för klientcertifikatet för Elasticsearch" + }, + { + "id": "ent.elasticsearch.create_client.client_cert_missing", + "translation": "Kunde inte öppna klientcertifikatfilen för Elasticsearch" + }, + { + "id": "ent.elasticsearch.create_client.client_cert_malformed", + "translation": "Avkodningen av klientcertifikatet för Elasticsearch misslyckades" + }, + { + "id": "ent.elasticsearch.create_client.ca_cert_missing", + "translation": "Kunde inte öppna CA-filen för Elasticsearch" + }, + { + "id": "ent.elasticsearch.create_client.ca_cert_malformed", + "translation": "Avkodningen av CA för Elasticsearch misslyckades" + }, + { + "id": "api.templates.delinquency_45.subtitle2", + "translation": "En nedgraderad arbetsyta kan få negativ påverkan på dina kritiska arbetsflöden och andra affärskritiska aktiviteter som utförs på arbetsytan." + }, + { + "id": "api.server.cws.health_check.app_error", + "translation": "CWS Server är inte tillgänglig." + }, + { + "id": "api.license.true_up_review.webhook_out_count_fail", + "translation": "Det gick inte att få fram totala antalet utgående webhooks" + }, + { + "id": "api.license.true_up_review.webhook_in_count_fail", + "translation": "Det gick inte att få fram totala antalet inkommande webhooks" + }, + { + "id": "api.license.true_up_review.user_count_fail", + "translation": "Det gick inte att få fram antalet aktiva användare" + }, + { + "id": "api.license.true_up_review.not_allowed_for_cloud", + "translation": "True up-granskning är inte tillåten för cloud-instanser" + }, + { + "id": "api.license.true_up_review.license_required", + "translation": "True up-granskning kräver en licens" + }, + { + "id": "api.license.true_up_review.get_status_error", + "translation": "Det gick inte att hämta en statuspost för true up" + }, + { + "id": "api.license.true_up_review.create_error", + "translation": "Det gick inte att skapa en statuspost för true up" } ] diff --git a/i18n/tr.json b/i18n/tr.json index e0e927aa44..965065e957 100644 --- a/i18n/tr.json +++ b/i18n/tr.json @@ -5405,7 +5405,7 @@ }, { "id": "model.channel.is_valid.name.app_error", - "translation": "Kanal adı geçersiz. Doğrudan olmayan ileti kanallarında, kanal adı içinde kullanıcı kodları kullanılamaz." + "translation": "Kanal adları onaltılık biçimde olamaz. Lütfen başka bir kanal adı yazın." }, { "id": "model.config.is_valid.bleve_search.enable_autocomplete.app_error", @@ -9713,5 +9713,61 @@ { "id": "api.server.hosted_signup_unavailable.error", "translation": "Portal kişisel barındırma hesabı açmak için kullanılamaz." + }, + { + "id": "ent.elasticsearch.create_client.client_key_missing", + "translation": "Elasticsearch için istemci anahtar dosyası açılamadı" + }, + { + "id": "ent.elasticsearch.create_client.client_cert_missing", + "translation": "Elasticsearch için istemci sertifika dosyası açılamadı" + }, + { + "id": "ent.elasticsearch.create_client.client_cert_malformed", + "translation": "Elasticsearch için istemci sertifikasının kodu çözülemedi" + }, + { + "id": "ent.elasticsearch.create_client.ca_cert_missing", + "translation": "Elasticsearch için CA dosyası açılamadı" + }, + { + "id": "ent.elasticsearch.create_client.ca_cert_malformed", + "translation": "Elasticsearch için CA kodu çözülemedi" + }, + { + "id": "api.server.cws.health_check.app_error", + "translation": "CWS sunucusu kullanılamıyor." + }, + { + "id": "api.license.true_up_review.webhook_out_count_fail", + "translation": "Toplam giden web bağlantısı sayısı alınamadı" + }, + { + "id": "api.license.true_up_review.webhook_in_count_fail", + "translation": "Toplam gelen web bağlantısı sayısı alınamadı" + }, + { + "id": "api.license.true_up_review.user_count_fail", + "translation": "Toplam etkin kullanıcı sayısı alınamadı" + }, + { + "id": "api.license.true_up_review.not_allowed_for_cloud", + "translation": "Bulut kopyalarında lisans artırımı değerlendirmesi yapılamaz" + }, + { + "id": "api.license.true_up_review.license_required", + "translation": "Lisans artırımı değerlendirmesi için bir lisans gereklidir" + }, + { + "id": "api.license.true_up_review.get_status_error", + "translation": "Lisans artırımı durumu kayıtları alınamadı" + }, + { + "id": "api.license.true_up_review.create_error", + "translation": "Lisans artırımı durumu kaydı oluşturulamadı" + }, + { + "id": "api.templates.delinquency_45.subtitle2", + "translation": "Alt tarifeye geçirilmiş bir çalışma alanında, yürütülen kritik iş akışları, bütünleştirmeler ve iş açısından önemli diğer işlemler olumsuz etkilenebilir." } ] diff --git a/i18n/zh-TW.json b/i18n/zh-TW.json index caedf2787b..780ee87973 100644 --- a/i18n/zh-TW.json +++ b/i18n/zh-TW.json @@ -7330,5 +7330,41 @@ { "id": "api.admin.saml.failure_reset_authdata_to_email.app_error", "translation": "無法寄出重設AuthData欄位失敗的電子郵件。" + }, + { + "id": "api.command_remote.fetch_status.error", + "translation": "無法取得安全連線: {{.Error}}" + }, + { + "id": "api.command_remote.encrypt_invitation.error", + "translation": "無法加密邀請: {{.Error}}" + }, + { + "id": "api.command_remote.displayname.hint", + "translation": "安全連線的顯示名稱" + }, + { + "id": "api.command_remote.displayname.help", + "translation": "安全連線顯示名稱" + }, + { + "id": "api.command_remote.decode_invitation.error", + "translation": "無法解析邀請碼: {{.Error}}" + }, + { + "id": "api.command_remote.cluster_removed", + "translation": "安全連線 {{.RemoteId}} {{.Result}}。" + }, + { + "id": "api.command_remote.incorrect_password.error", + "translation": "無法解密邀請。密碼錯誤或邀請損毀: {{.Error}}" + }, + { + "id": "api.command_remote.hint", + "translation": "[動作]" + }, + { + "id": "api.command_remote.invitation.help", + "translation": "來自安全連線的邀請" } ]