Merge pull request #3649 from thabaum/clean-protocal-save-alias
Cleans protocol to check for duplicate alias prior to saving. Fixes #3647
This commit is contained in:
commit
34f32c8ba5
|
@ -812,41 +812,55 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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();
|
var aliases = await AliasService.GetAliasesAsync();
|
||||||
var alias = aliases.Where(item => item.Name == _aliasname).FirstOrDefault();
|
|
||||||
bool unique = (alias == null || alias.AliasId == _aliasid);
|
int protocolIndex = _aliasname.IndexOf("://", StringComparison.OrdinalIgnoreCase);
|
||||||
if (unique)
|
if (protocolIndex != -1)
|
||||||
{
|
{
|
||||||
if (_aliasid == 0)
|
_aliasname = _aliasname.Substring(protocolIndex + 3);
|
||||||
{
|
}
|
||||||
alias = new Alias { SiteId = PageState.Site.SiteId, TenantId = PageState.Site.TenantId, Name = _aliasname, IsDefault = bool.Parse(_defaultalias) };
|
|
||||||
await AliasService.AddAliasAsync(alias);
|
var alias = aliases.FirstOrDefault(item => item.Name == _aliasname);
|
||||||
}
|
|
||||||
else
|
bool unique = (alias == null || alias.AliasId == _aliasid);
|
||||||
{
|
|
||||||
alias = _aliases.Single(item => item.AliasId == _aliasid);
|
if (unique)
|
||||||
alias.Name = _aliasname;
|
{
|
||||||
alias.IsDefault = bool.Parse(_defaultalias);
|
if (_aliasid == 0)
|
||||||
await AliasService.UpdateAliasAsync(alias);
|
{
|
||||||
}
|
alias = new Alias { SiteId = PageState.Site.SiteId, TenantId = PageState.Site.TenantId, Name = _aliasname, IsDefault = bool.Parse(_defaultalias) };
|
||||||
}
|
await AliasService.AddAliasAsync(alias);
|
||||||
else // duplicate alias
|
}
|
||||||
{
|
else
|
||||||
AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning);
|
{
|
||||||
}
|
alias = _aliases.SingleOrDefault(item => item.AliasId == _aliasid);
|
||||||
}
|
if (alias != null)
|
||||||
await GetAliases();
|
{
|
||||||
_aliasid = -1;
|
alias.Name = _aliasname;
|
||||||
_aliasname = "";
|
alias.IsDefault = bool.Parse(_defaultalias);
|
||||||
StateHasChanged();
|
await AliasService.UpdateAliasAsync(alias);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await GetAliases();
|
||||||
|
_aliasid = -1;
|
||||||
|
_aliasname = "";
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
else // Duplicate alias
|
||||||
|
{
|
||||||
|
AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning);
|
||||||
|
await ScrollToPageTop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async Task CancelAlias()
|
private async Task CancelAlias()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user