Merge remote-tracking branch 'origin/netcore/dev' into netcore/dev

This commit is contained in:
Bjarke Berg
2021-04-06 07:54:02 +02:00
113 changed files with 2814 additions and 1533 deletions

View File

@@ -2434,6 +2434,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
.Select(_umbracoMapper.Map<MemberDisplay>)
.ToArray();
//TODO: change to role manager
var allGroups = _memberGroupService.GetAll().ToArray();
var groups = entry.Rules
.Where(rule => rule.RuleType == Constants.Conventions.PublicAccess.MemberRoleRuleType)

View File

@@ -58,7 +58,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor;
private readonly IJsonSerializer _jsonSerializer;
private readonly IShortStringHelper _shortStringHelper;
private readonly IPasswordChanger<MembersIdentityUser> _passwordChanger;
private readonly IPasswordChanger<MemberIdentityUser> _passwordChanger;
private readonly IScopeProvider _scopeProvider;
/// <summary>
@@ -92,7 +92,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
IDataTypeService dataTypeService,
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
IJsonSerializer jsonSerializer,
IPasswordChanger<MembersIdentityUser> passwordChanger,
IPasswordChanger<MemberIdentityUser> passwordChanger,
IScopeProvider scopeProvider)
: base(cultureDictionary, loggerFactory, shortStringHelper, eventMessages, localizedTextService, jsonSerializer)
{
@@ -362,7 +362,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,
@@ -394,9 +394,6 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
}
}
//TODO: do we need to resave the key?
// contentItem.PersistedContent.Key = contentItem.Key;
// now the member has been saved via identity, resave the member with mapped content properties
_memberService.Save(member);
contentItem.PersistedContent = member;
@@ -459,7 +456,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
bool needsResync = false;
MembersIdentityUser identityMember = await _memberManager.FindByIdAsync(contentItem.Id.ToString());
MemberIdentityUser identityMember = await _memberManager.FindByIdAsync(contentItem.Id.ToString());
if (identityMember == null)
{
return new ValidationErrorResult("Member was not found");
@@ -603,7 +600,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
/// </summary>
/// <param name="groups">The groups to updates</param>
/// <param name="identityMember">The member as an identity user</param>
private async Task<ActionResult<bool>> AddOrUpdateRoles(IEnumerable<string> groups, MembersIdentityUser identityMember)
private async Task<ActionResult<bool>> AddOrUpdateRoles(IEnumerable<string> groups, MemberIdentityUser identityMember)
{
var hasChanges = false;
@@ -654,7 +651,6 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
[HttpPost]
public IActionResult DeleteByKey(Guid key)
{
//TODO: move to MembersUserStore
IMember foundMember = _memberService.GetByKey(key);
if (foundMember == null)
{

View File

@@ -30,13 +30,11 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
public MemberGroupController(
IMemberGroupService memberGroupService,
UmbracoMapper umbracoMapper,
ILocalizedTextService localizedTextService
)
ILocalizedTextService localizedTextService)
{
_memberGroupService = memberGroupService ?? throw new ArgumentNullException(nameof(memberGroupService));
_umbracoMapper = umbracoMapper ?? throw new ArgumentNullException(nameof(umbracoMapper));
_localizedTextService =
localizedTextService ?? throw new ArgumentNullException(nameof(localizedTextService));
_localizedTextService = localizedTextService ?? throw new ArgumentNullException(nameof(localizedTextService));
}
/// <summary>
@@ -46,17 +44,16 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
/// <returns></returns>
public ActionResult<MemberGroupDisplay> GetById(int id)
{
var memberGroup = _memberGroupService.GetById(id);
IMemberGroup memberGroup = _memberGroupService.GetById(id);
if (memberGroup == null)
{
return NotFound();
}
var dto = _umbracoMapper.Map<IMemberGroup, MemberGroupDisplay>(memberGroup);
MemberGroupDisplay dto = _umbracoMapper.Map<IMemberGroup, MemberGroupDisplay>(memberGroup);
return dto;
}
/// <summary>
/// Gets the member group json for the member group guid
/// </summary>
@@ -64,7 +61,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
/// <returns></returns>
public ActionResult<MemberGroupDisplay> GetById(Guid id)
{
var memberGroup = _memberGroupService.GetById(id);
IMemberGroup memberGroup = _memberGroupService.GetById(id);
if (memberGroup == null)
{
return NotFound();
@@ -82,9 +79,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();
@@ -93,11 +92,8 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
return _umbracoMapper.Map<IMemberGroup, MemberGroupDisplay>(memberGroup);
}
public IEnumerable<MemberGroupDisplay> GetByIds([FromQuery]int[] ids)
{
return _memberGroupService.GetByIds(ids)
.Select(_umbracoMapper.Map<IMemberGroup, MemberGroupDisplay>);
}
public IEnumerable<MemberGroupDisplay> GetByIds([FromQuery] int[] ids)
=> _memberGroupService.GetByIds(ids).Select(_umbracoMapper.Map<IMemberGroup, MemberGroupDisplay>);
[HttpDelete]
[HttpPost]
@@ -114,10 +110,8 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
}
public IEnumerable<MemberGroupDisplay> GetAllGroups()
{
return _memberGroupService.GetAll()
=> _memberGroupService.GetAll()
.Select(_umbracoMapper.Map<IMemberGroup, MemberGroupDisplay>);
}
public MemberGroupDisplay GetEmpty()
{
@@ -129,7 +123,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
{
var id = int.Parse(saveModel.Id.ToString());
var memberGroup = id > 0 ? _memberGroupService.GetById(id) : new MemberGroup();
IMemberGroup memberGroup = id > 0 ? _memberGroupService.GetById(id) : new MemberGroup();
if (memberGroup == null)
{
return NotFound();
@@ -138,7 +132,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
memberGroup.Name = saveModel.Name;
_memberGroupService.Save(memberGroup);
var display = _umbracoMapper.Map<IMemberGroup, MemberGroupDisplay>(memberGroup);
MemberGroupDisplay display = _umbracoMapper.Map<IMemberGroup, MemberGroupDisplay>(memberGroup);
display.AddSuccessNotification(
_localizedTextService.Localize("speechBubbles/memberGroupSavedHeader"),

View File

@@ -90,7 +90,7 @@ namespace Umbraco.Extensions
builder.Services.AddUnique<BackOfficeExternalLoginProviderErrorMiddleware>();
builder.Services.AddUnique<IBackOfficeAntiforgery, BackOfficeAntiforgery>();
builder.Services.AddUnique<IPasswordChanger<BackOfficeIdentityUser>, PasswordChanger<BackOfficeIdentityUser>>();
builder.Services.AddUnique<IPasswordChanger<MembersIdentityUser>, PasswordChanger<MembersIdentityUser>>();
builder.Services.AddUnique<IPasswordChanger<MemberIdentityUser>, PasswordChanger<MemberIdentityUser>>();
builder.AddNotificationHandler<UserLoginSuccessNotification, BackOfficeUserManagerAuditer>();
builder.AddNotificationHandler<UserLogoutSuccessNotification, BackOfficeUserManagerAuditer>();

View File

@@ -1,4 +1,6 @@
using System;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Umbraco.Cms.Core;
using Umbraco.Cms.Core.Mapping;
using Umbraco.Cms.Core.Models;
@@ -17,15 +19,12 @@ namespace Umbraco.Cms.Web.BackOffice.Mapping
private readonly CommonMapper _commonMapper;
private readonly CommonTreeNodeMapper _commonTreeNodeMapper;
private readonly MemberTabsAndPropertiesMapper _tabsAndPropertiesMapper;
private readonly IHttpContextAccessor _httpContextAccessor;
public MemberMapDefinition(CommonMapper commonMapper, CommonTreeNodeMapper commonTreeNodeMapper, MemberTabsAndPropertiesMapper tabsAndPropertiesMapper, IHttpContextAccessor httpContextAccessor)
public MemberMapDefinition(CommonMapper commonMapper, CommonTreeNodeMapper commonTreeNodeMapper, MemberTabsAndPropertiesMapper tabsAndPropertiesMapper)
{
_commonMapper = commonMapper;
_commonTreeNodeMapper = commonTreeNodeMapper;
_tabsAndPropertiesMapper = tabsAndPropertiesMapper;
_httpContextAccessor = httpContextAccessor;
}
public void DefineMaps(UmbracoMapper mapper)

View File

@@ -28,25 +28,21 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
IMemberGroupService memberGroupService,
IEventAggregator eventAggregator)
: base(localizedTextService, umbracoApiControllerTypeCollection, menuItemCollectionFactory, eventAggregator)
{
_memberGroupService = memberGroupService;
}
=> _memberGroupService = memberGroupService;
protected override IEnumerable<TreeNode> GetTreeNodesFromService(string id, FormCollection queryStrings)
{
return _memberGroupService.GetAll()
=> _memberGroupService.GetAll()
.OrderBy(x => x.Name)
.Select(dt => CreateTreeNode(dt.Id.ToString(), id, queryStrings, dt.Name, Constants.Icons.MemberGroup, false));
}
protected override ActionResult<TreeNode> CreateRootNode(FormCollection queryStrings)
{
var rootResult = base.CreateRootNode(queryStrings);
ActionResult<TreeNode> rootResult = base.CreateRootNode(queryStrings);
if (!(rootResult.Result is null))
{
return rootResult;
}
var root = rootResult.Value;
TreeNode root = rootResult.Value;
//check if there are any groups
root.HasChildren = _memberGroupService.GetAll().Any();

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
@@ -31,6 +31,11 @@
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
<_Parameter1>Umbraco.Tests.Integration</_Parameter1>
</AssemblyAttribute>
<!-- Making internals visible to Umbraco Forms -->
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
<_Parameter1>Umbraco.Forms.Web</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
<ItemGroup>