Merge remote-tracking branch 'origin/netcore/dev' into netcore/dev
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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"),
|
||||
|
||||
@@ -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>();
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user