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

@@ -221,7 +221,7 @@ func (c *Commands) SetUpInstance(ctx context.Context, setup *InstanceSetup) (str
if err := setup.generateIDs(c.idGenerator); err != nil {
return "", "", nil, nil, err
}
ctx = contextWithInstanceSetupInfo(ctx, setup.zitadel.instanceID, setup.zitadel.projectID, setup.zitadel.consoleAppID, c.externalDomain)
ctx = contextWithInstanceSetupInfo(ctx, setup.zitadel.instanceID, setup.zitadel.projectID, setup.zitadel.consoleAppID, c.externalDomain, setup.DefaultLanguage)
validations, pat, machineKey, err := setUpInstance(ctx, c, setup)
if err != nil {
@@ -255,19 +255,22 @@ func (c *Commands) SetUpInstance(ctx context.Context, setup *InstanceSetup) (str
return setup.zitadel.instanceID, token, machineKey, details, nil
}
func contextWithInstanceSetupInfo(ctx context.Context, instanceID, projectID, consoleAppID, externalDomain string) context.Context {
return authz.WithConsole(
authz.SetCtxData(
http.WithRequestedHost(
authz.WithInstanceID(
ctx,
instanceID),
externalDomain,
func contextWithInstanceSetupInfo(ctx context.Context, instanceID, projectID, consoleAppID, externalDomain string, defaultLanguage language.Tag) context.Context {
return authz.WithDefaultLanguage(
authz.WithConsole(
authz.SetCtxData(
http.WithRequestedHost(
authz.WithInstanceID(
ctx,
instanceID),
externalDomain,
),
authz.CtxData{ResourceOwner: instanceID},
),
authz.CtxData{ResourceOwner: instanceID},
projectID,
consoleAppID,
),
projectID,
consoleAppID,
defaultLanguage,
)
}