From f788a5cb9297437557823d7237448061b2a0bd67 Mon Sep 17 00:00:00 2001 From: Andy9999 Date: Sun, 20 Mar 2022 16:00:12 +0100 Subject: [PATCH 1/8] Fix for issue #5047. Fix for issue #5047. This will allow to optionally remove the rel attribute from privacy and terms links. Default is still "rel=nofollow" but it could now either be changed or removed entirely from the ascx file. Unfortunately the asp.net control doesn't have a rel attribute, so we have to add it ourselves. Added Rel attribute to Privacy and Terms class and added rel="nofollow" to privacy.ascx and terms.ascx skin file. --- DNN Platform/Website/admin/Skins/Privacy.ascx.cs | 5 +++-- DNN Platform/Website/admin/Skins/Terms.ascx.cs | 4 ++-- DNN Platform/Website/admin/Skins/privacy.ascx | 2 +- DNN Platform/Website/admin/Skins/terms.ascx | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/DNN Platform/Website/admin/Skins/Privacy.ascx.cs b/DNN Platform/Website/admin/Skins/Privacy.ascx.cs index 32d6f4a20d1..8150b990fae 100644 --- a/DNN Platform/Website/admin/Skins/Privacy.ascx.cs +++ b/DNN Platform/Website/admin/Skins/Privacy.ascx.cs @@ -29,7 +29,9 @@ public Privacy() public string Text { get; set; } - public string CssClass { get; set; } + public string CssClass { get; set; } + + public string Rel { get; set; } protected override void OnInit(EventArgs e) { @@ -58,7 +60,6 @@ protected override void OnLoad(EventArgs e) } this.hypPrivacy.NavigateUrl = this.PortalSettings.PrivacyTabId == Null.NullInteger ? this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Privacy") : this._navigationManager.NavigateURL(this.PortalSettings.PrivacyTabId); - this.hypPrivacy.Attributes["rel"] = "nofollow"; } catch (Exception exc) { diff --git a/DNN Platform/Website/admin/Skins/Terms.ascx.cs b/DNN Platform/Website/admin/Skins/Terms.ascx.cs index 4203f569e18..6b2f86d8f93 100644 --- a/DNN Platform/Website/admin/Skins/Terms.ascx.cs +++ b/DNN Platform/Website/admin/Skins/Terms.ascx.cs @@ -30,6 +30,8 @@ public Terms() public string Text { get; set; } public string CssClass { get; set; } + + public string Rel { get; set; } protected override void OnInit(EventArgs e) { @@ -58,8 +60,6 @@ protected override void OnLoad(EventArgs e) } this.hypTerms.NavigateUrl = this.PortalSettings.TermsTabId == Null.NullInteger ? this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Terms") : this._navigationManager.NavigateURL(this.PortalSettings.TermsTabId); - - this.hypTerms.Attributes["rel"] = "nofollow"; } catch (Exception exc) { diff --git a/DNN Platform/Website/admin/Skins/privacy.ascx b/DNN Platform/Website/admin/Skins/privacy.ascx index 68074eebbe2..83b6f13a09c 100644 --- a/DNN Platform/Website/admin/Skins/privacy.ascx +++ b/DNN Platform/Website/admin/Skins/privacy.ascx @@ -1,2 +1,2 @@ <%@ Control Language="C#" AutoEventWireup="false" Inherits="DotNetNuke.UI.Skins.Controls.Privacy" Codebehind="Privacy.ascx.cs" %> - \ No newline at end of file + \ No newline at end of file diff --git a/DNN Platform/Website/admin/Skins/terms.ascx b/DNN Platform/Website/admin/Skins/terms.ascx index 14af31821af..77b2e0b4d8c 100644 --- a/DNN Platform/Website/admin/Skins/terms.ascx +++ b/DNN Platform/Website/admin/Skins/terms.ascx @@ -1,2 +1,2 @@ <%@ Control Language="C#" AutoEventWireup="false" Inherits="DotNetNuke.UI.Skins.Controls.Terms" Codebehind="Terms.ascx.cs" %> - \ No newline at end of file + \ No newline at end of file From 4fa439cb41b5357f0b47c7e22d23380c9e7a6580 Mon Sep 17 00:00:00 2001 From: Andy9999 Date: Mon, 21 Mar 2022 18:37:41 +0100 Subject: [PATCH 2/8] Update DNN Platform/Website/admin/Skins/Privacy.ascx.cs Co-authored-by: Brian Dukes --- .../Website/admin/Skins/Privacy.ascx.cs | 132 +++++++++--------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/DNN Platform/Website/admin/Skins/Privacy.ascx.cs b/DNN Platform/Website/admin/Skins/Privacy.ascx.cs index 8150b990fae..2a6b0f61b5b 100644 --- a/DNN Platform/Website/admin/Skins/Privacy.ascx.cs +++ b/DNN Platform/Website/admin/Skins/Privacy.ascx.cs @@ -1,74 +1,74 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.UI.Skins.Controls -{ - using System; +namespace DotNetNuke.UI.Skins.Controls +{ + using System; - using DotNetNuke.Abstractions; - using DotNetNuke.Common; - using DotNetNuke.Common.Utilities; - using DotNetNuke.Services.Exceptions; - using DotNetNuke.Services.Localization; + using DotNetNuke.Abstractions; + using DotNetNuke.Common; + using DotNetNuke.Common.Utilities; + using DotNetNuke.Services.Exceptions; + using DotNetNuke.Services.Localization; using Microsoft.Extensions.DependencyInjection; - /// ----------------------------------------------------------------------------- - /// - /// - /// - /// ----------------------------------------------------------------------------- - public partial class Privacy : SkinObjectBase - { - private const string MyFileName = "Privacy.ascx"; - private readonly INavigationManager _navigationManager; - - public Privacy() - { - this._navigationManager = Globals.DependencyProvider.GetRequiredService(); - } - - public string Text { get; set; } - + /// ----------------------------------------------------------------------------- + /// + /// + /// + /// ----------------------------------------------------------------------------- + public partial class Privacy : SkinObjectBase + { + private const string MyFileName = "Privacy.ascx"; + private readonly INavigationManager _navigationManager; + + public Privacy() + { + this._navigationManager = Globals.DependencyProvider.GetRequiredService(); + } + + public string Text { get; set; } + public string CssClass { get; set; } - public string Rel { get; set; } - - protected override void OnInit(EventArgs e) - { - base.OnInit(e); - - this.InitializeComponent(); - } - - protected override void OnLoad(EventArgs e) - { - base.OnLoad(e); - try - { - if (!string.IsNullOrEmpty(this.CssClass)) - { - this.hypPrivacy.CssClass = this.CssClass; - } - - if (!string.IsNullOrEmpty(this.Text)) - { - this.hypPrivacy.Text = this.Text; - } - else - { - this.hypPrivacy.Text = Localization.GetString("Privacy", Localization.GetResourceFile(this, MyFileName)); - } - - this.hypPrivacy.NavigateUrl = this.PortalSettings.PrivacyTabId == Null.NullInteger ? this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Privacy") : this._navigationManager.NavigateURL(this.PortalSettings.PrivacyTabId); - } - catch (Exception exc) - { - Exceptions.ProcessModuleLoadException(this, exc); - } - } - - private void InitializeComponent() - { - } - } -} + public string Rel { get; set; } = "nofollow" + + protected override void OnInit(EventArgs e) + { + base.OnInit(e); + + this.InitializeComponent(); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + try + { + if (!string.IsNullOrEmpty(this.CssClass)) + { + this.hypPrivacy.CssClass = this.CssClass; + } + + if (!string.IsNullOrEmpty(this.Text)) + { + this.hypPrivacy.Text = this.Text; + } + else + { + this.hypPrivacy.Text = Localization.GetString("Privacy", Localization.GetResourceFile(this, MyFileName)); + } + + this.hypPrivacy.NavigateUrl = this.PortalSettings.PrivacyTabId == Null.NullInteger ? this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Privacy") : this._navigationManager.NavigateURL(this.PortalSettings.PrivacyTabId); + } + catch (Exception exc) + { + Exceptions.ProcessModuleLoadException(this, exc); + } + } + + private void InitializeComponent() + { + } + } +} From 4783633433e7acdc0f893293a1c8270ff8864478 Mon Sep 17 00:00:00 2001 From: Andy9999 Date: Mon, 21 Mar 2022 18:37:49 +0100 Subject: [PATCH 3/8] Update DNN Platform/Website/admin/Skins/Terms.ascx.cs Co-authored-by: Brian Dukes --- .../Website/admin/Skins/Terms.ascx.cs | 134 +++++++++--------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/DNN Platform/Website/admin/Skins/Terms.ascx.cs b/DNN Platform/Website/admin/Skins/Terms.ascx.cs index 6b2f86d8f93..4eca8742a8a 100644 --- a/DNN Platform/Website/admin/Skins/Terms.ascx.cs +++ b/DNN Platform/Website/admin/Skins/Terms.ascx.cs @@ -1,74 +1,74 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.UI.Skins.Controls -{ - using System; +namespace DotNetNuke.UI.Skins.Controls +{ + using System; - using DotNetNuke.Abstractions; - using DotNetNuke.Common; - using DotNetNuke.Common.Utilities; - using DotNetNuke.Services.Exceptions; - using DotNetNuke.Services.Localization; + using DotNetNuke.Abstractions; + using DotNetNuke.Common; + using DotNetNuke.Common.Utilities; + using DotNetNuke.Services.Exceptions; + using DotNetNuke.Services.Localization; using Microsoft.Extensions.DependencyInjection; - /// ----------------------------------------------------------------------------- - /// - /// - /// - /// ----------------------------------------------------------------------------- - public partial class Terms : SkinObjectBase - { - private const string MyFileName = "Terms.ascx"; - private readonly INavigationManager _navigationManager; - - public Terms() - { - this._navigationManager = Globals.DependencyProvider.GetRequiredService(); - } - - public string Text { get; set; } - - public string CssClass { get; set; } + /// ----------------------------------------------------------------------------- + /// + /// + /// + /// ----------------------------------------------------------------------------- + public partial class Terms : SkinObjectBase + { + private const string MyFileName = "Terms.ascx"; + private readonly INavigationManager _navigationManager; - public string Rel { get; set; } - - protected override void OnInit(EventArgs e) - { - base.OnInit(e); - - this.InitializeComponent(); - } - - protected override void OnLoad(EventArgs e) - { - base.OnLoad(e); - try - { - if (!string.IsNullOrEmpty(this.CssClass)) - { - this.hypTerms.CssClass = this.CssClass; - } - - if (!string.IsNullOrEmpty(this.Text)) - { - this.hypTerms.Text = this.Text; - } - else - { - this.hypTerms.Text = Localization.GetString("Terms", Localization.GetResourceFile(this, MyFileName)); - } - - this.hypTerms.NavigateUrl = this.PortalSettings.TermsTabId == Null.NullInteger ? this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Terms") : this._navigationManager.NavigateURL(this.PortalSettings.TermsTabId); - } - catch (Exception exc) - { - Exceptions.ProcessModuleLoadException(this, exc); - } - } - - private void InitializeComponent() - { - } - } -} + public Terms() + { + this._navigationManager = Globals.DependencyProvider.GetRequiredService(); + } + + public string Text { get; set; } + + public string CssClass { get; set; } + + public string Rel { get; set; } = "nofollow" + + protected override void OnInit(EventArgs e) + { + base.OnInit(e); + + this.InitializeComponent(); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + try + { + if (!string.IsNullOrEmpty(this.CssClass)) + { + this.hypTerms.CssClass = this.CssClass; + } + + if (!string.IsNullOrEmpty(this.Text)) + { + this.hypTerms.Text = this.Text; + } + else + { + this.hypTerms.Text = Localization.GetString("Terms", Localization.GetResourceFile(this, MyFileName)); + } + + this.hypTerms.NavigateUrl = this.PortalSettings.TermsTabId == Null.NullInteger ? this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Terms") : this._navigationManager.NavigateURL(this.PortalSettings.TermsTabId); + } + catch (Exception exc) + { + Exceptions.ProcessModuleLoadException(this, exc); + } + } + + private void InitializeComponent() + { + } + } +} From 22cb52a88f9f8748f34c335de0a528b13750ad71 Mon Sep 17 00:00:00 2001 From: Andy9999 Date: Mon, 21 Mar 2022 18:37:54 +0100 Subject: [PATCH 4/8] Update DNN Platform/Website/admin/Skins/privacy.ascx Co-authored-by: Brian Dukes --- DNN Platform/Website/admin/Skins/privacy.ascx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DNN Platform/Website/admin/Skins/privacy.ascx b/DNN Platform/Website/admin/Skins/privacy.ascx index 83b6f13a09c..68074eebbe2 100644 --- a/DNN Platform/Website/admin/Skins/privacy.ascx +++ b/DNN Platform/Website/admin/Skins/privacy.ascx @@ -1,2 +1,2 @@ <%@ Control Language="C#" AutoEventWireup="false" Inherits="DotNetNuke.UI.Skins.Controls.Privacy" Codebehind="Privacy.ascx.cs" %> - \ No newline at end of file + \ No newline at end of file From da56b4a4f83d0648da2094e9a91645c24851e5d8 Mon Sep 17 00:00:00 2001 From: Andy9999 Date: Mon, 21 Mar 2022 18:37:59 +0100 Subject: [PATCH 5/8] Update DNN Platform/Website/admin/Skins/terms.ascx Co-authored-by: Brian Dukes --- DNN Platform/Website/admin/Skins/terms.ascx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DNN Platform/Website/admin/Skins/terms.ascx b/DNN Platform/Website/admin/Skins/terms.ascx index 77b2e0b4d8c..14af31821af 100644 --- a/DNN Platform/Website/admin/Skins/terms.ascx +++ b/DNN Platform/Website/admin/Skins/terms.ascx @@ -1,2 +1,2 @@ <%@ Control Language="C#" AutoEventWireup="false" Inherits="DotNetNuke.UI.Skins.Controls.Terms" Codebehind="Terms.ascx.cs" %> - \ No newline at end of file + \ No newline at end of file From 6d9b111f845bb088bf983eac1a52ecf5a9ee4158 Mon Sep 17 00:00:00 2001 From: Brian Dukes Date: Mon, 21 Mar 2022 12:58:48 -0500 Subject: [PATCH 6/8] Apply suggestions from code review --- DNN Platform/Website/admin/Skins/Privacy.ascx.cs | 1 + DNN Platform/Website/admin/Skins/Terms.ascx.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/DNN Platform/Website/admin/Skins/Privacy.ascx.cs b/DNN Platform/Website/admin/Skins/Privacy.ascx.cs index 2a6b0f61b5b..32524ff9c8c 100644 --- a/DNN Platform/Website/admin/Skins/Privacy.ascx.cs +++ b/DNN Platform/Website/admin/Skins/Privacy.ascx.cs @@ -60,6 +60,7 @@ protected override void OnLoad(EventArgs e) } this.hypPrivacy.NavigateUrl = this.PortalSettings.PrivacyTabId == Null.NullInteger ? this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Privacy") : this._navigationManager.NavigateURL(this.PortalSettings.PrivacyTabId); + this.hypPrivacy.Attributes["rel"] = this.Rel; } catch (Exception exc) { diff --git a/DNN Platform/Website/admin/Skins/Terms.ascx.cs b/DNN Platform/Website/admin/Skins/Terms.ascx.cs index 4eca8742a8a..87065f97799 100644 --- a/DNN Platform/Website/admin/Skins/Terms.ascx.cs +++ b/DNN Platform/Website/admin/Skins/Terms.ascx.cs @@ -60,6 +60,7 @@ protected override void OnLoad(EventArgs e) } this.hypTerms.NavigateUrl = this.PortalSettings.TermsTabId == Null.NullInteger ? this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Terms") : this._navigationManager.NavigateURL(this.PortalSettings.TermsTabId); + this.hypPrivacy.Attributes["rel"] = this.Rel; } catch (Exception exc) { From a655ed1080320f0ed924bf02291d03049abb396a Mon Sep 17 00:00:00 2001 From: Andy9999 Date: Mon, 21 Mar 2022 19:31:28 +0100 Subject: [PATCH 7/8] Missing semicolons Added missing semicolons. --- DNN Platform/Website/admin/Skins/Privacy.ascx.cs | 2 +- DNN Platform/Website/admin/Skins/Terms.ascx.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DNN Platform/Website/admin/Skins/Privacy.ascx.cs b/DNN Platform/Website/admin/Skins/Privacy.ascx.cs index 32524ff9c8c..a1c5b9ddaa6 100644 --- a/DNN Platform/Website/admin/Skins/Privacy.ascx.cs +++ b/DNN Platform/Website/admin/Skins/Privacy.ascx.cs @@ -31,7 +31,7 @@ public Privacy() public string CssClass { get; set; } - public string Rel { get; set; } = "nofollow" + public string Rel { get; set; } = "nofollow"; protected override void OnInit(EventArgs e) { diff --git a/DNN Platform/Website/admin/Skins/Terms.ascx.cs b/DNN Platform/Website/admin/Skins/Terms.ascx.cs index 87065f97799..d0bc6e56d64 100644 --- a/DNN Platform/Website/admin/Skins/Terms.ascx.cs +++ b/DNN Platform/Website/admin/Skins/Terms.ascx.cs @@ -31,7 +31,7 @@ public Terms() public string CssClass { get; set; } - public string Rel { get; set; } = "nofollow" + public string Rel { get; set; } = "nofollow"; protected override void OnInit(EventArgs e) { From c4d1d4d6f253b9a8fbf457ad65208c78833025d6 Mon Sep 17 00:00:00 2001 From: Brian Dukes Date: Mon, 21 Mar 2022 13:59:29 -0500 Subject: [PATCH 8/8] Fix typo --- DNN Platform/Website/admin/Skins/Terms.ascx.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DNN Platform/Website/admin/Skins/Terms.ascx.cs b/DNN Platform/Website/admin/Skins/Terms.ascx.cs index d0bc6e56d64..338c86b305f 100644 --- a/DNN Platform/Website/admin/Skins/Terms.ascx.cs +++ b/DNN Platform/Website/admin/Skins/Terms.ascx.cs @@ -60,7 +60,7 @@ protected override void OnLoad(EventArgs e) } this.hypTerms.NavigateUrl = this.PortalSettings.TermsTabId == Null.NullInteger ? this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Terms") : this._navigationManager.NavigateURL(this.PortalSettings.TermsTabId); - this.hypPrivacy.Attributes["rel"] = this.Rel; + this.hypTerms.Attributes["rel"] = this.Rel; } catch (Exception exc) {