mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-13 17:23:02 -05:00
Fix user default language handling (#2029)
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user