fix(settings): fix for setting restricted languages (#9947)

# Which Problems Are Solved

Zitadel encounters a migration error when setting `restricted languages`
and fails to start.

# How the Problems Are Solved

The problem is that there is a check that checks that at least one of
the restricted languages is the same as the `default language`, however,
in the `authz instance` (where the default language is pulled form) is
never set.

I've added code to set the `default language` in the `authz instance` 

# Additional Context

- Closes https://github.com/zitadel/zitadel/issues/9787

---------

Co-authored-by: Livio Spring <livio.a@gmail.com>
This commit is contained in:
Iraq
2025-06-02 10:40:19 +02:00
committed by GitHub
parent b660d6ab9a
commit b46c41e4bf
3 changed files with 52 additions and 39 deletions

View File

@@ -9,9 +9,7 @@ import (
"github.com/zitadel/zitadel/internal/feature"
)
var (
emptyInstance = &instance{}
)
var emptyInstance = &instance{}
type Instance interface {
InstanceID() string
@@ -33,13 +31,13 @@ type InstanceVerifier interface {
}
type instance struct {
id string
domain string
projectID string
appID string
clientID string
orgID string
features feature.Features
id string
projectID string
appID string
clientID string
orgID string
defaultLanguage language.Tag
features feature.Features
}
func (i *instance) Block() *bool {
@@ -67,7 +65,7 @@ func (i *instance) ConsoleApplicationID() string {
}
func (i *instance) DefaultLanguage() language.Tag {
return language.Und
return i.defaultLanguage
}
func (i *instance) DefaultOrganisationID() string {
@@ -106,6 +104,16 @@ func WithInstanceID(ctx context.Context, id string) context.Context {
return context.WithValue(ctx, instanceKey, &instance{id: id})
}
func WithDefaultLanguage(ctx context.Context, defaultLanguage language.Tag) context.Context {
i, ok := ctx.Value(instanceKey).(*instance)
if !ok {
i = new(instance)
}
i.defaultLanguage = defaultLanguage
return context.WithValue(ctx, instanceKey, i)
}
func WithConsole(ctx context.Context, projectID, appID string) context.Context {
i, ok := ctx.Value(instanceKey).(*instance)
if !ok {