Merge remote-tracking branch 'oqtane/dev' into dev
This commit is contained in:
commit
626528fa5e
@ -22,7 +22,7 @@ else
|
||||
}
|
||||
else
|
||||
{
|
||||
<Pager Items="@_pages.Where(item => item.IsDeleted)">
|
||||
<Pager Items="@_pages.Where(item => item.IsDeleted)" CurrentPage="@_pagePage.ToString()" OnPageChange="OnPageChangePage">
|
||||
<Header>
|
||||
<th style="width: 1px;"> </th>
|
||||
<th style="width: 1px;"> </th>
|
||||
@ -50,7 +50,7 @@ else
|
||||
}
|
||||
else
|
||||
{
|
||||
<Pager Items="@_modules.Where(item => item.IsDeleted)">
|
||||
<Pager Items="@_modules.Where(item => item.IsDeleted)" CurrentPage="@_pageModule.ToString()" OnPageChange="OnPageChangeModule">
|
||||
<Header>
|
||||
<th style="width: 1px;"> </th>
|
||||
<th style="width: 1px;"> </th>
|
||||
@ -78,7 +78,8 @@ else
|
||||
@code {
|
||||
private List<Page> _pages;
|
||||
private List<Module> _modules;
|
||||
|
||||
private int _pagePage = 1;
|
||||
private int _pageModule = 1;
|
||||
public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
@ -229,4 +230,12 @@ else
|
||||
ModuleInstance.HideProgressIndicator();
|
||||
}
|
||||
}
|
||||
private void OnPageChangePage(int page)
|
||||
{
|
||||
_pagePage = page;
|
||||
}
|
||||
private void OnPageChangeModule(int page)
|
||||
{
|
||||
_pageModule = page;
|
||||
}
|
||||
}
|
||||
|
@ -211,8 +211,11 @@ else
|
||||
</Detail>
|
||||
</Pager>
|
||||
}
|
||||
@if (notifications.Any())
|
||||
{
|
||||
<br />
|
||||
<ActionDialog Header="Clear Notifications" Message="Are You Sure You Wish To Permanently Delete All Notifications ?" Action="Delete All Notifications" Security="SecurityAccessLevel.Admin" Class="btn btn-danger" OnClick="@(async () => await DeleteAllNotifications())" ResourceKey="DeleteAllNotifications" />
|
||||
}
|
||||
<br /><hr />
|
||||
<select class="form-select" @onchange="(e => FilterChanged(e))">
|
||||
<option value="to">@Localizer["Inbox"]</option>
|
||||
|
@ -164,18 +164,18 @@
|
||||
{
|
||||
foreach (var role in segments[2].Split(';'))
|
||||
{
|
||||
_permissions.Add(new Permission(segments[0], segments[1], role, null, true));
|
||||
_permissions.Add(new Permission(ModuleState.SiteId, segments[0], segments[1], role, null, true));
|
||||
}
|
||||
// ensure admin access
|
||||
if (!_permissions.Any(item => item.EntityName == segments[0] && item.PermissionName == segments[1] && item.Role.Name == RoleNames.Admin))
|
||||
{
|
||||
_permissions.Add(new Permission(segments[0], segments[1], RoleNames.Admin, null, true));
|
||||
_permissions.Add(new Permission(ModuleState.SiteId, segments[0], segments[1], RoleNames.Admin, null, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_permissions.Add(new Permission(EntityName, permissionname, RoleNames.Admin, null, true));
|
||||
_permissions.Add(new Permission(ModuleState.SiteId, EntityName, permissionname, RoleNames.Admin, null, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -250,7 +250,7 @@
|
||||
}
|
||||
if (value != null)
|
||||
{
|
||||
_permissions.Add(new Permission(GetEntityName(permissionName), GetPermissionName(permissionName), roleName, null, value.Value));
|
||||
_permissions.Add(new Permission(ModuleState.SiteId, GetEntityName(permissionName), GetPermissionName(permissionName), roleName, null, value.Value));
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -262,7 +262,7 @@
|
||||
}
|
||||
if (value != null)
|
||||
{
|
||||
_permissions.Add(new Permission(GetEntityName(permissionName), GetPermissionName(permissionName), null, userId, value.Value));
|
||||
_permissions.Add(new Permission(ModuleState.SiteId, GetEntityName(permissionName), GetPermissionName(permissionName), null, userId, value.Value));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -327,7 +327,7 @@
|
||||
if (!_permissions.Any(item => item.EntityName == GetEntityName(permissionname) && item.PermissionName == GetPermissionName(permissionname) &&
|
||||
(item.Role.Name == RoleNames.Admin || item.Role.Name == RoleNames.Host)))
|
||||
{
|
||||
_permissions.Add(new Permission(GetEntityName(permissionname), GetPermissionName(permissionname), RoleNames.Admin, null, true));
|
||||
_permissions.Add(new Permission(ModuleState.SiteId, GetEntityName(permissionname), GetPermissionName(permissionname), RoleNames.Admin, null, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -139,11 +139,11 @@ namespace Oqtane.Themes.Controls
|
||||
var permissions = pagemodule.Module.PermissionList;
|
||||
if (!permissions.Any(item => item.PermissionName == PermissionNames.View && item.Role.Name == RoleNames.Everyone))
|
||||
{
|
||||
permissions.Add(new Permission(EntityNames.Page, pagemodule.PageId, PermissionNames.View, RoleNames.Everyone, null, true));
|
||||
permissions.Add(new Permission(ModuleState.SiteId, EntityNames.Page, pagemodule.PageId, PermissionNames.View, RoleNames.Everyone, null, true));
|
||||
}
|
||||
if (!permissions.Any(item => item.PermissionName == PermissionNames.View && item.Role.Name == RoleNames.Registered))
|
||||
{
|
||||
permissions.Add(new Permission(EntityNames.Page, pagemodule.PageId, PermissionNames.View, RoleNames.Registered, null, true));
|
||||
permissions.Add(new Permission(ModuleState.SiteId, EntityNames.Page, pagemodule.PageId, PermissionNames.View, RoleNames.Registered, null, true));
|
||||
}
|
||||
pagemodule.Module.PermissionList = permissions;
|
||||
await ModuleService.UpdateModuleAsync(pagemodule.Module);
|
||||
|
@ -539,11 +539,11 @@
|
||||
var permissions = PageState.Page.PermissionList;
|
||||
if (!permissions.Any(item => item.PermissionName == PermissionNames.View && item.Role.Name == RoleNames.Everyone))
|
||||
{
|
||||
permissions.Add(new Permission(EntityNames.Page, PageState.Page.PageId, PermissionNames.View, RoleNames.Everyone, null, true));
|
||||
permissions.Add(new Permission(PageState.Site.SiteId, EntityNames.Page, PageState.Page.PageId, PermissionNames.View, RoleNames.Everyone, null, true));
|
||||
}
|
||||
if (!permissions.Any(item => item.PermissionName == PermissionNames.View && item.Role.Name == RoleNames.Registered))
|
||||
{
|
||||
permissions.Add(new Permission(EntityNames.Page, PageState.Page.PageId, PermissionNames.View, RoleNames.Registered, null, true));
|
||||
permissions.Add(new Permission(PageState.Site.SiteId, EntityNames.Page, PageState.Page.PageId, PermissionNames.View, RoleNames.Registered, null, true));
|
||||
}
|
||||
PageState.Page.PermissionList = permissions;
|
||||
await PageService.UpdatePageAsync(PageState.Page);
|
||||
|
@ -124,6 +124,10 @@
|
||||
editmode = PageState.EditMode;
|
||||
lastsyncdate = PageState.LastSyncDate;
|
||||
}
|
||||
if (PageState?.Page.Path != route.PagePath)
|
||||
{
|
||||
editmode = false; // reset edit mode when navigating to different page
|
||||
}
|
||||
|
||||
// get user
|
||||
if (PageState == null || refresh || PageState.Alias.SiteId != SiteState.Alias.SiteId)
|
||||
@ -181,7 +185,6 @@
|
||||
if (PageState == null || refresh || PageState.Page.Path != route.PagePath)
|
||||
{
|
||||
page = site.Pages.FirstOrDefault(item => item.Path.Equals(route.PagePath, StringComparison.OrdinalIgnoreCase));
|
||||
editmode = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -4,11 +4,14 @@ using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Security.Policy;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Oqtane.Extensions;
|
||||
using Oqtane.Models;
|
||||
using Oqtane.Modules;
|
||||
using Oqtane.Modules.Admin.Roles;
|
||||
using Oqtane.Modules.Admin.Users;
|
||||
using Oqtane.Shared;
|
||||
|
||||
namespace Oqtane.Repository
|
||||
@ -81,16 +84,20 @@ namespace Oqtane.Repository
|
||||
moduledefinition.SiteId = siteId;
|
||||
if (permissions.Count == 0)
|
||||
{
|
||||
// no module definition permissions exist for this site
|
||||
moduledefinition.PermissionList = ClonePermissions(moduledefinition.PermissionList);
|
||||
_permissions.UpdatePermissions(siteId, EntityNames.ModuleDefinition, moduledefinition.ModuleDefinitionId, moduledefinition.PermissionList);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (permissions.Where(item => item.EntityId == moduledefinition.ModuleDefinitionId).Any())
|
||||
if (permissions.Any(item => item.EntityId == moduledefinition.ModuleDefinitionId))
|
||||
{
|
||||
moduledefinition.PermissionList = permissions.Where(item => item.EntityId == moduledefinition.ModuleDefinitionId).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
// permissions for module definition do not exist for this site
|
||||
moduledefinition.PermissionList = ClonePermissions(moduledefinition.PermissionList);
|
||||
_permissions.UpdatePermissions(siteId, EntityNames.ModuleDefinition, moduledefinition.ModuleDefinitionId, moduledefinition.PermissionList);
|
||||
}
|
||||
}
|
||||
@ -275,5 +282,23 @@ namespace Oqtane.Repository
|
||||
|
||||
return moduledefinitions;
|
||||
}
|
||||
|
||||
private List<Permission> ClonePermissions(List<Permission> permissionList)
|
||||
{
|
||||
var permissions = new List<Permission>();
|
||||
foreach (var p in permissionList)
|
||||
{
|
||||
var permission = new Permission();
|
||||
permission.SiteId = p.SiteId;
|
||||
permission.EntityName = p.EntityName;
|
||||
permission.EntityId = p.EntityId;
|
||||
permission.PermissionName = p.PermissionName;
|
||||
permission.RoleId = p.RoleId;
|
||||
permission.UserId = p.UserId;
|
||||
permission.IsAuthorized = p.IsAuthorized;
|
||||
permissions.Add(permission);
|
||||
}
|
||||
return permissions;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,3 @@
|
||||
using System;
|
||||
using Oqtane.Shared;
|
||||
|
||||
namespace Oqtane.Models
|
||||
{
|
||||
/// <summary>
|
||||
@ -67,26 +64,27 @@ namespace Oqtane.Models
|
||||
|
||||
public Permission(string permissionName, string roleName, bool isAuthorized)
|
||||
{
|
||||
Initialize("", -1, permissionName, roleName, null, isAuthorized);
|
||||
Initialize(-1, "", -1, permissionName, roleName, null, isAuthorized);
|
||||
}
|
||||
|
||||
public Permission(string permissionName, int userId, bool isAuthorized)
|
||||
{
|
||||
Initialize("", -1, permissionName, "", userId, isAuthorized);
|
||||
Initialize(-1, "", -1, permissionName, "", userId, isAuthorized);
|
||||
}
|
||||
|
||||
public Permission(string entityName, string permissionName, string roleName, int? userId, bool isAuthorized)
|
||||
public Permission(int siteId, string entityName, string permissionName, string roleName, int? userId, bool isAuthorized)
|
||||
{
|
||||
Initialize(entityName, -1, permissionName, roleName, userId, isAuthorized);
|
||||
Initialize(siteId, entityName, -1, permissionName, roleName, userId, isAuthorized);
|
||||
}
|
||||
|
||||
public Permission(string entityName, int entityId, string permissionName, string roleName, int? userId, bool isAuthorized)
|
||||
public Permission(int siteId, string entityName, int entityId, string permissionName, string roleName, int? userId, bool isAuthorized)
|
||||
{
|
||||
Initialize(entityName, entityId, permissionName, roleName, userId, isAuthorized);
|
||||
Initialize(siteId, entityName, entityId, permissionName, roleName, userId, isAuthorized);
|
||||
}
|
||||
|
||||
private void Initialize(string entityName, int entityId, string permissionName, string roleName, int? userId, bool isAuthorized)
|
||||
private void Initialize(int siteId, string entityName, int entityId, string permissionName, string roleName, int? userId, bool isAuthorized)
|
||||
{
|
||||
SiteId = siteId;
|
||||
EntityName = entityName;
|
||||
EntityId = entityId;
|
||||
PermissionName = permissionName;
|
||||
|
Loading…
x
Reference in New Issue
Block a user