Skip to content

Commit

Permalink
Merge pull request #6114 from dnnsoftware/release/9.13.4
Browse files Browse the repository at this point in the history
Merged `release/9.13.4` into `master` to release `v9.13.4`
  • Loading branch information
valadas authored Aug 13, 2024
2 parents 155c23a + 5def7cc commit b53b76e
Show file tree
Hide file tree
Showing 386 changed files with 2,148 additions and 2,486 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ body:
**NOTE:** _If your version is not listed, please upgrade to the latest version. If you cannot upgrade at this time, please open a [Discussion](https://github.com/dnnsoftware/Dnn.Platform/discussions) instead._
multiple: true
options:
- 9.13.2 (latest release)
- 9.13.3 (alpha)
- 9.13.3 (latest release)
- 9.13.4 (alpha)
- 10.0.0 (alpha)
validations:
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_PROCESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The following items must all be true prior to a pull request being submitted to
* Change should represent an entire solution for the issue at hand. Partial requests will NOT be processed.
* Change should have a supporting issue logged on the DNN_Platform GitHub account, documenting the issue resolved, following the procedures outlined on the [Contribute Page](/CONTRIBUTING.md)
* If your change was to an area that already was covered by tests those tests must be updated. New tests for areas currently un-tested are appreciated
* **Exception**: Security items can be addressed individually, and should be initially communicated to the [email protected] email address for coordination
* **Exception**: Security items can be addressed individually, and should be initially communicated via [the GitHub feature for reporting a security vulnerability](https://github.com/dnnsoftware/Dnn.Platform/security/advisories/new)
* Pull request comment should contain at a minimum the following details (When creating, a default template will also prompt you for the proper information)
* Issue #, referenced such as “Fixes #24
* Release Note: Suggested release note for the change such as “Improvement of user profile to improve performance when searching.”
Expand Down
1 change: 1 addition & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ updates:
Cake-Issues:
patterns:
- "Cake.Issues*"
- "Cake.Frosting.Issues*"
DependencyInjection:
patterns:
- "Microsoft.Extensions.DependencyInjection*"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/open-merged-pr-to-future.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
steps:
- uses: actions/checkout@v4

- uses: peterjgrainger/action-create-branch@v2.4.0
- uses: peterjgrainger/action-create-branch@v3.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -148,3 +148,5 @@ yarn-error.log

/DotNetNuke.Internal.SourceGenerators/bin/
/DNN Platform/Tests/DotNetNuke.Tests.SourceGenerators/Snapshots/*.received.*
Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Pages/scripts/bundles/
Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Roles/scripts/bundles/
6 changes: 3 additions & 3 deletions Build/Build.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
<PackageReference Include="Cake.BuildSystems.Module" Version="7.0.0" />
<PackageReference Include="Cake.FileHelpers" Version="7.0.0" />
<PackageReference Include="Cake.Frosting" Version="4.0.0" />
<PackageReference Include="Cake.Git" Version="3.0.0" />
<PackageReference Include="Cake.Issues" Version="4.1.0" />
<PackageReference Include="Cake.Issues.MsBuild" Version="4.1.0" />
<PackageReference Include="Cake.Frosting.Git" Version="4.0.0" />
<PackageReference Include="Cake.Issues" Version="4.6.0" />
<PackageReference Include="Cake.Frosting.Issues.MsBuild" Version="4.6.0" />
<PackageReference Include="Cake.Json" Version="7.0.1" />
<PackageReference Include="Cake.XdtTransform" Version="2.0.0" />
<PackageReference Include="Dnn.CakeUtils" Version="2.0.2" />
Expand Down
2 changes: 1 addition & 1 deletion Build/Symbols/DotNetNuke_Symbols.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke_Symbols" type="Library" version="09.13.03" >
<package name="DotNetNuke_Symbols" type="Library" version="09.13.04" >
<friendlyName>DNN Platform Symbols</friendlyName>
<description>This package contains Debug Symbols and Intellisense files for DNN Platform.</description>
<owner>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke.Console" type="Module" version="09.13.03">
<package name="DotNetNuke.Console" type="Module" version="09.13.04">
<friendlyName>Console</friendlyName>
<description>Display children pages as icon links for navigation.</description>
<iconFile>~/DesktopModules/Admin/Console/console.png</iconFile>
Expand Down
2 changes: 1 addition & 1 deletion DNN Platform/Connectors/Azure/AzureConnector.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="Dnn.AzureConnector" type="Connector" isSystem="false" version="09.13.03">
<package name="Dnn.AzureConnector" type="Connector" isSystem="false" version="09.13.04">
<friendlyName>Dnn Azure Connector</friendlyName>
<description>The Azure Connector allows you to create folders mapped to Azure Storage accounts.</description>
<iconFile>~/DesktopModules/Connectors/Azure/Images/icon-azure-32px.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNN.Connectors.GoogleAnalytics" type="Connector" isSystem="false" version="09.13.03">
<package name="DNN.Connectors.GoogleAnalytics" type="Connector" isSystem="false" version="09.13.04">
<friendlyName>Google Analytics (Legacy UA) Connector</friendlyName>
<description>Configure your site's Google Analytics settings using Universal Analytics.</description>
<iconFile>~/DesktopModules/Connectors/GoogleAnalytics/Images/GoogleAnalytics_32X32_Standard.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNN.Connectors.GoogleAnalytics4" type="Connector" isSystem="false" version="09.13.03">
<package name="DNN.Connectors.GoogleAnalytics4" type="Connector" isSystem="false" version="09.13.04">
<friendlyName>Google Analytics 4 Connector</friendlyName>
<description>Configure your site's Google Analytics 4 settings.</description>
<iconFile>~/DesktopModules/Connectors/GoogleAnalytics4/Images/GoogleAnalytics4_32X32_Standard.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNN.Connectors.GoogleTagManager" type="Connector" isSystem="false" version="09.13.03">
<package name="DNN.Connectors.GoogleTagManager" type="Connector" isSystem="false" version="09.13.04">
<friendlyName>Google Tag Manager Connector</friendlyName>
<description>Configure your site's Google Tag Manager settings.</description>
<iconFile>~/DesktopModules/Connectors/GoogleTagManager/Images/GoogleTagManager_32X32_Standard.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ internal class JwtController : ServiceLocator<IJwtController, JwtController>, IJ
private static readonly HashAlgorithm Hasher = SHA384.Create();
private static readonly Encoding TextEncoder = Encoding.UTF8;

private static object hasherLock = new object();

/// <inheritdoc/>
public string SchemeType => "JWT";

Expand Down Expand Up @@ -151,7 +153,12 @@ public LoginResultData LoginUser(HttpRequestMessage request, LoginData loginData
// save hash values in DB so no one with access can create JWT header from existing data
var sessionId = NewSessionId;
var now = DateTime.UtcNow;
var renewalToken = EncodeBase64(Hasher.ComputeHash(Guid.NewGuid().ToByteArray()));
string renewalToken = string.Empty;
lock (hasherLock)
{
renewalToken = EncodeBase64(Hasher.ComputeHash(Guid.NewGuid().ToByteArray()));
}

var ptoken = new PersistedToken
{
TokenId = sessionId,
Expand Down Expand Up @@ -381,7 +388,13 @@ private static string EncodeBase64(byte[] data)

private static string GetHashedStr(string data)
{
return EncodeBase64(Hasher.ComputeHash(TextEncoder.GetBytes(data)));
string hash = string.Empty;
lock (hasherLock)
{
hash = EncodeBase64(Hasher.ComputeHash(TextEncoder.GetBytes(data)));
}

return hash;
}

private LoginResultData UpdateToken(string renewalToken, PersistedToken ptoken, UserInfo userInfo)
Expand Down
2 changes: 1 addition & 1 deletion DNN Platform/Dnn.AuthServices.Jwt/Dnn.Jwt.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNNJWT" type="Provider" version="09.13.03">
<package name="DNNJWT" type="Provider" version="09.13.04">
<friendlyName>DNN JWT Auth Handler</friendlyName>
<description>DNN Json Web Token Authentication (JWT) library for cookie-less Mobile authentication clients</description>
<dependencies/>
Expand Down
4 changes: 2 additions & 2 deletions DNN Platform/DotNetNuke.Web.Mvc/MvcHttpModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace DotNetNuke.Web.Mvc

public class MvcHttpModule : IHttpModule
{
public static readonly Regex MvcServicePath = new Regex(@"DesktopModules/MVC/", RegexOptions.Compiled);
public static readonly Regex MvcServicePath = new Regex(@"DesktopModules/MVC/", RegexOptions.Compiled | RegexOptions.IgnoreCase);

static MvcHttpModule()
{
Expand All @@ -47,7 +47,7 @@ public void Dispose()
private static void InitDnn(object sender, EventArgs e)
{
var app = sender as HttpApplication;
if (app != null && MvcServicePath.IsMatch(app.Context.Request.RawUrl.ToLowerInvariant()))
if (app != null && MvcServicePath.IsMatch(app.Context.Request.RawUrl))
{
Initialize.Init(app);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ namespace DotNetNuke.Web.InternalServices
using DotNetNuke.Common;
using DotNetNuke.Common.Utilities;
using DotNetNuke.Data;
using DotNetNuke.Entities.Controllers;
using DotNetNuke.Entities.Modules;
using DotNetNuke.Entities.Modules.Definitions;
using DotNetNuke.Entities.Tabs;
Expand All @@ -37,7 +38,6 @@ public class SearchServiceController : DnnApiController
private const string ModuleTitleCacheKey = "SearchModuleTabTitle_{0}";
private const CacheItemPriority ModuleTitleCachePriority = CacheItemPriority.Normal;
private const int ModuleTitleCacheTimeOut = 20;

private static readonly Regex GroupedBasicViewRegex = new Regex("userid(/|\\|=)(\\d+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);

private int htmlModuleDefitionId;
Expand Down Expand Up @@ -125,13 +125,19 @@ public HttpResponseMessage Search(string search, string culture, int pageIndex,
var moduleDefids = GetSearchModuleDefIds(settings, contentSources);
var portalIds = this.GetSearchPortalIds(settings, -1);
var userSearchTypeId = SearchHelper.Instance.GetSearchTypeByName("user").SearchTypeId;
var maximumPageSize = HostController.Instance.GetInteger("Search_MaxResultPerPage", 100);

var more = false;
var totalHits = 0;
var results = new List<GroupedDetailView>();
if (portalIds.Any() && searchTypeIds.Any() &&
(!string.IsNullOrEmpty(cleanedKeywords) || tags.Any()))
{
if (pageSize > maximumPageSize)
{
pageSize = maximumPageSize;
}

var query = new SearchQuery
{
KeyWords = cleanedKeywords,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke.ClientAPI" type="Library" version="09.13.03" >
<package name="DotNetNuke.ClientAPI" type="Library" version="09.13.04" >
<friendlyName>DotNetNuke ClientAPI</friendlyName>
<description>The DotNetNuke Client API is composed of both server-side and client-side code that works together to enable a simple and reliable interface for the developer to provide a rich client-side experience.</description>
<dependencies/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace DotNetNuke.HttpModules
public class MobileRedirectModule : IHttpModule
{
private readonly IList<string> specialPages = new List<string> { "/login.aspx", "/register.aspx", "/terms.aspx", "/privacy.aspx", "/login", "/register", "/terms", "/privacy" };
private readonly Regex mvcServicePath = new Regex(@"DesktopModules/MVC/", RegexOptions.Compiled);
private readonly Regex mvcServicePath = new Regex(@"DesktopModules/MVC/", RegexOptions.Compiled | RegexOptions.IgnoreCase);
private IRedirectionController redirectionController;

public string ModuleName => "MobileRedirectModule";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DnnPlugins" type="JavaScript_Library" version="09.13.03" isSystem="true">
<package name="DnnPlugins" type="JavaScript_Library" version="09.13.04" isSystem="true">
<friendlyName>DNN jQuery Plugins</friendlyName>
<description>A collection of jQuery plugins for DNN UI components (tabs, panels, tooltips, checkboxes, etc.)</description>
<iconFile>Icons\Sigma\Extensions_32x32_Standard.png</iconFile>
Expand Down
4 changes: 2 additions & 2 deletions DNN Platform/JavaScript Libraries/jQueryUI/jQueryUI.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="jQuery-UI" type="JavaScript_Library" version="01.13.02" isSystem="true">
<package name="jQuery-UI" type="JavaScript_Library" version="01.13.03" isSystem="true">
<friendlyName>jQueryUI JavaScript Library</friendlyName>
<description>jQueryUI is a JavaScript library that is used to extend jQuery to provide UI widgets.</description>
<iconFile>Icons\Sigma\Extensions_32x32_Standard.png</iconFile>
Expand All @@ -21,7 +21,7 @@
<javaScriptLibrary>
<libraryName>jQuery-UI</libraryName>
<fileName>jquery-ui.min.js</fileName>
<CDNPath>https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js</CDNPath>
<CDNPath>https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.3/jquery-ui.min.js</CDNPath>
</javaScriptLibrary>
</component>
<component type="JavaScriptFile">
Expand Down
8 changes: 4 additions & 4 deletions DNN Platform/JavaScript Libraries/jQueryUI/jquery-ui.min.js

Large diffs are not rendered by default.

22 changes: 10 additions & 12 deletions DNN Platform/Library/Entities/Users/UserInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ namespace DotNetNuke.Entities.Users
public class UserInfo : BaseEntityInfo, IPropertyAccess, IUserInfo
{
private readonly ConcurrentDictionary<int, UserSocial> social = new ConcurrentDictionary<int, UserSocial>();
private readonly ConcurrentDictionary<int, string[]> roles = new ConcurrentDictionary<int, string[]>();
private string administratorRoleName;
private UserMembership membership;
private UserProfile profile;
private string[] roles;

/// <summary>Initializes a new instance of the <see cref="UserInfo"/> class.</summary>
public UserInfo()
Expand Down Expand Up @@ -206,26 +206,24 @@ public string[] Roles
{
get
{
if (this.roles == null)
return this.roles.GetOrAdd(this.PortalID, i =>
{
var socialRoles = this.Social.Roles;
if (socialRoles.Count == 0)
{
this.roles = new string[0];
return new string[0];
}
else
{
this.roles = (from r in this.Social.Roles
where
r.Status == RoleStatus.Approved &&
(r.EffectiveDate < DateTime.Now || Null.IsNull(r.EffectiveDate)) &&
(r.ExpiryDate > DateTime.Now || Null.IsNull(r.ExpiryDate))
select r.RoleName)
return (from r in this.Social.Roles
where
r.Status == RoleStatus.Approved &&
(r.EffectiveDate < DateTime.Now || Null.IsNull(r.EffectiveDate)) &&
(r.ExpiryDate > DateTime.Now || Null.IsNull(r.ExpiryDate))
select r.RoleName)
.ToArray();
}
}

return this.roles;
});
}

set
Expand Down
6 changes: 3 additions & 3 deletions DNN Platform/Library/Framework/SecurityPolicy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,17 @@ public static string Permissions
string strPermissions = string.Empty;
if (HasReflectionPermission())
{
strPermissions += ", " + reflectionPermission;
strPermissions += ", " + ReflectionPermission;
}

if (HasWebPermission())
{
strPermissions += ", " + webPermission;
strPermissions += ", " + WebPermission;
}

if (HasAspNetHostingPermission())
{
strPermissions += ", " + aspNetHostingPermission;
strPermissions += ", " + AspNetHostingPermission;
}

if (!string.IsNullOrEmpty(strPermissions))
Expand Down
2 changes: 1 addition & 1 deletion DNN Platform/Library/Framework/jQuery.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public partial class jQuery
/// </remarks>
public const string DefaultHostedUrl = "https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js";

public const string DefaultUIHostedUrl = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js";
public const string DefaultUIHostedUrl = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.3/jquery-ui.min.js";
private const string JQueryDebugFile = "~/Resources/Shared/Scripts/jquery/jquery.js";
private const string JQueryMinFile = "~/Resources/Shared/Scripts/jquery/jquery.min.js";
private const string JQueryMigrateDebugFile = "~/Resources/Shared/Scripts/jquery/jquery-migrate.js";
Expand Down
6 changes: 5 additions & 1 deletion DNN Platform/Library/Services/FileSystem/FolderManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ namespace DotNetNuke.Services.FileSystem
using DotNetNuke.ComponentModel;
using DotNetNuke.Data;
using DotNetNuke.Entities;
using DotNetNuke.Entities.Host;
using DotNetNuke.Entities.Portals;
using DotNetNuke.Entities.Users;
using DotNetNuke.Instrumentation;
Expand Down Expand Up @@ -945,7 +946,10 @@ internal void ClearFolderProviderCachedLists(int portalId)
{
var folderProvider = FolderProvider.Instance(folderMapping.FolderProviderType);

if (folderMapping.MappingName != "Standard" && folderMapping.MappingName != "Secure" && folderMapping.MappingName != "Database")
if (folderMapping.MappingName != "Standard" &&
folderMapping.MappingName != "Secure" &&
folderMapping.MappingName != "Database" &&
Host.EnableFileAutoSync)
{
var type = folderProvider.GetType();
MethodInfo method = type.GetMethod("ClearCache");
Expand Down
Loading

0 comments on commit b53b76e

Please sign in to comment.