Merge remote-tracking branch 'origin/netcore/dev' into netcore/members-roles-save

# Conflicts:
#	src/Umbraco.Infrastructure/Security/MemberUserStore.cs
#	src/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/MemberControllerUnitTests.cs
#	src/Umbraco.Web.BackOffice/Controllers/MemberController.cs
This commit is contained in:
Bjarke Berg
2021-03-18 08:27:17 +01:00
64 changed files with 987 additions and 374 deletions

View File

@@ -2,6 +2,7 @@ using System;
namespace Umbraco.Cms.Core.Models.Identity
{
/// <inheritdoc />
public class ExternalLogin : IExternalLogin
{

View File

@@ -0,0 +1,27 @@
using System;
namespace Umbraco.Cms.Core.Models.Identity
{
/// <inheritdoc />
public class ExternalLoginToken : IExternalLoginToken
{
/// <summary>
/// Initializes a new instance of the <see cref="ExternalLoginToken"/> class.
/// </summary>
public ExternalLoginToken(string loginProvider, string name, string value)
{
LoginProvider = loginProvider ?? throw new ArgumentNullException(nameof(loginProvider));
Name = name ?? throw new ArgumentNullException(nameof(name));
Value = value ?? throw new ArgumentNullException(nameof(value));
}
/// <inheritdoc />
public string LoginProvider { get; }
/// <inheritdoc />
public string Name { get; }
/// <inheritdoc />
public string Value { get; }
}
}

View File

@@ -0,0 +1,23 @@
namespace Umbraco.Cms.Core.Models.Identity
{
/// <summary>
/// Used to persist an external login token for a user
/// </summary>
public interface IExternalLoginToken
{
/// <summary>
/// Gets the login provider
/// </summary>
string LoginProvider { get; }
/// <summary>
/// Gets the name of the token
/// </summary>
string Name { get; }
/// <summary>
/// Gets the value of the token
/// </summary>
string Value { get; }
}
}

View File

@@ -24,7 +24,7 @@ namespace Umbraco.Cms.Core.Models.Identity
string UserId { get; set; } // TODO: This should be able to be used by both users and members
/// <summary>
/// Gets or sets any arbitrary data for the user and external provider - like user tokens returned from the provider
/// Gets or sets any arbitrary data for the user and external provider
/// </summary>
string UserData { get; set; }
}

View File

@@ -0,0 +1,30 @@
using Umbraco.Cms.Core.Models.Entities;
namespace Umbraco.Cms.Core.Models.Identity
{
/// <summary>
/// An external login provider token
/// </summary>
public interface IIdentityUserToken : IEntity
{
/// <summary>
/// Gets or sets user Id for the user who owns this token
/// </summary>
string UserId { get; set; }
/// <summary>
/// Gets or sets the login provider for the login (i.e. Facebook, Google)
/// </summary>
string LoginProvider { get; set; }
/// <summary>
/// Gets or sets the token name
/// </summary>
string Name { get; set; }
/// <summary>
/// Gets or set the token value
/// </summary>
string Value { get; set; }
}
}

View File

@@ -0,0 +1,44 @@
using System;
using Umbraco.Cms.Core.Models.Entities;
namespace Umbraco.Cms.Core.Models.Identity
{
public class IdentityUserToken : EntityBase, IIdentityUserToken
{
/// <summary>
/// Initializes a new instance of the <see cref="IdentityUserToken"/> class.
/// </summary>
public IdentityUserToken(string loginProvider, string name, string value, string userId)
{
LoginProvider = loginProvider ?? throw new ArgumentNullException(nameof(loginProvider));
Name = name ?? throw new ArgumentNullException(nameof(name));
Value = value ?? throw new ArgumentNullException(nameof(value));
UserId = userId;
}
/// <summary>
/// Initializes a new instance of the <see cref="IdentityUserToken"/> class.
/// </summary>
public IdentityUserToken(int id, string loginProvider, string name, string value, string userId, DateTime createDate)
{
Id = id;
LoginProvider = loginProvider ?? throw new ArgumentNullException(nameof(loginProvider));
Name = name ?? throw new ArgumentNullException(nameof(name));
Value = value ?? throw new ArgumentNullException(nameof(value));
UserId = userId;
CreateDate = createDate;
}
/// <inheritdoc />
public string LoginProvider { get; set; }
/// <inheritdoc />
public string Name { get; set; }
/// <inheritdoc />
public string Value { get; set; }
/// <inheritdoc />
public string UserId { get; set; }
}
}