cleans protocol to check for duplicate alias prior to saving

This commit is contained in:
Cody
2024-01-13 13:09:17 -08:00
committed by GitHub
parent c284edcd81
commit 7744099ee5

View File

@ -812,41 +812,46 @@
} }
} }
private async Task SaveAlias() private async Task SaveAlias()
{ {
if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
{ {
if (!string.IsNullOrEmpty(_aliasname)) if (!string.IsNullOrEmpty(_aliasname))
{ {
var aliases = await AliasService.GetAliasesAsync(); // Remove 'http://' and 'https://' from the alias name
var alias = aliases.Where(item => item.Name == _aliasname).FirstOrDefault(); string cleanedAliasName = _aliasname.Replace("http://", "").Replace("https://", "");
bool unique = (alias == null || alias.AliasId == _aliasid);
if (unique) var aliases = await AliasService.GetAliasesAsync();
{ // Check if the cleaned alias name exists in the database
if (_aliasid == 0) var alias = aliases.Where(item => item.Name == cleanedAliasName).FirstOrDefault();
{ bool unique = (alias == null || alias.AliasId == _aliasid);
alias = new Alias { SiteId = PageState.Site.SiteId, TenantId = PageState.Site.TenantId, Name = _aliasname, IsDefault = bool.Parse(_defaultalias) }; if (unique)
await AliasService.AddAliasAsync(alias); {
} if (_aliasid == 0)
else {
{ alias = new Alias { SiteId = PageState.Site.SiteId, TenantId = PageState.Site.TenantId, Name = cleanedAliasName, IsDefault = bool.Parse(_defaultalias) };
alias = _aliases.Single(item => item.AliasId == _aliasid); await AliasService.AddAliasAsync(alias);
alias.Name = _aliasname; }
alias.IsDefault = bool.Parse(_defaultalias); else
await AliasService.UpdateAliasAsync(alias); {
} alias = _aliases.Single(item => item.AliasId == _aliasid);
} alias.Name = cleanedAliasName;
else // duplicate alias alias.IsDefault = bool.Parse(_defaultalias);
{ await AliasService.UpdateAliasAsync(alias);
AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning); }
} }
} else // duplicate alias
await GetAliases(); {
_aliasid = -1; AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning);
_aliasname = ""; await ScrollToPageTop();
StateHasChanged(); }
} }
} await GetAliases();
_aliasid = -1;
_aliasname = "";
StateHasChanged();
}
}
private async Task CancelAlias() private async Task CancelAlias()
{ {