Merge tag 'v6.2.0' into dev
This commit is contained in:
@ -37,7 +37,7 @@
|
||||
public override List<Resource> Resources => new List<Resource>()
|
||||
{
|
||||
// obtained from https://cdnjs.com/libraries
|
||||
new Stylesheet("https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css", "sha512-jnSuA4Ss2PkkikSOLtYs8BlYIeeIK1h99ty4YfvRPAlzr377vr3CXDb7sb7eEEBYjDtcYj+AjBH3FLv5uSJuXg==", "anonymous"),
|
||||
new Stylesheet(Constants.BootstrapStylesheetUrl, Constants.BootstrapStylesheetIntegrity, "anonymous"),
|
||||
new Stylesheet(ThemePath() + "Theme.css"),
|
||||
new Script(Constants.BootstrapScriptUrl, Constants.BootstrapScriptIntegrity, "anonymous")
|
||||
};
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
// trim PageState to mitigate page bloat caused by Blazor serializing/encrypting state when crossing render mode boundaries
|
||||
// only include properties required by the ModuleActionsInteractive component
|
||||
_pageState = new PageState
|
||||
{
|
||||
Alias = PageState.Alias,
|
||||
|
||||
@ -91,6 +91,7 @@
|
||||
}
|
||||
|
||||
// trim PageState to mitigate page bloat caused by Blazor serializing/encrypting state when crossing render mode boundaries
|
||||
// only include properties required by the ControlPanelInteractive component
|
||||
_pageState = new PageState
|
||||
{
|
||||
Alias = PageState.Alias,
|
||||
|
||||
@ -353,7 +353,7 @@
|
||||
module.PageId = PageState.Page.PageId;
|
||||
module.ModuleDefinitionName = _moduleDefinitionName;
|
||||
module.AllPages = false;
|
||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId);
|
||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId, module.ModuleDefinitionName);
|
||||
|
||||
module = await ModuleService.AddModuleAsync(module);
|
||||
newModuleId = module.ModuleId;
|
||||
@ -365,7 +365,7 @@
|
||||
module.SiteId = PageState.Page.SiteId;
|
||||
module.PageId = PageState.Page.PageId;
|
||||
module.AllPages = false;
|
||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId);
|
||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId, module.ModuleDefinitionName);
|
||||
|
||||
module = await ModuleService.AddModuleAsync(module);
|
||||
var moduleContent = await ModuleService.ExportModuleAsync(int.Parse(_moduleId), PageState.Page.PageId);
|
||||
@ -430,9 +430,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
private List<Permission> GenerateDefaultPermissions(int siteId)
|
||||
private List<Permission> GenerateDefaultPermissions(int siteId, string moduleDefinitionName)
|
||||
{
|
||||
var permissions = new List<Permission>();
|
||||
|
||||
// set module view permissions
|
||||
if (_visibility == "view")
|
||||
{
|
||||
// set module view permissions to page view permissions
|
||||
@ -443,8 +445,22 @@
|
||||
// set module view permissions to page edit permissions
|
||||
permissions = SetPermissions(permissions, siteId, PermissionNames.View, PermissionNames.Edit);
|
||||
}
|
||||
// set module edit permissions to page edit permissions
|
||||
permissions = SetPermissions(permissions, siteId, PermissionNames.Edit, PermissionNames.Edit);
|
||||
|
||||
// set remaining module permissions
|
||||
var permissionNames = PermissionNames.Edit;
|
||||
var moduleDefinition = _allModuleDefinitions.FirstOrDefault(item => item.ModuleDefinitionName == moduleDefinitionName);
|
||||
if (moduleDefinition != null && !string.IsNullOrEmpty(moduleDefinition.PermissionNames))
|
||||
{
|
||||
permissionNames = moduleDefinition.PermissionNames; // custom module permissions
|
||||
}
|
||||
foreach (var permission in permissionNames.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
if (permission != PermissionNames.View)
|
||||
{
|
||||
// set module permissions to page edit permissions
|
||||
permissions = SetPermissions(permissions, siteId, permission, PermissionNames.Edit);
|
||||
}
|
||||
}
|
||||
|
||||
return permissions;
|
||||
}
|
||||
|
||||
@ -103,6 +103,9 @@
|
||||
{
|
||||
var cookieConsentSetting = SettingService.GetSetting(PageState.Site.Settings, "CookieConsent", string.Empty);
|
||||
_enabled = !string.IsNullOrEmpty(cookieConsentSetting);
|
||||
|
||||
if (!_enabled) return;
|
||||
|
||||
_optout = cookieConsentSetting == "optout";
|
||||
_actioned = await CookieConsentService.IsActionedAsync();
|
||||
|
||||
@ -164,4 +167,4 @@
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,8 +16,8 @@ namespace Oqtane.Themes.OqtaneTheme
|
||||
ContainerSettingsType = "Oqtane.Themes.OqtaneTheme.ContainerSettings, Oqtane.Client",
|
||||
Resources = new List<Resource>()
|
||||
{
|
||||
// obtained from https://cdnjs.com/libraries
|
||||
new Stylesheet("https://cdnjs.cloudflare.com/ajax/libs/bootswatch/5.3.3/cyborg/bootstrap.min.css", "sha512-M+Wrv9LTvQe81gFD2ZE3xxPTN5V2n1iLCXsldIxXvfs6tP+6VihBCwCMBkkjkQUZVmEHBsowb9Vqsq1et1teEg==", "anonymous"),
|
||||
// obtained from https://cdnjs.com/libraries/bootswatch
|
||||
new Stylesheet("https://cdnjs.cloudflare.com/ajax/libs/bootswatch/5.3.7/cyborg/bootstrap.min.css", "sha512-/LQFzDeXqysGQ/POl5YOEjgVZH1BmqDHvshhnFIChf50bMGQ470qhUrsecD9MRCUwzwqRoshwAbmA2oTW4I6Yg==", "anonymous"),
|
||||
new Stylesheet("~/Theme.css"),
|
||||
new Script(Constants.BootstrapScriptUrl, Constants.BootstrapScriptIntegrity, "anonymous")
|
||||
}
|
||||
|
||||
@ -108,13 +108,22 @@ namespace Oqtane.Themes
|
||||
}
|
||||
}
|
||||
|
||||
// path method
|
||||
// path methods
|
||||
|
||||
public string ThemePath()
|
||||
{
|
||||
return PageState?.Alias.BaseUrl + "/Themes/" + GetType().Namespace + "/";
|
||||
}
|
||||
|
||||
public string StaticAssetPath
|
||||
{
|
||||
get
|
||||
{
|
||||
// requires theme to have implemented ITheme
|
||||
return PageState?.Alias.BaseUrl + "_content/" + ThemeState?.PackageName + "/";
|
||||
}
|
||||
}
|
||||
|
||||
// fingerprint hash code for static assets
|
||||
public string Fingerprint
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user