Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebases the resource manager branch with latest changes on develop #4056

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
54d0614
Merge pull request #3899 from dnnsoftware/release/9.6.2
valadas Jul 7, 2020
a11540a
Created IHostController & IConfigurationSetting abstraction
SkyeHoefling Aug 17, 2020
fc51e4a
Added unit tests
SkyeHoefling Aug 17, 2020
425df43
Fixed verbiage in xml documentation
SkyeHoefling Aug 20, 2020
7469775
Updated 'this as INewHostController to use casting instead which will…
SkyeHoefling Aug 20, 2020
f2162fa
removed static instance of IHostController. When consumers request in…
SkyeHoefling Aug 20, 2020
a2749f0
Updated unit tests to use mocked IHostController instead of static si…
SkyeHoefling Aug 20, 2020
8d0180d
CHanged IHostController DI registration to scoped, this will use the …
SkyeHoefling Aug 20, 2020
791fe4e
Fix duplicate line from rebase
bdukes Aug 20, 2020
6ff6c1f
Renamed IHostController -> IHostSettingsService
SkyeHoefling Aug 20, 2020
4d5aea7
Fixed typo in xml docs
SkyeHoefling Aug 20, 2020
391be09
Removed stale 'entities\controllers' folder that is no longer used
SkyeHoefling Aug 21, 2020
f2cecf3
Removed stale <ItemGroup> from csproj
SkyeHoefling Aug 24, 2020
4664d8c
Moved IConfigurationSetting to DotNetNuke.Abstractions.Settings
SkyeHoefling Aug 24, 2020
c24c66f
Moved IHostSettingsService to DotNetNuke.Abstractions.Application
SkyeHoefling Aug 24, 2020
29a0ffe
Add documentation to new .NET Standard projects (#4001)
bdukes Aug 25, 2020
7ce8429
Merge pull request #4009 from dnnsoftware/release/9.7.0
valadas Aug 25, 2020
5e0bdfd
DNN-41046: disallowed custom form without DisplayName and lacking a D…
tauqeer-haider Aug 26, 2020
f11150e
Improves GitVersion speed (#4016)
valadas Aug 26, 2020
2d6eb3f
Popup message content changed to avoid plural confusion (#3980)
tauqeer-haider Aug 28, 2020
78907f0
Fix bug in TokenReplace getting Module by Id
iJungleboy Aug 28, 2020
56ef74f
Merge pull request #3990 from ahoefling/host_controller
valadas Aug 28, 2020
b7e7b16
Merge pull request #4015 from tauqeer-haider/bugfix/DNN-41046
valadas Aug 28, 2020
3a51a57
Update bug-report.md
valadas Aug 29, 2020
e00cd1c
Merge pull request #4020 from dnnsoftware/update-971-issue-template
valadas Aug 29, 2020
bde20f9
Corrects nl-NL typo's in the install & upgrade
EPTamminga Sep 1, 2020
7276009
Merge pull request #4030 from EPTamminga/Issue_4029
mitchelsellers Sep 1, 2020
f54ad48
Implement clickable column headers on the users table
donker Sep 1, 2020
ce2648c
Add official code of conduct file
david-poindexter Sep 2, 2020
1b5b11d
Merge pull request #4033 from david-poindexter/code-of-conduct
valadas Sep 2, 2020
c6539c6
Correct location for code of conduct
david-poindexter Sep 2, 2020
2c7285c
Merge pull request #4034 from david-poindexter/code-of-conduct
valadas Sep 2, 2020
ef345f3
Issue-4035 - Site import soft deleted page fix
berkarslan-xo Sep 2, 2020
8bb34af
Fixed an issue with user management in portal groups (#4041)
valadas Sep 3, 2020
1a30231
DNN-40577: fixed bug in hierarchical vocabularies
daguiler Sep 3, 2020
0a0f4b6
Added dependency injection support for IPortalAliasService to be used…
SkyeHoefling Aug 30, 2020
fc481cd
Moved deprecated APIs to the obsolete PortalAliasController
SkyeHoefling Aug 30, 2020
2e7b4e8
Fixed failing unit tests
SkyeHoefling Aug 30, 2020
4f25e8e
Updated [ValueSource] propery name reference
SkyeHoefling Aug 30, 2020
472db51
Update DNN Platform/DotNetNuke.Abstractions/Portals/IPortalAliasInfo.cs
SkyeHoefling Aug 31, 2020
896c1c4
Update DNN Platform/DotNetNuke.Abstractions/Portals/IPortalAliasInfo.cs
SkyeHoefling Aug 31, 2020
529991f
Update DNN Platform/DotNetNuke.Abstractions/Portals/IPortalAliasInfo.cs
SkyeHoefling Aug 31, 2020
8d22b83
Update DNN Platform/DotNetNuke.Abstractions/Portals/IPortalAliasInfo.cs
SkyeHoefling Aug 31, 2020
9dc3f61
Update DNN Platform/DotNetNuke.Abstractions/Portals/IPortalAliasServi…
SkyeHoefling Aug 31, 2020
585716a
Update DNN Platform/DotNetNuke.Abstractions/Portals/IPortalInfo.cs
SkyeHoefling Aug 31, 2020
78d90f1
Update DNN Platform/DotNetNuke.Abstractions/Portals/IPortalInfo.cs
SkyeHoefling Aug 31, 2020
b3da32c
Update DNN Platform/DotNetNuke.Abstractions/Portals/IPortalInfo.cs
SkyeHoefling Aug 31, 2020
948cf22
Update DNN Platform/Library/Entities/Portals/PortalAliasController.cs
SkyeHoefling Aug 31, 2020
b2b4a93
Update DNN Platform/Library/Obsolete/PortalAliasController.cs
SkyeHoefling Aug 31, 2020
6b1ec88
Removed PortalAliasCollection from abstractions project and we are no…
SkyeHoefling Aug 31, 2020
4a0ca88
Removed KeyID as it is part of IHydratable interface. It shouldn't be…
SkyeHoefling Aug 31, 2020
86dc1fc
Fixed typo in 'ischild' -> 'isChild'
SkyeHoefling Aug 31, 2020
ce5bcb6
Removed unused fields and deprecated them in the implementation for P…
SkyeHoefling Sep 3, 2020
54f081b
Updated camal casing for properties on IPortalAliasInfo
SkyeHoefling Sep 3, 2020
a2fddad
Normalized ID -> id in PortalAliasController and interface
SkyeHoefling Sep 3, 2020
851a620
Added missing <inheritdoc /> tags
SkyeHoefling Sep 3, 2020
d12489d
Fixed interface property name casing as it should begin with a lower …
SkyeHoefling Sep 3, 2020
b5e05d3
Normalized ID -> Id for IPortalInfo/PortalInfo
SkyeHoefling Sep 3, 2020
a3b1670
Updated deprecated methods to use Id suffix
SkyeHoefling Sep 3, 2020
a244c29
Removed build warnings from IPortalAliasService
SkyeHoefling Sep 3, 2020
dca16a6
Updated deprecation notices to match updated object names
SkyeHoefling Sep 4, 2020
bcf5fb7
Merge pull request #4021 from ahoefling/portal_alias
mitchelsellers Sep 4, 2020
0c64c6e
Merge pull request #4036 from berkarslan-xo/bugfix/Issue-4035
valadas Sep 4, 2020
fe92fc2
Merge pull request #4048 from daguiler/bugfix/DNN-40577
valadas Sep 5, 2020
05088c7
Change 'DNN' to 'Application'
thabaum Sep 5, 2020
3b5c48b
Merge pull request #4055 from thabaum/patch-27
valadas Sep 5, 2020
f80d555
Merge pull request #4032 from donker/usersorting
valadas Sep 5, 2020
cd38479
Merge branch 'develop' into fm-rebase-develop
valadas Sep 5, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ Provide any additional context that may be helpful in understanding and/or resol
Please add X in at least one of the boxes as appropriate. In order for an issue to be accepted, a developer needs to be able to reproduce the issue on a currently supported version. If you are looking for a workaround for an issue with an older version, please visit the forums at https://dnncommunity.org/forums
-->
* [ ] 10.00.00 alpha build
* [ ] 09.07.00 release candidate
* [ ] 09.06.02 latest supported release
* [ ] 09.07.01 release candidate
* [ ] 09.07.00 latest supported release

## Affected browser
<!--
Expand Down
5 changes: 5 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant
to clarify expected behavior in our community.
For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
// 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.Abstractions.Application
{
using System.Collections.Generic;

using DotNetNuke.Abstractions.Settings;

/// <summary>
/// The <see cref="IHostSettingsService"/> provides business layer of the HostSettings
/// Entity.
/// </summary>
/// <example>
///
/// <code lang="C#">
/// public class MySampleClass
/// {
/// IHostSettingsService service;
/// public MySampleClass(IHostSettingsService service)
/// {
/// this.service = service;
/// }
///
/// public bool CheckUpgrade { get => this.service.GetBoolean("CheckUpgrade", true);
/// }
/// </code>
/// </example>
public interface IHostSettingsService
{
/// <summary>
/// Gets the setting value by the specific key.
/// </summary>
/// <param name="key">The key.</param>
/// <returns>host setting's value.</returns>
/// <exception cref="System.ArgumentException">key is empty.</exception>
bool GetBoolean(string key);

/// <summary>
/// Gets the setting value by the specific key.
/// </summary>
/// <param name="key">The key.</param>
/// <param name="defaultValue">this value will be return if setting's value is empty.</param>
/// <returns>host setting's value.</returns>
/// <exception cref="System.ArgumentException">key is empty.</exception>
bool GetBoolean(string key, bool defaultValue);

/// <summary>
/// Gets the setting value by the specific key.
/// </summary>
/// <param name="key">The key.</param>
/// <returns>host setting's value.</returns>
/// <exception cref="System.ArgumentException">key is empty.</exception>
double GetDouble(string key);

/// <summary>
/// Gets the setting value by the specific key.
/// </summary>
/// <param name="key">The key.</param>
/// <param name="defaultValue">this value will be return if setting's value is empty.</param>
/// <returns>host setting's value.</returns>
/// <exception cref="System.ArgumentException">key is empty.</exception>
double GetDouble(string key, double defaultValue);

/// <summary>
/// takes in a text value, decrypts it with a FIPS compliant algorithm and returns the value.
/// </summary>
/// <param name="key">the host setting to read.</param>
/// <param name="passPhrase">the pass phrase used for encryption/decryption.</param>
/// <returns>The setting value as a <see cref="string"/>.</returns>
string GetEncryptedString(string key, string passPhrase);

/// <summary>
/// Gets the setting value by the specific key.
/// </summary>
/// <param name="key">The key.</param>
/// <returns>host setting's value.</returns>
/// <exception cref="System.ArgumentException">key is empty.</exception>
int GetInteger(string key);

/// <summary>
/// Gets the setting value by the specific key.
/// </summary>
/// <param name="key">The key.</param>
/// <param name="defaultValue">this value will be return if setting's value is empty.</param>
/// <returns>host setting's value.</returns>
/// <exception cref="System.ArgumentException">key is empty.</exception>
int GetInteger(string key, int defaultValue);

/// <summary>
/// Gets all host settings.
/// </summary>
/// <returns>host setting.</returns>
Dictionary<string, IConfigurationSetting> GetSettings();

/// <summary>
/// Gets all host settings as dictionary.
/// </summary>
/// <returns>host setting's value.</returns>
Dictionary<string, string> GetSettingsDictionary();

/// <summary>
/// Gets the setting value by the specific key.
/// </summary>
/// <param name="key">The key.</param>
/// <returns>host setting's value.</returns>
/// <exception cref="System.ArgumentException">key is empty.</exception>
string GetString(string key);

/// <summary>
/// Gets the setting value by the specific key.
/// </summary>
/// <param name="key">The key.</param>
/// <param name="defaultValue">this value will be return if setting's value is empty.</param>
/// <returns>host setting's value.</returns>
/// <exception cref="System.ArgumentException">key is empty.</exception>
string GetString(string key, string defaultValue);

/// <summary>
/// Increments the Client Resource Manager (CRM) version to bust local cache.
/// </summary>
/// <param name="includeOverridingPortals">If true also forces a CRM version increment on portals that have non-default settings for CRM.</param>
void IncrementCrmVersion(bool includeOverridingPortals);

/// <summary>
/// Updates the specified config.
/// </summary>
/// <param name="config">The config.</param>
void Update(IConfigurationSetting config);

/// <summary>
/// Updates the specified config.
/// </summary>
/// <param name="config">The config.</param>
/// <param name="clearCache">if set to <c>true</c> will clear cache after updating the setting.</param>
void Update(IConfigurationSetting config, bool clearCache);

/// <summary>
/// Updates the specified settings.
/// </summary>
/// <param name="settings">The settings.</param>
void Update(Dictionary<string, string> settings);

/// <summary>
/// Updates the setting for a specified key.
/// </summary>
/// <param name="key">The key.</param>
/// <param name="value">The value.</param>
void Update(string key, string value);

/// <summary>
/// Updates the specified key.
/// </summary>
/// <param name="key">The key.</param>
/// <param name="value">The value.</param>
/// <param name="clearCache">if set to <c>true</c> will clear cache after update settings.</param>
void Update(string key, string value, bool clearCache);

/// <summary>
/// Takes in a <see cref="string"/> value, encrypts it with a FIPS compliant algorithm and stores it.
/// </summary>
/// <param name="key">host settings key.</param>
/// <param name="value">host settings value.</param>
/// <param name="passPhrase">pass phrase to allow encryption/decryption.</param>
void UpdateEncryptedString(string key, string value, string passPhrase);
}
}
55 changes: 41 additions & 14 deletions DNN Platform/DotNetNuke.Abstractions/Portals/IPortalAliasInfo.cs
Original file line number Diff line number Diff line change
@@ -1,27 +1,54 @@
// 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.Abstractions.Portals
{
using System.Data;
using System.Xml;
using System.Xml.Schema;
using DotNetNuke.Abstractions.Urls;

/// <summary>
/// Portal Alias Info interface.
/// </summary>
public interface IPortalAliasInfo
{
//BrowserTypes BrowserType { get; set; }
string CultureCode { get; set; }
string HTTPAlias { get; set; }
/// <summary>
/// Gets or sets the http alias.
/// </summary>
string HttpAlias { get; set; }

/// <summary>
/// Gets or sets the Portal Alias ID.
/// </summary>
int PortalAliasId { get; set; }

/// <summary>
/// Gets or sets the Portal ID.
/// </summary>
int PortalId { get; set; }

/// <summary>
/// Gets or sets a value indicating whether this alias is the primary alias for the site/portal.
/// </summary>
bool IsPrimary { get; set; }
int KeyID { get; set; }
int PortalAliasID { get; set; }
int PortalID { get; set; }

/// <summary>
/// Gets or sets a value indicating whether the alias is a redirect alias.
/// </summary>
bool Redirect { get; set; }
string Skin { get; set; }

void Fill(IDataReader dr);
XmlSchema GetSchema();
void ReadXml(XmlReader reader);
void WriteXml(XmlWriter writer);
/// <summary>
/// Gets or sets the Browser Type.
/// </summary>
BrowserTypes BrowserType { get; set; }

/// <summary>
/// Gets or sets the culture code for this alias, if there is one.
/// </summary>
string CultureCode { get; set; }

/// <summary>
/// Gets or sets the skin/theme for this alias, if there is one.
/// </summary>
string Skin { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
// 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.Abstractions.Portals
{
using System.Collections.Generic;

/// <summary>
/// Portal Alias APIs for managing the different Portal Alias.
/// </summary>
public interface IPortalAliasService
{
/// <summary>
/// Gets the portal alias by portal.
/// </summary>
/// <param name="portalId">The portal id.</param>
/// <param name="portalAlias">The portal alias.</param>
/// <returns>Portal alias.</returns>
string GetPortalAliasByPortal(int portalId, string portalAlias);

/// <summary>
/// Gets the portal alias by tab.
/// </summary>
/// <param name="tabId">The tab ID.</param>
/// <param name="portalAlias">The portal alias.</param>
/// <returns>Portal alias.</returns>
string GetPortalAliasByTab(int tabId, string portalAlias);

/// <summary>
/// Validates the alias.
/// </summary>
/// <param name="portalAlias">The portal alias.</param>
/// <param name="ischild">if set to <c>true</c>, validate the alias as a child alias (i.e. as a subdirectory of another alias).</param>
/// <returns><c>true</c> if the alias is a valid url format; otherwise return <c>false</c>.</returns>
bool ValidateAlias(string portalAlias, bool ischild);

/// <summary>
/// Adds a new Portal Alias.
/// </summary>
/// <param name="portalAlias">The portal alias.</param>
/// <returns>The new portal alias ID.</returns>
int AddPortalAlias(IPortalAliasInfo portalAlias);

/// <summary>
/// Deletes an existing portal alias.
/// </summary>
/// <param name="portalAlias">The portal alias to delete.</param>
void DeletePortalAlias(IPortalAliasInfo portalAlias);

/// <summary>
/// Get a portal alias by name.
/// </summary>
/// <param name="alias">The name of the portal alias.</param>
/// <returns>The portal alias.</returns>
IPortalAliasInfo GetPortalAlias(string alias);

/// <summary>
/// Gets the portal alias.
/// </summary>
/// <param name="alias">The portal alias.</param>
/// <param name="portalId">The portal ID.</param>
/// <returns>Portal Alias Info.</returns>
IPortalAliasInfo GetPortalAlias(string alias, int portalId);

/// <summary>
/// Gets the portal alias by portal alias ID.
/// </summary>
/// <param name="portalAliasId">The portal alias ID.</param>
/// <returns>Portal alias info.</returns>
IPortalAliasInfo GetPortalAliasByPortalAliasId(int portalAliasId);

/// <summary>
/// Get all portal aliases.
/// </summary>
/// <returns>A collection of portal aliases.</returns>
IDictionary<string, IPortalAliasInfo> GetPortalAliases();

/// <summary>
/// Get all the portal aliases for a specific portal.
/// </summary>
/// <param name="portalId">The portal ID.</param>
/// <returns>An IEnumerable of portal aliases.</returns>
IEnumerable<IPortalAliasInfo> GetPortalAliasesByPortalId(int portalId);

/// <summary>
/// Gets the portal by portal alias ID.
/// </summary>
/// <param name="portalAliasId">The portal alias id.</param>
/// <returns>Portal info.</returns>
IPortalInfo GetPortalByPortalAliasId(int portalAliasId);

/// <summary>
/// Update a specified portal alias.
/// </summary>
/// <param name="portalAlias">The portal alias to update.</param>
void UpdatePortalAlias(IPortalAliasInfo portalAlias);
}
}
Loading