diff --git a/src/Umbraco.Core/Models/Mapping/MemberTabsAndPropertiesMapper.cs b/src/Umbraco.Core/Models/Mapping/MemberTabsAndPropertiesMapper.cs
index 92aab36bd4..9ac1b05d0f 100644
--- a/src/Umbraco.Core/Models/Mapping/MemberTabsAndPropertiesMapper.cs
+++ b/src/Umbraco.Core/Models/Mapping/MemberTabsAndPropertiesMapper.cs
@@ -237,6 +237,7 @@ namespace Umbraco.Cms.Core.Models.Mapping
var userRoles = username.IsNullOrWhiteSpace() ? null : _memberService.GetAllRoles(username);
// create a dictionary of all roles (except internal roles) + "false"
+ //TODO: use MembersRoleStore
var result = _memberGroupService.GetAll()
.Select(x => x.Name)
// if a role starts with __umbracoRole we won't show it as it's an internal role used for public access
diff --git a/src/Umbraco.Infrastructure/Security/IMemberManager.cs b/src/Umbraco.Infrastructure/Security/IMemberManager.cs
index 85b4c0c300..b310e9434f 100644
--- a/src/Umbraco.Infrastructure/Security/IMemberManager.cs
+++ b/src/Umbraco.Infrastructure/Security/IMemberManager.cs
@@ -3,7 +3,7 @@ namespace Umbraco.Cms.Core.Security
///
/// The user manager for members
///
- public interface IMemberManager : IUmbracoUserManager
+ public interface IMemberManager : IUmbracoUserManager
{
}
}
diff --git a/src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs b/src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs
index 1a76dec2d5..50c4d1e505 100644
--- a/src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs
+++ b/src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs
@@ -42,10 +42,10 @@ namespace Umbraco.Cms.Core.Security
target.EnableChangeTracking();
});
- mapper.Define(
+ mapper.Define(
(source, context) =>
{
- var target = new MembersIdentityUser(source.Id);
+ var target = new MemberIdentityUser(source.Id);
target.DisableChangeTracking();
return target;
},
@@ -94,7 +94,7 @@ namespace Umbraco.Cms.Core.Security
//target.Roles =;
}
- private void Map(IMember source, MembersIdentityUser target)
+ private void Map(IMember source, MemberIdentityUser target)
{
target.Email = source.Email;
target.UserName = source.Username;
diff --git a/src/Umbraco.Infrastructure/Security/MembersIdentityBuilder.cs b/src/Umbraco.Infrastructure/Security/MemberIdentityBuilder.cs
similarity index 71%
rename from src/Umbraco.Infrastructure/Security/MembersIdentityBuilder.cs
rename to src/Umbraco.Infrastructure/Security/MemberIdentityBuilder.cs
index 726b999b89..4e2e4a39b1 100644
--- a/src/Umbraco.Infrastructure/Security/MembersIdentityBuilder.cs
+++ b/src/Umbraco.Infrastructure/Security/MemberIdentityBuilder.cs
@@ -5,18 +5,18 @@ using Microsoft.Extensions.DependencyInjection;
namespace Umbraco.Cms.Core.Security
{
- public class MembersIdentityBuilder : IdentityBuilder
+ public class MemberIdentityBuilder : IdentityBuilder
{
- public MembersIdentityBuilder(IServiceCollection services) : base(typeof(MembersIdentityUser), services)
+ public MemberIdentityBuilder(IServiceCollection services) : base(typeof(MemberIdentityUser), services)
{
}
- public MembersIdentityBuilder(Type role, IServiceCollection services) : base(typeof(MembersIdentityUser), role, services)
+ public MemberIdentityBuilder(Type role, IServiceCollection services) : base(typeof(MemberIdentityUser), role, services)
{
}
///
- /// Adds a token provider for the .
+ /// Adds a token provider for the .
///
/// The name of the provider to add.
/// The type of the to add.
@@ -27,7 +27,7 @@ namespace Umbraco.Cms.Core.Security
{
throw new InvalidOperationException($"Invalid Type for TokenProvider: {provider.FullName}");
}
- Services.Configure(options =>
+ Services.Configure(options =>
{
options.Tokens.ProviderMap[providerName] = new TokenProviderDescriptor(provider);
});
diff --git a/src/Umbraco.Infrastructure/Security/MembersIdentityOptions.cs b/src/Umbraco.Infrastructure/Security/MemberIdentityOptions.cs
similarity index 78%
rename from src/Umbraco.Infrastructure/Security/MembersIdentityOptions.cs
rename to src/Umbraco.Infrastructure/Security/MemberIdentityOptions.cs
index 8f993a1f76..4e05797a04 100644
--- a/src/Umbraco.Infrastructure/Security/MembersIdentityOptions.cs
+++ b/src/Umbraco.Infrastructure/Security/MemberIdentityOptions.cs
@@ -5,7 +5,7 @@ namespace Umbraco.Cms.Core.Security
///
/// Identity options specifically for the Umbraco members identity implementation
///
- public class MembersIdentityOptions : IdentityOptions
+ public class MemberIdentityOptions : IdentityOptions
{
}
}
diff --git a/src/Umbraco.Infrastructure/Security/MembersIdentityUser.cs b/src/Umbraco.Infrastructure/Security/MemberIdentityUser.cs
similarity index 90%
rename from src/Umbraco.Infrastructure/Security/MembersIdentityUser.cs
rename to src/Umbraco.Infrastructure/Security/MemberIdentityUser.cs
index 6e3473c3ce..539234ac65 100644
--- a/src/Umbraco.Infrastructure/Security/MembersIdentityUser.cs
+++ b/src/Umbraco.Infrastructure/Security/MemberIdentityUser.cs
@@ -11,7 +11,7 @@ namespace Umbraco.Cms.Core.Security
///
/// The identity user used for the member
///
- public class MembersIdentityUser : UmbracoIdentityUser
+ public class MemberIdentityUser : UmbracoIdentityUser
{
private string _name;
private string _passwordConfig;
@@ -23,29 +23,29 @@ namespace Umbraco.Cms.Core.Security
groups => groups.GetHashCode());
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
- public MembersIdentityUser(int userId)
+ public MemberIdentityUser(int userId)
{
// use the property setters - they do more than just setting a field
Id = UserIdToString(userId);
}
- public MembersIdentityUser()
+ public MemberIdentityUser()
{
}
///
/// Used to construct a new instance without an identity
///
- public static MembersIdentityUser CreateNew(string username, string email, string memberTypeAlias, string name = null)
+ public static MemberIdentityUser CreateNew(string username, string email, string memberTypeAlias, string name = null)
{
if (string.IsNullOrWhiteSpace(username))
{
throw new ArgumentException("Value cannot be null or whitespace.", nameof(username));
}
- var user = new MembersIdentityUser();
+ var user = new MemberIdentityUser();
user.DisableChangeTracking();
user.UserName = username;
user.Email = email;
diff --git a/src/Umbraco.Infrastructure/Security/MembersRoleStore.cs b/src/Umbraco.Infrastructure/Security/MemberRoleStore.cs
similarity index 87%
rename from src/Umbraco.Infrastructure/Security/MembersRoleStore.cs
rename to src/Umbraco.Infrastructure/Security/MemberRoleStore.cs
index 3aafa702cd..399da9aec0 100644
--- a/src/Umbraco.Infrastructure/Security/MembersRoleStore.cs
+++ b/src/Umbraco.Infrastructure/Security/MemberRoleStore.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
@@ -7,7 +6,6 @@ using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Umbraco.Cms.Core.Models;
-using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Services;
namespace Umbraco.Cms.Core.Security
@@ -15,19 +13,12 @@ namespace Umbraco.Cms.Core.Security
///
/// A custom user store that uses Umbraco member data
///
- public class MembersRoleStore : RoleStoreBase, string, IdentityUserRole, IdentityRoleClaim>
+ public class MemberRoleStore : RoleStoreBase, string, IdentityUserRole, IdentityRoleClaim>
{
- private readonly IMemberService _memberService;
private readonly IMemberGroupService _memberGroupService;
- private readonly IScopeProvider _scopeProvider;
- public MembersRoleStore(IMemberService memberService, IMemberGroupService memberGroupService, IScopeProvider scopeProvider, IdentityErrorDescriber describer)
- : base(describer)
- {
- _memberService = memberService ?? throw new ArgumentNullException(nameof(memberService));
- _memberGroupService = memberGroupService ?? throw new ArgumentNullException(nameof(memberGroupService));
- _scopeProvider = scopeProvider ?? throw new ArgumentNullException(nameof(scopeProvider));
- }
+ public MemberRoleStore(IMemberGroupService memberGroupService, IdentityErrorDescriber describer)
+ : base(describer) => _memberGroupService = memberGroupService ?? throw new ArgumentNullException(nameof(memberGroupService));
///
public override IQueryable> Roles
@@ -94,7 +85,7 @@ namespace Umbraco.Cms.Core.Security
}
else
{
- //TODO: throw exception when not found, or return failure? And is this the correcet message
+ //TODO: throw exception when not found, or return failure? And is this the correct message
return Task.FromResult(IdentityResult.Failed(ErrorDescriber.InvalidRoleName(role.Name)));
}
@@ -123,7 +114,7 @@ namespace Umbraco.Cms.Core.Security
}
else
{
- //TODO: throw exception when not found, or return failure? And is this the correcet message
+ //TODO: throw exception when not found, or return failure? And is this the correct message
return Task.FromResult(IdentityResult.Failed(ErrorDescriber.InvalidRoleName(role.Name)));
}
@@ -153,6 +144,8 @@ namespace Umbraco.Cms.Core.Security
return Task.FromResult(memberGroup == null ? null : MapFromMemberGroup(memberGroup));
}
+ ///TODO: are we implementing these claims methods?
+
///
public override Task> GetClaimsAsync(IdentityRole role, CancellationToken cancellationToken = new CancellationToken()) => throw new System.NotImplementedException();
diff --git a/src/Umbraco.Infrastructure/Security/MembersUserStore.cs b/src/Umbraco.Infrastructure/Security/MemberUserStore.cs
similarity index 81%
rename from src/Umbraco.Infrastructure/Security/MembersUserStore.cs
rename to src/Umbraco.Infrastructure/Security/MemberUserStore.cs
index 9405992ba8..17a45764ad 100644
--- a/src/Umbraco.Infrastructure/Security/MembersUserStore.cs
+++ b/src/Umbraco.Infrastructure/Security/MemberUserStore.cs
@@ -19,20 +19,20 @@ namespace Umbraco.Cms.Core.Security
///
/// A custom user store that uses Umbraco member data
///
- public class MembersUserStore : UserStoreBase, string, IdentityUserClaim, IdentityUserRole, IdentityUserLogin, IdentityUserToken, IdentityRoleClaim>
+ public class MemberUserStore : UserStoreBase, string, IdentityUserClaim, IdentityUserRole, IdentityUserLogin, IdentityUserToken, IdentityRoleClaim>
{
private readonly IMemberService _memberService;
private readonly UmbracoMapper _mapper;
private readonly IScopeProvider _scopeProvider;
///
- /// Initializes a new instance of the class for the members identity store
+ /// Initializes a new instance of the class for the members identity store
///
/// The member service
/// The mapper for properties
/// The scope provider
/// The error describer
- public MembersUserStore(IMemberService memberService, UmbracoMapper mapper, IScopeProvider scopeProvider, IdentityErrorDescriber describer)
+ public MemberUserStore(IMemberService memberService, UmbracoMapper mapper, IScopeProvider scopeProvider, IdentityErrorDescriber describer)
: base(describer)
{
_memberService = memberService ?? throw new ArgumentNullException(nameof(memberService));
@@ -45,16 +45,16 @@ namespace Umbraco.Cms.Core.Security
///
///
[EditorBrowsable(EditorBrowsableState.Never)]
- public override IQueryable Users => throw new NotImplementedException();
+ public override IQueryable Users => throw new NotImplementedException();
///
- public override Task GetNormalizedUserNameAsync(MembersIdentityUser user, CancellationToken cancellationToken) => GetUserNameAsync(user, cancellationToken);
+ public override Task GetNormalizedUserNameAsync(MemberIdentityUser user, CancellationToken cancellationToken) => GetUserNameAsync(user, cancellationToken);
///
- public override Task SetNormalizedUserNameAsync(MembersIdentityUser user, string normalizedName, CancellationToken cancellationToken) => SetUserNameAsync(user, normalizedName, cancellationToken);
+ public override Task SetNormalizedUserNameAsync(MemberIdentityUser user, string normalizedName, CancellationToken cancellationToken) => SetUserNameAsync(user, normalizedName, cancellationToken);
///
- public override Task CreateAsync(MembersIdentityUser user, CancellationToken cancellationToken = default)
+ public override Task CreateAsync(MemberIdentityUser user, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -100,7 +100,7 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override Task UpdateAsync(MembersIdentityUser user, CancellationToken cancellationToken = default)
+ public override Task UpdateAsync(MemberIdentityUser user, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -121,7 +121,7 @@ namespace Umbraco.Cms.Core.Security
if (found != null)
{
// we have to remember whether Logins property is dirty, since the UpdateMemberProperties will reset it.
- var isLoginsPropertyDirty = user.IsPropertyDirty(nameof(MembersIdentityUser.Logins));
+ var isLoginsPropertyDirty = user.IsPropertyDirty(nameof(MemberIdentityUser.Logins));
if (UpdateMemberProperties(found, user))
{
@@ -148,7 +148,7 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override Task DeleteAsync(MembersIdentityUser user, CancellationToken cancellationToken = default)
+ public override Task DeleteAsync(MemberIdentityUser user, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -170,10 +170,10 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override Task FindByIdAsync(string userId, CancellationToken cancellationToken = default) => FindUserAsync(userId, cancellationToken);
+ public override Task FindByIdAsync(string userId, CancellationToken cancellationToken = default) => FindUserAsync(userId, cancellationToken);
///
- protected override Task FindUserAsync(string userId, CancellationToken cancellationToken)
+ protected override Task FindUserAsync(string userId, CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -181,30 +181,30 @@ namespace Umbraco.Cms.Core.Security
IMember user = _memberService.GetById(UserIdToInt(userId));
if (user == null)
{
- return Task.FromResult((MembersIdentityUser)null);
+ return Task.FromResult((MemberIdentityUser)null);
}
- return Task.FromResult(AssignLoginsCallback(_mapper.Map(user)));
+ return Task.FromResult(AssignLoginsCallback(_mapper.Map(user)));
}
///
- public override Task FindByNameAsync(string userName, CancellationToken cancellationToken = default)
+ public override Task FindByNameAsync(string userName, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
IMember user = _memberService.GetByUsername(userName);
if (user == null)
{
- return Task.FromResult((MembersIdentityUser)null);
+ return Task.FromResult((MemberIdentityUser)null);
}
- MembersIdentityUser result = AssignLoginsCallback(_mapper.Map(user));
+ MemberIdentityUser result = AssignLoginsCallback(_mapper.Map(user));
return Task.FromResult(result);
}
///
- public override async Task SetPasswordHashAsync(MembersIdentityUser user, string passwordHash, CancellationToken cancellationToken = default)
+ public override async Task SetPasswordHashAsync(MemberIdentityUser user, string passwordHash, CancellationToken cancellationToken = default)
{
await base.SetPasswordHashAsync(user, passwordHash, cancellationToken);
@@ -213,7 +213,7 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override async Task HasPasswordAsync(MembersIdentityUser user, CancellationToken cancellationToken = default)
+ public override async Task HasPasswordAsync(MemberIdentityUser user, CancellationToken cancellationToken = default)
{
// This checks if it's null
var result = await base.HasPasswordAsync(user, cancellationToken);
@@ -227,28 +227,28 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override Task FindByEmailAsync(string email, CancellationToken cancellationToken = default)
+ public override Task FindByEmailAsync(string email, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
IMember member = _memberService.GetByEmail(email);
- MembersIdentityUser result = member == null
+ MemberIdentityUser result = member == null
? null
- : _mapper.Map(member);
+ : _mapper.Map(member);
return Task.FromResult(AssignLoginsCallback(result));
}
///
- public override Task GetNormalizedEmailAsync(MembersIdentityUser user, CancellationToken cancellationToken)
+ public override Task GetNormalizedEmailAsync(MemberIdentityUser user, CancellationToken cancellationToken)
=> GetEmailAsync(user, cancellationToken);
///
- public override Task SetNormalizedEmailAsync(MembersIdentityUser user, string normalizedEmail, CancellationToken cancellationToken)
+ public override Task SetNormalizedEmailAsync(MemberIdentityUser user, string normalizedEmail, CancellationToken cancellationToken)
=> SetEmailAsync(user, normalizedEmail, cancellationToken);
///
- public override Task AddLoginAsync(MembersIdentityUser user, UserLoginInfo login, CancellationToken cancellationToken = default)
+ public override Task AddLoginAsync(MemberIdentityUser user, UserLoginInfo login, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -271,7 +271,7 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override Task RemoveLoginAsync(MembersIdentityUser user, string loginProvider, string providerKey, CancellationToken cancellationToken = default)
+ public override Task RemoveLoginAsync(MemberIdentityUser user, string loginProvider, string providerKey, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -290,7 +290,7 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override Task> GetLoginsAsync(MembersIdentityUser user, CancellationToken cancellationToken = default)
+ public override Task> GetLoginsAsync(MemberIdentityUser user, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -308,7 +308,7 @@ namespace Umbraco.Cms.Core.Security
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
- MembersIdentityUser user = await FindUserAsync(userId, cancellationToken);
+ MemberIdentityUser user = await FindUserAsync(userId, cancellationToken);
if (user == null)
{
return null;
@@ -356,7 +356,7 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override Task AddToRoleAsync(MembersIdentityUser user, string role, CancellationToken cancellationToken = default)
+ public override Task AddToRoleAsync(MemberIdentityUser user, string role, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -387,7 +387,7 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override Task RemoveFromRoleAsync(MembersIdentityUser user, string role, CancellationToken cancellationToken = default)
+ public override Task RemoveFromRoleAsync(MemberIdentityUser user, string role, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
@@ -420,7 +420,7 @@ namespace Umbraco.Cms.Core.Security
///
/// Gets a list of role names the specified user belongs to.
///
- public override Task> GetRolesAsync(MembersIdentityUser user, CancellationToken cancellationToken = default)
+ public override Task> GetRolesAsync(MemberIdentityUser user, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -443,7 +443,7 @@ namespace Umbraco.Cms.Core.Security
///
/// Returns true if a user is in the role
///
- public override Task IsInRoleAsync(MembersIdentityUser user, string normalizedRoleName, CancellationToken cancellationToken = default)
+ public override Task IsInRoleAsync(MemberIdentityUser user, string normalizedRoleName, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -458,7 +458,7 @@ namespace Umbraco.Cms.Core.Security
///
/// Lists all users of a given role.
///
- public override Task> GetUsersInRoleAsync(string normalizedRoleName, CancellationToken cancellationToken = default)
+ public override Task> GetUsersInRoleAsync(string normalizedRoleName, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -469,7 +469,7 @@ namespace Umbraco.Cms.Core.Security
IEnumerable members = _memberService.GetMembersByMemberType(normalizedRoleName);
- IList membersIdentityUsers = members.Select(x => _mapper.Map(x)).ToList();
+ IList membersIdentityUsers = members.Select(x => _mapper.Map(x)).ToList();
return Task.FromResult(membersIdentityUsers);
}
@@ -493,7 +493,7 @@ namespace Umbraco.Cms.Core.Security
///
protected override async Task> FindUserRoleAsync(string userId, string roleId, CancellationToken cancellationToken)
{
- MembersIdentityUser user = await FindUserAsync(userId, cancellationToken);
+ MemberIdentityUser user = await FindUserAsync(userId, cancellationToken);
if (user == null)
{
return null;
@@ -504,7 +504,7 @@ namespace Umbraco.Cms.Core.Security
}
///
- public override Task GetSecurityStampAsync(MembersIdentityUser user, CancellationToken cancellationToken = default)
+ public override Task GetSecurityStampAsync(MemberIdentityUser user, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
@@ -519,7 +519,7 @@ namespace Umbraco.Cms.Core.Security
: user.SecurityStamp);
}
- private MembersIdentityUser AssignLoginsCallback(MembersIdentityUser user)
+ private MemberIdentityUser AssignLoginsCallback(MemberIdentityUser user)
{
if (user != null)
{
@@ -530,12 +530,12 @@ namespace Umbraco.Cms.Core.Security
return user;
}
- private bool UpdateMemberProperties(IMember member, MembersIdentityUser identityUserMember)
+ private bool UpdateMemberProperties(IMember member, MemberIdentityUser identityUserMember)
{
var anythingChanged = false;
// don't assign anything if nothing has changed as this will trigger the track changes of the model
- if (identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.LastLoginDateUtc))
+ if (identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.LastLoginDateUtc))
|| (member.LastLoginDate != default && identityUserMember.LastLoginDateUtc.HasValue == false)
|| (identityUserMember.LastLoginDateUtc.HasValue && member.LastLoginDate.ToUniversalTime() != identityUserMember.LastLoginDateUtc.Value))
{
@@ -546,7 +546,7 @@ namespace Umbraco.Cms.Core.Security
member.LastLoginDate = dt;
}
- if (identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.LastPasswordChangeDateUtc))
+ if (identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.LastPasswordChangeDateUtc))
|| (member.LastPasswordChangeDate != default && identityUserMember.LastPasswordChangeDateUtc.HasValue == false)
|| (identityUserMember.LastPasswordChangeDateUtc.HasValue && member.LastPasswordChangeDate.ToUniversalTime() != identityUserMember.LastPasswordChangeDateUtc.Value))
{
@@ -554,7 +554,7 @@ namespace Umbraco.Cms.Core.Security
member.LastPasswordChangeDate = identityUserMember.LastPasswordChangeDateUtc.Value.ToLocalTime();
}
- if (identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.EmailConfirmed))
+ if (identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.EmailConfirmed))
|| (member.EmailConfirmedDate.HasValue && member.EmailConfirmedDate.Value != default && identityUserMember.EmailConfirmed == false)
|| ((member.EmailConfirmedDate.HasValue == false || member.EmailConfirmedDate.Value == default) && identityUserMember.EmailConfirmed))
{
@@ -562,21 +562,21 @@ namespace Umbraco.Cms.Core.Security
member.EmailConfirmedDate = identityUserMember.EmailConfirmed ? (DateTime?)DateTime.Now : null;
}
- if (identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.Name))
+ if (identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.Name))
&& member.Name != identityUserMember.Name && identityUserMember.Name.IsNullOrWhiteSpace() == false)
{
anythingChanged = true;
member.Name = identityUserMember.Name;
}
- if (identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.Email))
+ if (identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.Email))
&& member.Email != identityUserMember.Email && identityUserMember.Email.IsNullOrWhiteSpace() == false)
{
anythingChanged = true;
member.Email = identityUserMember.Email;
}
- if (identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.AccessFailedCount))
+ if (identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.AccessFailedCount))
&& member.FailedPasswordAttempts != identityUserMember.AccessFailedCount)
{
anythingChanged = true;
@@ -595,14 +595,14 @@ namespace Umbraco.Cms.Core.Security
}
}
- if (identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.UserName))
+ if (identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.UserName))
&& member.Username != identityUserMember.UserName && identityUserMember.UserName.IsNullOrWhiteSpace() == false)
{
anythingChanged = true;
member.Username = identityUserMember.UserName;
}
- if (identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.PasswordHash))
+ if (identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.PasswordHash))
&& member.RawPasswordValue != identityUserMember.PasswordHash && identityUserMember.PasswordHash.IsNullOrWhiteSpace() == false)
{
anythingChanged = true;
@@ -617,7 +617,7 @@ namespace Umbraco.Cms.Core.Security
}
// TODO: Fix this for Groups too (as per backoffice comment)
- if (identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.Roles)) || identityUserMember.IsPropertyDirty(nameof(MembersIdentityUser.Groups)))
+ if (identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.Roles)) || identityUserMember.IsPropertyDirty(nameof(MemberIdentityUser.Groups)))
{
}
@@ -645,42 +645,42 @@ namespace Umbraco.Cms.Core.Security
///
///
[EditorBrowsable(EditorBrowsableState.Never)]
- public override Task> GetClaimsAsync(MembersIdentityUser user, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+ public override Task> GetClaimsAsync(MemberIdentityUser user, CancellationToken cancellationToken = default) => throw new NotImplementedException();
///
/// Not supported in Umbraco
///
///
[EditorBrowsable(EditorBrowsableState.Never)]
- public override Task AddClaimsAsync(MembersIdentityUser user, IEnumerable claims, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+ public override Task AddClaimsAsync(MemberIdentityUser user, IEnumerable claims, CancellationToken cancellationToken = default) => throw new NotImplementedException();
///
/// Not supported in Umbraco
///
///
[EditorBrowsable(EditorBrowsableState.Never)]
- public override Task ReplaceClaimAsync(MembersIdentityUser user, Claim claim, Claim newClaim, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+ public override Task ReplaceClaimAsync(MemberIdentityUser user, Claim claim, Claim newClaim, CancellationToken cancellationToken = default) => throw new NotImplementedException();
///
/// Not supported in Umbraco
///
///
[EditorBrowsable(EditorBrowsableState.Never)]
- public override Task RemoveClaimsAsync(MembersIdentityUser user, IEnumerable claims, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+ public override Task RemoveClaimsAsync(MemberIdentityUser user, IEnumerable claims, CancellationToken cancellationToken = default) => throw new NotImplementedException();
///
/// Not supported in Umbraco
///
///
[EditorBrowsable(EditorBrowsableState.Never)]
- public override Task> GetUsersForClaimAsync(Claim claim, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+ public override Task> GetUsersForClaimAsync(Claim claim, CancellationToken cancellationToken = default) => throw new NotImplementedException();
///
/// Not supported in Umbraco
///
///
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override Task> FindTokenAsync(MembersIdentityUser user, string loginProvider, string name, CancellationToken cancellationToken) => throw new NotImplementedException();
+ protected override Task> FindTokenAsync(MemberIdentityUser user, string loginProvider, string name, CancellationToken cancellationToken) => throw new NotImplementedException();
///
/// Not supported in Umbraco
diff --git a/src/Umbraco.Tests.Integration/Umbraco.Web.Common/MembersServiceCollectionExtensionsTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Web.Common/MembersServiceCollectionExtensionsTests.cs
index c426e26750..e76716c152 100644
--- a/src/Umbraco.Tests.Integration/Umbraco.Web.Common/MembersServiceCollectionExtensionsTests.cs
+++ b/src/Umbraco.Tests.Integration/Umbraco.Web.Common/MembersServiceCollectionExtensionsTests.cs
@@ -16,10 +16,10 @@ namespace Umbraco.Tests.Integration.Umbraco.Web.Common
[Test]
public void AddMembersIdentity_ExpectMembersUserStoreResolvable()
{
- IUserStore userStore = Services.GetService>();
+ IUserStore userStore = Services.GetService>();
Assert.IsNotNull(userStore);
- Assert.AreEqual(typeof(MembersUserStore), userStore.GetType());
+ Assert.AreEqual(typeof(MemberUserStore), userStore.GetType());
}
[Test]
diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberIdentityUserManagerTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberIdentityUserManagerTests.cs
index b88189a08b..a319d33b34 100644
--- a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberIdentityUserManagerTests.cs
+++ b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberIdentityUserManagerTests.cs
@@ -19,36 +19,36 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
[TestFixture]
public class MemberIdentityUserManagerTests
{
- private Mock> _mockMemberStore;
- private Mock> _mockIdentityOptions;
- private Mock> _mockPasswordHasher;
- private Mock> _mockUserValidators;
- private Mock>> _mockPasswordValidators;
+ private Mock> _mockMemberStore;
+ private Mock> _mockIdentityOptions;
+ private Mock> _mockPasswordHasher;
+ private Mock> _mockUserValidators;
+ private Mock>> _mockPasswordValidators;
private Mock _mockNormalizer;
private IdentityErrorDescriber _mockErrorDescriber;
private Mock _mockServiceProviders;
- private Mock>> _mockLogger;
+ private Mock>> _mockLogger;
private Mock> _mockPasswordConfiguration;
public MemberManager CreateSut()
{
- _mockMemberStore = new Mock>();
- _mockIdentityOptions = new Mock>();
+ _mockMemberStore = new Mock>();
+ _mockIdentityOptions = new Mock>();
- var idOptions = new MembersIdentityOptions { Lockout = { AllowedForNewUsers = false } };
+ var idOptions = new MemberIdentityOptions { Lockout = { AllowedForNewUsers = false } };
_mockIdentityOptions.Setup(o => o.Value).Returns(idOptions);
- _mockPasswordHasher = new Mock>();
+ _mockPasswordHasher = new Mock>();
- var userValidators = new List>();
- _mockUserValidators = new Mock>();
- var validator = new Mock>();
+ var userValidators = new List>();
+ _mockUserValidators = new Mock>();
+ var validator = new Mock>();
userValidators.Add(validator.Object);
- _mockPasswordValidators = new Mock>>();
+ _mockPasswordValidators = new Mock>>();
_mockNormalizer = new Mock();
_mockErrorDescriber = new IdentityErrorDescriber();
_mockServiceProviders = new Mock();
- _mockLogger = new Mock>>();
+ _mockLogger = new Mock>>();
_mockPasswordConfiguration = new Mock>();
_mockPasswordConfiguration.Setup(x => x.Value).Returns(() =>
new MemberPasswordConfigurationSettings()
@@ -56,9 +56,9 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
});
- var pwdValidators = new List>
+ var pwdValidators = new List>
{
- new PasswordValidator()
+ new PasswordValidator()
};
var userManager = new MemberManager(
@@ -71,12 +71,12 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
new BackOfficeIdentityErrorDescriber(),
_mockServiceProviders.Object,
new Mock().Object,
- new Mock>>().Object,
+ new Mock>>().Object,
_mockPasswordConfiguration.Object);
validator.Setup(v => v.ValidateAsync(
userManager,
- It.IsAny()))
+ It.IsAny()))
.Returns(Task.FromResult(IdentityResult.Success)).Verifiable();
return userManager;
@@ -87,7 +87,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
{
//arrange
MemberManager sut = CreateSut();
- MembersIdentityUser fakeUser = new MembersIdentityUser()
+ MemberIdentityUser fakeUser = new MemberIdentityUser()
{
PasswordConfig = "testConfig"
};
@@ -148,7 +148,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
{
//arrange
MemberManager sut = CreateSut();
- MembersIdentityUser fakeUser = new MembersIdentityUser()
+ MemberIdentityUser fakeUser = new MemberIdentityUser()
{
PasswordConfig = "testConfig"
};
diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberIdentityUserStoreTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberIdentityUserStoreTests.cs
index 8afe7fe198..8a0bf149b7 100644
--- a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberIdentityUserStoreTests.cs
+++ b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberIdentityUserStoreTests.cs
@@ -20,10 +20,10 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
{
private Mock _mockMemberService;
- public MembersUserStore CreateSut()
+ public MemberUserStore CreateSut()
{
_mockMemberService = new Mock();
- return new MembersUserStore(
+ return new MemberUserStore(
_mockMemberService.Object,
new UmbracoMapper(new MapDefinitionCollection(new List())),
new Mock().Object,
@@ -34,7 +34,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public void GivenICreateUser_AndTheUserIsNull_ThenIShouldGetAFailedResultAsync()
{
// arrange
- MembersUserStore sut = CreateSut();
+ MemberUserStore sut = CreateSut();
CancellationToken fakeCancellationToken = new CancellationToken(){};
// act
@@ -49,8 +49,8 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenICreateANewUser_AndTheUserIsPopulatedCorrectly_ThenIShouldGetASuccessResultAsync()
{
// arrange
- MembersUserStore sut = CreateSut();
- var fakeUser = new MembersIdentityUser() { };
+ MemberUserStore sut = CreateSut();
+ var fakeUser = new MemberIdentityUser() { };
var fakeCancellationToken = new CancellationToken() { };
IMemberType fakeMemberType = new MemberType(new MockShortStringHelper(), 77);
diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberRoleStoreTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberRoleStoreTests.cs
index 6c3c741376..f74b6cef94 100644
--- a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberRoleStoreTests.cs
+++ b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberRoleStoreTests.cs
@@ -16,18 +16,14 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
[TestFixture]
public class MemberRoleStoreTests
{
- private Mock _mockMemberService;
private Mock _mockMemberGroupService;
private IdentityErrorDescriber ErrorDescriber => new IdentityErrorDescriber();
- public MembersRoleStore CreateSut()
+ public MemberRoleStore CreateSut()
{
- _mockMemberService = new Mock();
_mockMemberGroupService = new Mock();
- return new MembersRoleStore(
- _mockMemberService.Object,
+ return new MemberRoleStore(
_mockMemberGroupService.Object,
- new Mock().Object,
ErrorDescriber);
}
@@ -35,7 +31,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public void GivenICreateAMemberRole_AndTheGroupIsNull_ThenIShouldGetAFailedResultAsync()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
CancellationToken fakeCancellationToken = new CancellationToken() { };
// act
@@ -50,7 +46,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenICreateAMemberRole_AndTheGroupIsPopulatedCorrectly_ThenIShouldGetASuccessResultAsync()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
var fakeRole = new IdentityRole()
{
Id = "777",
@@ -78,7 +74,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenIUpdateAMemberRole_AndTheGroupExistsWithTheSameName_ThenIShouldGetASuccessResultAsyncButNoUpdatesMade()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
var fakeRole = new IdentityRole()
{
Id = "777",
@@ -107,7 +103,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenIUpdateAMemberRole_AndTheGroupExistsWithADifferentSameName_ThenIShouldGetASuccessResultAsyncWithUpdatesMade()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
var fakeRole = new IdentityRole()
{
Id = "777",
@@ -137,7 +133,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenIUpdateAMemberRole_AndTheGroupDoesntExist_ThenIShouldGetAFailureResultAsync()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
var fakeRole = new IdentityRole()
{
Id = "777",
@@ -161,7 +157,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenIUpdateAMemberRole_AndTheIdCannotBeParsedToAnInt_ThenIShouldGetAFailureResultAsync()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
var fakeRole = new IdentityRole()
{
Id = "7a77",
@@ -184,7 +180,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenIDeleteAMemberRole_AndItExists_ThenTheMemberGroupShouldBeDeleted_AndIShouldGetASuccessResultAsync()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
var fakeRole = new IdentityRole()
{
Id = "777",
@@ -211,7 +207,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenIDeleteAMemberRole_AndTheIdCannotBeParsedToAnInt_ThenTheMemberGroupShouldNotBeDeleted_AndIShouldGetAFailResultAsync()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
var fakeRole = new IdentityRole()
{
Id = "7a77",
@@ -236,7 +232,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenIDeleteAMemberRole_AndItDoesntExist_ThenTheMemberGroupShouldNotBeDeleted_AndIShouldGetAFailResultAsync()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
var fakeRole = new IdentityRole()
{
Id = "777",
@@ -261,7 +257,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
public async Task GivenIGetAllMemberRoles_ThenIShouldGetAllMemberGroups_AndASuccessResultAsync()
{
// arrange
- MembersRoleStore sut = CreateSut();
+ MemberRoleStore sut = CreateSut();
var fakeRole = new IdentityRole("fakeGroupName")
{
Id = "777"
diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/MemberControllerUnitTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/MemberControllerUnitTests.cs
index 5bb4613912..52722f75d1 100644
--- a/src/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/MemberControllerUnitTests.cs
+++ b/src/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/MemberControllerUnitTests.cs
@@ -68,7 +68,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
IMemberGroupService memberGroupService,
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
- IPasswordChanger passwordChanger,
+ IPasswordChanger passwordChanger,
IOptions globalSettings,
IUser user)
{
@@ -78,7 +78,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
sut.ModelState.AddModelError("key", "Invalid model state");
Mock.Get(umbracoMembersUserManager)
- .Setup(x => x.CreateAsync(It.IsAny(), It.IsAny()))
+ .Setup(x => x.CreateAsync(It.IsAny(), It.IsAny()))
.ReturnsAsync(() => IdentityResult.Success);
Mock.Get(umbracoMembersUserManager)
.Setup(x => x.ValidatePasswordAsync(It.IsAny()))
@@ -107,14 +107,14 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
IBackOfficeSecurity backOfficeSecurity,
- IPasswordChanger passwordChanger,
+ IPasswordChanger passwordChanger,
IOptions globalSettings,
IUser user)
{
// arrange
Member member = SetupMemberTestData(out MemberSave fakeMemberData, out MemberDisplay memberDisplay, ContentSaveAction.SaveNew);
Mock.Get(umbracoMembersUserManager)
- .Setup(x => x.CreateAsync(It.IsAny(), It.IsAny()))
+ .Setup(x => x.CreateAsync(It.IsAny(), It.IsAny()))
.ReturnsAsync(() => IdentityResult.Success);
Mock.Get(umbracoMembersUserManager)
.Setup(x => x.ValidatePasswordAsync(It.IsAny()))
@@ -148,14 +148,14 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
IBackOfficeSecurity backOfficeSecurity,
- IPasswordChanger passwordChanger,
+ IPasswordChanger passwordChanger,
IOptions globalSettings,
IUser user)
{
// arrange
Member member = SetupMemberTestData(out MemberSave fakeMemberData, out MemberDisplay memberDisplay, ContentSaveAction.SaveNew);
Mock.Get(umbracoMembersUserManager)
- .Setup(x => x.CreateAsync(It.IsAny(), It.IsAny()))
+ .Setup(x => x.CreateAsync(It.IsAny(), It.IsAny()))
.ReturnsAsync(() => IdentityResult.Success);
Mock.Get(umbracoMembersUserManager)
.Setup(x => x.ValidatePasswordAsync(It.IsAny()))
@@ -190,13 +190,13 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
IBackOfficeSecurity backOfficeSecurity,
- IPasswordChanger passwordChanger,
+ IPasswordChanger passwordChanger,
IOptions globalSettings,
IUser user)
{
// arrange
Member member = SetupMemberTestData(out MemberSave fakeMemberData, out MemberDisplay memberDisplay, ContentSaveAction.Save);
- var membersIdentityUser = new MembersIdentityUser(123);
+ var membersIdentityUser = new MemberIdentityUser(123);
Mock.Get(umbracoMembersUserManager)
.Setup(x => x.FindByIdAsync(It.IsAny()))
.ReturnsAsync(() => membersIdentityUser);
@@ -206,7 +206,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
string password = "fakepassword9aw89rnyco3938cyr^%&*()i8Y";
Mock.Get(umbracoMembersUserManager)
- .Setup(x => x.UpdateAsync(It.IsAny()))
+ .Setup(x => x.UpdateAsync(It.IsAny()))
.ReturnsAsync(() => IdentityResult.Success);
Mock.Get(memberTypeService).Setup(x => x.GetDefault()).Returns("fakeAlias");
Mock.Get(globalSettings);
@@ -242,13 +242,13 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
IBackOfficeSecurity backOfficeSecurity,
- IPasswordChanger passwordChanger,
+ IPasswordChanger passwordChanger,
IOptions globalSettings,
IUser user)
{
// arrange
Member member = SetupMemberTestData(out MemberSave fakeMemberData, out MemberDisplay memberDisplay, ContentSaveAction.Save);
- var membersIdentityUser = new MembersIdentityUser(123);
+ var membersIdentityUser = new MemberIdentityUser(123);
Mock.Get(umbracoMembersUserManager)
.Setup(x => x.FindByIdAsync(It.IsAny()))
.ReturnsAsync(() => membersIdentityUser);
@@ -257,7 +257,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
.ReturnsAsync(() => IdentityResult.Success);
Mock.Get(umbracoMembersUserManager)
- .Setup(x => x.UpdateAsync(It.IsAny()))
+ .Setup(x => x.UpdateAsync(It.IsAny()))
.ReturnsAsync(() => IdentityResult.Success);
Mock.Get(memberTypeService).Setup(x => x.GetDefault()).Returns("fakeAlias");
Mock.Get(globalSettings);
@@ -289,7 +289,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
Mock.Get(backOfficeSecurity).Setup(x => x.CurrentUser).Returns(user);
}
- private static void SetupPasswordSuccess(IMemberManager umbracoMembersUserManager, IPasswordChanger passwordChanger, bool successful = true)
+ private static void SetupPasswordSuccess(IMemberManager umbracoMembersUserManager, IPasswordChanger passwordChanger, bool successful = true)
{
var passwordChanged = new PasswordChangedModel()
{
@@ -322,14 +322,14 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
IBackOfficeSecurity backOfficeSecurity,
- IPasswordChanger passwordChanger,
+ IPasswordChanger passwordChanger,
IOptions globalSettings,
IUser user)
{
// arrange
Member member = SetupMemberTestData(out MemberSave fakeMemberData, out MemberDisplay memberDisplay, ContentSaveAction.SaveNew);
Mock.Get(umbracoMembersUserManager)
- .Setup(x => x.CreateAsync(It.IsAny()))
+ .Setup(x => x.CreateAsync(It.IsAny()))
.ReturnsAsync(() => IdentityResult.Success);
Mock.Get(memberTypeService).Setup(x => x.GetDefault()).Returns("fakeAlias");
Mock.Get(backOfficeSecurityAccessor).Setup(x => x.BackOfficeSecurity).Returns(backOfficeSecurity);
@@ -364,7 +364,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
IBackOfficeSecurity backOfficeSecurity,
- IPasswordChanger passwordChanger,
+ IPasswordChanger passwordChanger,
IOptions globalSettings,
IUser user)
{
@@ -376,7 +376,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
{
roleName
};
- var membersIdentityUser = new MembersIdentityUser(123);
+ var membersIdentityUser = new MemberIdentityUser(123);
Mock.Get(umbracoMembersUserManager)
.Setup(x => x.FindByIdAsync(It.IsAny()))
.ReturnsAsync(() => membersIdentityUser);
@@ -384,7 +384,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
.Setup(x => x.ValidatePasswordAsync(It.IsAny()))
.ReturnsAsync(() => IdentityResult.Success);
Mock.Get(umbracoMembersUserManager)
- .Setup(x => x.UpdateAsync(It.IsAny()))
+ .Setup(x => x.UpdateAsync(It.IsAny()))
.ReturnsAsync(() => IdentityResult.Success);
Mock.Get(memberTypeService).Setup(x => x.GetDefault()).Returns("fakeAlias");
Mock.Get(backOfficeSecurityAccessor).Setup(x => x.BackOfficeSecurity).Returns(backOfficeSecurity);
@@ -429,10 +429,10 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.Controllers
IMemberService memberService,
IMemberTypeService memberTypeService,
IMemberGroupService memberGroupService,
- IUmbracoUserManager membersUserManager,
+ IUmbracoUserManager membersUserManager,
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
- IPasswordChanger passwordChanger,
+ IPasswordChanger passwordChanger,
IOptions globalSettings,
IUser user)
{
diff --git a/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs b/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
index b314cb4fa1..00f2fff56c 100644
--- a/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
+++ b/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
@@ -2435,6 +2435,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
.Select(_umbracoMapper.Map)
.ToArray();
+ //TODO: change to role store
var allGroups = _memberGroupService.GetAll().ToArray();
var groups = entry.Rules
.Where(rule => rule.RuleType == Constants.Conventions.PublicAccess.MemberRoleRuleType)
diff --git a/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs b/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs
index 3c5adb8ebe..b5f8674f9e 100644
--- a/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs
+++ b/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs
@@ -57,7 +57,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor;
private readonly IJsonSerializer _jsonSerializer;
private readonly IShortStringHelper _shortStringHelper;
- private readonly IPasswordChanger _passwordChanger;
+ private readonly IPasswordChanger _passwordChanger;
///
/// Initializes a new instance of the class.
@@ -90,7 +90,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
IJsonSerializer jsonSerializer,
- IPasswordChanger passwordChanger)
+ IPasswordChanger passwordChanger)
: base(cultureDictionary, loggerFactory, shortStringHelper, eventMessages, localizedTextService, jsonSerializer)
{
_propertyEditors = propertyEditors;
@@ -355,7 +355,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
throw new InvalidOperationException($"No member type found with alias {contentItem.ContentTypeAlias}");
}
- var identityMember = MembersIdentityUser.CreateNew(
+ var identityMember = MemberIdentityUser.CreateNew(
contentItem.Username,
contentItem.Email,
memberType.Alias,
@@ -445,7 +445,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
ModelState.AddModelError("custom", "An admin cannot lock a user");
}
- MembersIdentityUser identityMember = await _memberManager.FindByIdAsync(contentItem.Id.ToString());
+ MemberIdentityUser identityMember = await _memberManager.FindByIdAsync(contentItem.Id.ToString());
if (identityMember == null)
{
return new ValidationErrorResult("Identity member was not found");
@@ -586,7 +586,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
///
/// The member content item
/// The member as an identity user
- private async Task AddOrUpdateRoles(MemberSave contentItem, MembersIdentityUser identityMember)
+ private async Task AddOrUpdateRoles(MemberSave contentItem, MemberIdentityUser identityMember)
{
// We're gonna look up the current roles now because the below code can cause
// events to be raised and developers could be manually adding roles to members in
diff --git a/src/Umbraco.Web.BackOffice/Controllers/MemberGroupController.cs b/src/Umbraco.Web.BackOffice/Controllers/MemberGroupController.cs
index 7146cd5820..3ea1d615b8 100644
--- a/src/Umbraco.Web.BackOffice/Controllers/MemberGroupController.cs
+++ b/src/Umbraco.Web.BackOffice/Controllers/MemberGroupController.cs
@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Umbraco.Cms.Core;
using Umbraco.Cms.Core.Mapping;
@@ -26,17 +28,19 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
private readonly IMemberGroupService _memberGroupService;
private readonly UmbracoMapper _umbracoMapper;
private readonly ILocalizedTextService _localizedTextService;
-
+ private readonly RoleManager> _roleManager;
+
public MemberGroupController(
IMemberGroupService memberGroupService,
UmbracoMapper umbracoMapper,
- ILocalizedTextService localizedTextService
+ ILocalizedTextService localizedTextService,
+ RoleManager> roleManager
)
{
_memberGroupService = memberGroupService ?? throw new ArgumentNullException(nameof(memberGroupService));
+ _roleManager = roleManager ?? throw new ArgumentNullException(nameof(roleManager));
_umbracoMapper = umbracoMapper ?? throw new ArgumentNullException(nameof(umbracoMapper));
- _localizedTextService =
- localizedTextService ?? throw new ArgumentNullException(nameof(localizedTextService));
+ _localizedTextService = localizedTextService ?? throw new ArgumentNullException(nameof(localizedTextService));
}
///
@@ -46,13 +50,13 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
///
public ActionResult GetById(int id)
{
- var memberGroup = _memberGroupService.GetById(id);
+ IdentityRole memberGroup = _roleManager.FindByIdAsync(id.ToString()).Result;
if (memberGroup == null)
{
return NotFound();
}
- var dto = _umbracoMapper.Map(memberGroup);
+ MemberGroupDisplay dto = _umbracoMapper.Map, MemberGroupDisplay>(memberGroup);
return dto;
}
@@ -64,7 +68,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
///
public ActionResult GetById(Guid id)
{
- var memberGroup = _memberGroupService.GetById(id);
+ IMemberGroup memberGroup = _memberGroupService.GetById(id);
if (memberGroup == null)
{
return NotFound();
@@ -82,9 +86,11 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
{
var guidUdi = id as GuidUdi;
if (guidUdi == null)
+ {
return NotFound();
+ }
- var memberGroup = _memberGroupService.GetById(guidUdi.Guid);
+ IMemberGroup memberGroup = _memberGroupService.GetById(guidUdi.Guid);
if (memberGroup == null)
{
return NotFound();
@@ -95,15 +101,22 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
public IEnumerable GetByIds([FromQuery]int[] ids)
{
- return _memberGroupService.GetByIds(ids)
- .Select(_umbracoMapper.Map);
+ var roles = new List>();
+
+ foreach (int id in ids)
+ {
+ Task> role = _roleManager.FindByIdAsync(id.ToString());
+ roles.Add(role.Result);
+ }
+
+ return roles.Select(x=> _umbracoMapper.Map, MemberGroupDisplay>(x));
}
[HttpDelete]
[HttpPost]
public IActionResult DeleteById(int id)
{
- var memberGroup = _memberGroupService.GetById(id);
+ IMemberGroup memberGroup = _memberGroupService.GetById(id);
if (memberGroup == null)
{
return NotFound();
@@ -113,11 +126,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
return Ok();
}
- public IEnumerable GetAllGroups()
- {
- return _memberGroupService.GetAll()
- .Select(_umbracoMapper.Map);
- }
+ public IEnumerable GetAllGroups() => _roleManager.Roles.Select(x => _umbracoMapper.Map, MemberGroupDisplay>(x));
public MemberGroupDisplay GetEmpty()
{
diff --git a/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs
index 53ea801490..6be3008a32 100644
--- a/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs
+++ b/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs
@@ -86,7 +86,7 @@ namespace Umbraco.Extensions
builder.Services.AddUnique();
builder.Services.AddUnique();
builder.Services.AddUnique, PasswordChanger>();
- builder.Services.AddUnique, PasswordChanger>();
+ builder.Services.AddUnique, PasswordChanger>();
return builder;
}
diff --git a/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs
index 7445f35f29..5888068656 100644
--- a/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs
+++ b/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs
@@ -32,6 +32,7 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
_memberGroupService = memberGroupService;
}
+ //TODO: change to role store
protected override IEnumerable GetTreeNodesFromService(string id, FormCollection queryStrings)
{
return _memberGroupService.GetAll()
@@ -49,6 +50,7 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
var root = rootResult.Value;
//check if there are any groups
+ //TODO: change to role store
root.HasChildren = _memberGroupService.GetAll().Any();
return root;
}
diff --git a/src/Umbraco.Web.Common/DependencyInjection/ServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/DependencyInjection/ServiceCollectionExtensions.cs
index 8b81fc673c..39a6b2906d 100644
--- a/src/Umbraco.Web.Common/DependencyInjection/ServiceCollectionExtensions.cs
+++ b/src/Umbraco.Web.Common/DependencyInjection/ServiceCollectionExtensions.cs
@@ -65,17 +65,17 @@ namespace Umbraco.Extensions
public static void AddMembersIdentity(this IServiceCollection services) =>
services.BuildMembersIdentity()
.AddDefaultTokenProviders()
- .AddUserStore()
+ .AddUserStore()
.AddMembersManager();
- private static MembersIdentityBuilder BuildMembersIdentity(this IServiceCollection services)
+ private static MemberIdentityBuilder BuildMembersIdentity(this IServiceCollection services)
{
// Services used by Umbraco members identity
- services.TryAddScoped, UserValidator>();
- services.TryAddScoped, PasswordValidator>();
- services.TryAddScoped, PasswordHasher>();
- return new MembersIdentityBuilder(services);
+ services.TryAddScoped, UserValidator>();
+ services.TryAddScoped, PasswordValidator>();
+ services.TryAddScoped, PasswordHasher>();
+ return new MemberIdentityBuilder(services);
}
private static void RemoveIntParamenterIfValueGreatherThen(IDictionary commands, string parameter, int maxValue)
diff --git a/src/Umbraco.Web.Common/Extensions/IdentityBuilderExtensions.cs b/src/Umbraco.Web.Common/Extensions/IdentityBuilderExtensions.cs
index 4daf5457bf..b1c2944565 100644
--- a/src/Umbraco.Web.Common/Extensions/IdentityBuilderExtensions.cs
+++ b/src/Umbraco.Web.Common/Extensions/IdentityBuilderExtensions.cs
@@ -10,13 +10,13 @@ namespace Umbraco.Extensions
public static class IdentityBuilderExtensions
{
///
- /// Adds a for the .
+ /// Adds a for the .
///
/// The usermanager interface
/// The usermanager type
/// The current instance.
public static IdentityBuilder AddMembersManager(this IdentityBuilder identityBuilder)
- where TUserManager : UserManager, TInterface
+ where TUserManager : UserManager, TInterface
{
identityBuilder.Services.AddScoped(typeof(TInterface), typeof(TUserManager));
return identityBuilder;
diff --git a/src/Umbraco.Web.Common/Security/MemberManager.cs b/src/Umbraco.Web.Common/Security/MemberManager.cs
index c36ae0c0fc..ae91852f46 100644
--- a/src/Umbraco.Web.Common/Security/MemberManager.cs
+++ b/src/Umbraco.Web.Common/Security/MemberManager.cs
@@ -16,21 +16,21 @@ using Umbraco.Extensions;
namespace Umbraco.Cms.Web.Common.Security
{
- public class MemberManager : UmbracoUserManager, IMemberManager
+ public class MemberManager : UmbracoUserManager, IMemberManager
{
private readonly IHttpContextAccessor _httpContextAccessor;
public MemberManager(
IIpResolver ipResolver,
- IUserStore store,
- IOptions optionsAccessor,
- IPasswordHasher