Fix user default language handling (#2029)

This commit is contained in:
Karl Burtram
2023-04-22 08:38:51 -07:00
committed by GitHub
parent c5cdc4712a
commit 175f530403
2 changed files with 17 additions and 14 deletions

View File

@@ -124,11 +124,11 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
{ {
this.password = DatabaseUtils.GetReadOnlySecureString(userInfo.Password); this.password = DatabaseUtils.GetReadOnlySecureString(userInfo.Password);
} }
if (!string.IsNullOrEmpty(userInfo.DefaultLanguage)
this.defaultLanguageAlias = (!string.IsNullOrEmpty(userInfo.DefaultLanguage)
&& string.Compare(userInfo.DefaultLanguage, SR.DefaultLanguagePlaceholder, StringComparison.Ordinal) != 0) && string.Compare(userInfo.DefaultLanguage, SR.DefaultLanguagePlaceholder, StringComparison.Ordinal) != 0)
{ ? LanguageUtils.GetLanguageAliasFromDisplayText(userInfo.DefaultLanguage) : string.Empty;
this.defaultLanguageAlias = LanguageUtils.GetLanguageAliasFromDisplayText(userInfo.DefaultLanguage);
}
this.userType = UserPrototypeData.GetUserTypeFromUserInfo(userInfo); this.userType = UserPrototypeData.GetUserTypeFromUserInfo(userInfo);
} }

View File

@@ -126,14 +126,6 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
bool isSqlAzure = serverConnection.DatabaseEngineType == DatabaseEngineType.SqlAzureDatabase; bool isSqlAzure = serverConnection.DatabaseEngineType == DatabaseEngineType.SqlAzureDatabase;
bool supportsContainedUser = isSqlAzure || UserActions.IsParentDatabaseContained(parentDb); bool supportsContainedUser = isSqlAzure || UserActions.IsParentDatabaseContained(parentDb);
// set default alias to <default> if needed
if (string.IsNullOrEmpty(defaultLanguageAlias)
&& supportsContainedUser
&& LanguageUtils.IsDefaultLanguageSupported(dataContainer.Server))
{
defaultLanguageAlias = SR.DefaultLanguagePlaceholder;
}
// set the fake password placeholder when editing an existing user // set the fake password placeholder when editing an existing user
string password = null; string password = null;
IUserPrototypeWithPassword userWithPwdPrototype = currentUserPrototype as IUserPrototypeWithPassword; IUserPrototypeWithPassword userWithPwdPrototype = currentUserPrototype as IUserPrototypeWithPassword;
@@ -172,6 +164,18 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
} }
} }
string defaultLanguage = null;
if (!parameters.IsNewObject)
{
defaultLanguage = LanguageUtils.FormatLanguageDisplay(
languageOptions.FirstOrDefault(
o => o?.Language.Name == defaultLanguageAlias || o?.Language.Alias == defaultLanguageAlias, null));
}
if (string.IsNullOrEmpty(defaultLanguage))
{
defaultLanguage = SR.DefaultLanguagePlaceholder;
}
UserViewInfo userViewInfo = new UserViewInfo() UserViewInfo userViewInfo = new UserViewInfo()
{ {
ObjectInfo = new UserInfo() ObjectInfo = new UserInfo()
@@ -184,8 +188,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
DefaultSchema = defaultSchema, DefaultSchema = defaultSchema,
OwnedSchemas = schemaNames.ToArray(), OwnedSchemas = schemaNames.ToArray(),
DatabaseRoles = databaseRoles.ToArray(), DatabaseRoles = databaseRoles.ToArray(),
DefaultLanguage = LanguageUtils.FormatLanguageDisplay( DefaultLanguage = defaultLanguage
languageOptions.FirstOrDefault(o => o?.Language.Name == defaultLanguageAlias || o?.Language.Alias == defaultLanguageAlias, null)),
}, },
SupportContainedUser = supportsContainedUser, SupportContainedUser = supportsContainedUser,
SupportWindowsAuthentication = false, SupportWindowsAuthentication = false,