diff --git a/Oqtane.Client/Modules/Admin/Site/Index.razor b/Oqtane.Client/Modules/Admin/Site/Index.razor index f772b794..f82e1a4f 100644 --- a/Oqtane.Client/Modules/Admin/Site/Index.razor +++ b/Oqtane.Client/Modules/Admin/Site/Index.razor @@ -21,6 +21,22 @@ + + + + + + @if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) + { + + } + else + { + + } + + + @@ -202,18 +218,6 @@ @if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) { -
- - - - - -
- - - -
-
@@ -421,11 +425,14 @@ if (_name != string.Empty && _urls != string.Empty && _themetype != "-" && _containertype != "-") { var unique = true; - foreach (string name in _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) + if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) { - if (_aliasList.Exists(item => item.Name == name && item.SiteId != PageState.Alias.SiteId && item.TenantId != PageState.Alias.TenantId)) + foreach (string name in _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { - unique = false; + if (_aliasList.Exists(item => item.Name == name && item.SiteId != PageState.Alias.SiteId && item.TenantId != PageState.Alias.TenantId)) + { + unique = false; + } } } @@ -542,7 +549,7 @@ await logger.LogInformation("Site Deleted {SiteId}", PageState.Site.SiteId); var aliases = await AliasService.GetAliasesAsync(); - foreach (Alias a in aliases.Where(item => item.SiteId == PageState.Site.SiteId)) + foreach (Alias a in aliases.Where(item => item.SiteId == PageState.Site.SiteId && item.TenantId == PageState.Site.TenantId)) { await AliasService.DeleteAliasAsync(a.AliasId); } diff --git a/Oqtane.Server/Controllers/AliasController.cs b/Oqtane.Server/Controllers/AliasController.cs index 62dcfc85..a61f2ed4 100644 --- a/Oqtane.Server/Controllers/AliasController.cs +++ b/Oqtane.Server/Controllers/AliasController.cs @@ -8,6 +8,8 @@ using Oqtane.Enums; using Oqtane.Infrastructure; using Oqtane.Repository; using Microsoft.AspNetCore.Http; +using Oqtane.Themes.Controls; +using System.Linq; namespace Oqtane.Controllers { @@ -16,19 +18,26 @@ namespace Oqtane.Controllers { private readonly IAliasRepository _aliases; private readonly ILogManager _logger; + private readonly Alias _alias; - public AliasController(IAliasRepository aliases, ILogManager logger) + public AliasController(IAliasRepository aliases, ILogManager logger, ITenantManager tenantManager) { _aliases = aliases; _logger = logger; + _alias = tenantManager.GetAlias(); } // GET: api/ [HttpGet] - [Authorize(Roles = RoleNames.Host)] + [Authorize(Roles = RoleNames.Admin)] public IEnumerable Get() { - return _aliases.GetAliases(); + var aliases = _aliases.GetAliases(); + if (!User.IsInRole(RoleNames.Host)) + { + aliases = aliases.Where(item => item.SiteId == _alias.SiteId && item.TenantId == _alias.TenantId); + } + return aliases; } // GET api//5