alias management improvements
This commit is contained in:
		| @ -158,7 +158,7 @@ | ||||
|                 </div> | ||||
|             </div> | ||||
|         </Section> | ||||
|         @if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) | ||||
|         @if (_aliases != null && UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) | ||||
|         { | ||||
| 			<Section Name="Aliases" Heading="Aliases" ResourceKey="Aliases"> | ||||
|                 <div class="container"> | ||||
| @ -172,7 +172,7 @@ | ||||
| 						<Label Class="col-sm-3" For="defaultalias" HelpText="The default alias for the site. Requests for non-default aliases will be redirected to the default alias." ResourceKey="DefaultAlias">Default Alias: </Label> | ||||
| 						<div class="col-sm-9"> | ||||
|                             <select id="defaultalias" class="form-select" @bind="@_defaultalias" required> | ||||
| 								@foreach (string name in _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) | ||||
| 								@foreach (string name in _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(sValue => sValue.Trim()).ToArray()) | ||||
| 								{ | ||||
| 									<option value="@name">@name</option> | ||||
| 								} | ||||
| @ -395,18 +395,20 @@ | ||||
| 			{ | ||||
| 				if (_name != string.Empty && _urls != string.Empty && _themetype != "-" && _containertype != "-") | ||||
| 				{ | ||||
| 					_urls = Regex.Replace(_urls, @"\r\n?|\n", ","); // convert line breaks to commas | ||||
| 					var unique = true; | ||||
| 					if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) | ||||
| 					{ | ||||
| 						_urls = Regex.Replace(_urls, @"\r\n?|\n", ","); // convert line breaks to commas | ||||
| 						var aliases = await AliasService.GetAliasesAsync(); | ||||
| 						foreach (string name in _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(sValue => sValue.Trim()).ToArray()) | ||||
| 						{ | ||||
| 							var alias = _aliases.Where(item => item.Name == name).FirstOrDefault(); | ||||
| 							var alias = aliases.Where(item => item.Name == name).FirstOrDefault(); | ||||
| 							if (alias != null && unique) | ||||
| 							{ | ||||
| 								unique = (alias.TenantId == PageState.Site.TenantId && alias.SiteId == PageState.Site.SiteId); | ||||
| 							} | ||||
| 						} | ||||
| 						if (unique && string.IsNullOrEmpty(_defaultalias)) unique = false; | ||||
| 					} | ||||
|  | ||||
| 					if (unique) | ||||
| @ -489,18 +491,17 @@ | ||||
| 							{ | ||||
| 								var names = _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries) | ||||
| 									.Select(sValue => sValue.Trim()).ToArray(); | ||||
| 								foreach (Alias alias in _aliases.Where(item => item.SiteId == site.SiteId && item.TenantId == site.TenantId).ToList()) | ||||
| 								foreach (Alias alias in _aliases) | ||||
| 								{ | ||||
| 									if (!names.Contains(alias.Name)) | ||||
| 									if (!names.Contains(alias.Name.Trim())) | ||||
| 									{ | ||||
| 										await AliasService.DeleteAliasAsync(alias.AliasId); | ||||
| 									} | ||||
| 								} | ||||
| 								if (!names.Contains(_defaultalias)) { _defaultalias = names[0]; } | ||||
|  | ||||
| 								foreach (string name in names) | ||||
| 								{ | ||||
| 									var alias = _aliases.Find(item => item.Name == name); | ||||
| 									var alias = _aliases.Find(item => item.Name.Trim() == name); | ||||
| 									if (alias == null) | ||||
| 									{ | ||||
| 										alias = new Alias(); | ||||
| @ -512,8 +513,9 @@ | ||||
| 									} | ||||
| 									else | ||||
| 									{ | ||||
| 										if (alias.IsDefault != (alias.Name == _defaultalias)) | ||||
| 										if (alias.Name != name || alias.IsDefault != (alias.Name.Trim() == _defaultalias)) | ||||
| 										{ | ||||
| 											alias.Name = name; | ||||
| 											alias.IsDefault = (name == _defaultalias); | ||||
| 											await AliasService.UpdateAliasAsync(alias); | ||||
| 										} | ||||
| @ -534,7 +536,7 @@ | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 					else | ||||
| 					else // deuplicate alias or default alias not specified | ||||
| 					{ | ||||
| 						AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning); | ||||
| 					} | ||||
| @ -622,13 +624,12 @@ | ||||
| 		_urls = string.Empty; | ||||
| 		_defaultalias = string.Empty; | ||||
| 		_aliases = await AliasService.GetAliasesAsync(); | ||||
| 		foreach (Alias alias in _aliases.Where(item => item.SiteId == PageState.Site.SiteId && item.TenantId == PageState.Site.TenantId).ToList()) | ||||
| 		_aliases = _aliases.Where(item => item.SiteId == PageState.Site.SiteId && item.TenantId == PageState.Site.TenantId).OrderBy(item => item.AliasId).ToList(); | ||||
| 		foreach (Alias alias in _aliases) | ||||
| 		{ | ||||
| 			_urls += (_urls == string.Empty) ? alias.Name : ", " + alias.Name; | ||||
| 			if (alias.IsDefault && string.IsNullOrEmpty(_defaultalias)) | ||||
| 			{ | ||||
| 				_defaultalias = alias.Name; | ||||
| 			} | ||||
| 			_urls += (_urls == string.Empty) ? alias.Name.Trim() : ", " + alias.Name.Trim(); | ||||
| 			if (alias.IsDefault) _defaultalias = alias.Name.Trim(); | ||||
| 		} | ||||
| 		if (string.IsNullOrEmpty(_defaultalias)) _defaultalias = _aliases.First().Name.Trim(); | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shaun Walker
					Shaun Walker