trim list of pages allowed to be Home Page

This commit is contained in:
Shaun Walker 2022-08-16 08:42:47 -04:00
parent 4084b352de
commit 56c082cb26
4 changed files with 16 additions and 3 deletions

View File

@ -78,7 +78,10 @@
<option value="-">&lt;@Localizer["Not Specified"]&gt;</option> <option value="-">&lt;@Localizer["Not Specified"]&gt;</option>
@foreach (Page page in PageState.Pages) @foreach (Page page in PageState.Pages)
{ {
<option value="@(page.PageId)">@(new string('-', page.Level * 2))@(page.Name)</option> if (UserSecurity.ContainsRole(page.Permissions, PermissionNames.View, RoleNames.Everyone))
{
<option value="@(page.PageId)">@(new string('-', page.Level * 2))@(page.Name)</option>
}
} }
</select> </select>
</div> </div>

View File

@ -33,7 +33,7 @@ namespace Oqtane.Themes.Controls
{ {
actionList.Add(new ActionViewModel {Icon = Icons.Cog, Name = "Manage Settings", Action = async (u, m) => await Settings(u, m)}); actionList.Add(new ActionViewModel {Icon = Icons.Cog, Name = "Manage Settings", Action = async (u, m) => await Settings(u, m)});
if (UserSecurity.GetPermissionStrings(ModuleState.Permissions).FirstOrDefault(item => item.PermissionName == PermissionNames.View).Permissions.Split(';').Contains(RoleNames.Everyone)) if (UserSecurity.ContainsRole(ModuleState.Permissions, PermissionNames.View, RoleNames.Everyone))
{ {
actionList.Add(new ActionViewModel {Icon=Icons.CircleX, Name = "Unpublish Module", Action = async (s, m) => await Unpublish(s, m) }); actionList.Add(new ActionViewModel {Icon=Icons.CircleX, Name = "Unpublish Module", Action = async (s, m) => await Unpublish(s, m) });
} }

View File

@ -70,7 +70,7 @@
</div> </div>
<div class="row d-flex"> <div class="row d-flex">
<div class="col"> <div class="col">
@if (UserSecurity.GetPermissionStrings(PageState.Page.Permissions).FirstOrDefault(item => item.PermissionName == PermissionNames.View).Permissions.Split(';').Contains(RoleNames.Everyone)) @if (UserSecurity.ContainsRole(PageState.Page.Permissions, PermissionNames.View, RoleNames.Everyone))
{ {
<button type="button" class="btn btn-secondary col-12" @onclick=@(async () => Publish("unpublish"))>@Localizer["Page.Unpublish"]</button> <button type="button" class="btn btn-secondary col-12" @onclick=@(async () => Publish("unpublish"))>@Localizer["Page.Unpublish"]</button>
} }

View File

@ -119,6 +119,16 @@ namespace Oqtane.Security
return false; return false;
} }
public static bool ContainsRole(string permissionStrings, string permissionName, string roleName)
{
return GetPermissionStrings(permissionStrings).FirstOrDefault(item => item.PermissionName == permissionName).Permissions.Split(';').Contains(roleName);
}
public static bool ContainsUser(string permissionStrings, string permissionName, int userId)
{
return GetPermissionStrings(permissionStrings).FirstOrDefault(item => item.PermissionName == permissionName).Permissions.Split(';').Contains($"[{userId}]");
}
public static ClaimsIdentity CreateClaimsIdentity(Alias alias, User user, List<UserRole> userroles) public static ClaimsIdentity CreateClaimsIdentity(Alias alias, User user, List<UserRole> userroles)
{ {
user.Roles = ""; user.Roles = "";