Merge origin/dev-v7.6 into dev-v8-zbwip (builds, not tested)

This commit is contained in:
Stephan
2016-11-23 10:33:12 +01:00
171 changed files with 3049 additions and 2024 deletions

View File

@@ -42,38 +42,18 @@ namespace Umbraco.Web.Models.Mapping
//FROM IContent TO ContentItemDisplay
config.CreateMap<IContent, ContentItemDisplay>()
.ForMember(
dto => dto.Owner,
expression => expression.ResolveUsing(new OwnerResolver<IContent>(_userService)))
.ForMember(
dto => dto.Updater,
expression => expression.ResolveUsing(new CreatorResolver(_userService)))
.ForMember(
dto => dto.Icon,
expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(
dto => dto.ContentTypeAlias,
expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(
dto => dto.ContentTypeName,
expression => expression.MapFrom(content => content.ContentType.Name))
.ForMember(
dto => dto.IsContainer,
expression => expression.MapFrom(content => content.ContentType.IsContainer))
.ForMember(display => display.IsChildOfListView, expression => expression.Ignore())
.ForMember(
dto => dto.Trashed,
expression => expression.MapFrom(content => content.Trashed))
.ForMember(
dto => dto.PublishDate,
expression => expression.MapFrom(content => GetPublishedDate(_contentService, content)))
.ForMember(
dto => dto.TemplateAlias, expression => expression.MapFrom(content => content.Template.Alias))
.ForMember(
dto => dto.HasPublishedVersion,
expression => expression.MapFrom(content => content.HasPublishedVersion))
.ForMember(
dto => dto.Urls,
.ForMember(display => display.Owner, expression => expression.ResolveUsing(new OwnerResolver<IContent>(_userService)))
.ForMember(display => display.Updater, expression => expression.ResolveUsing(new CreatorResolver(_userService)))
.ForMember(display => display.Icon, expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(display => display.ContentTypeAlias, expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(display => display.ContentTypeName, expression => expression.MapFrom(content => content.ContentType.Name))
.ForMember(display => display.IsContainer, expression => expression.MapFrom(content => content.ContentType.IsContainer))
.ForMember(display => display.IsChildOfListView, expression => expression.Ignore())
.ForMember(display => display.Trashed, expression => expression.MapFrom(content => content.Trashed))
.ForMember(display => display.PublishDate, expression => expression.MapFrom(content => GetPublishedDate(_contentService, content)))
.ForMember(display => display.TemplateAlias, expression => expression.MapFrom(content => content.Template.Alias))
.ForMember(display => display.HasPublishedVersion, expression => expression.MapFrom(content => content.HasPublishedVersion))
.ForMember(display => display.Urls,
expression => expression.MapFrom(content =>
UmbracoContext.Current == null
? new[] {"Cannot generate urls without a current Umbraco Context"}
@@ -87,47 +67,27 @@ namespace Umbraco.Web.Models.Mapping
.ForMember(display => display.Tabs, expression => expression.ResolveUsing(new TabsAndPropertiesResolver(_textService)))
.ForMember(display => display.AllowedActions, expression => expression.ResolveUsing(
new ActionButtonsResolver(new Lazy<IUserService>(() => _userService))))
.AfterMap((media, display) => AfterMap(media, display, _dataTypeService, _textService,
_contentTypeService, _contentService));
.AfterMap((content, display) => AfterMap(content, display, _dataTypeService, _textService, _contentTypeService, _contentService));
//FROM IContent TO ContentItemBasic<ContentPropertyBasic, IContent>
config.CreateMap<IContent, ContentItemBasic<ContentPropertyBasic, IContent>>()
.ForMember(
dto => dto.Owner,
expression => expression.ResolveUsing(new OwnerResolver<IContent>(_userService)))
.ForMember(
dto => dto.Updater,
expression => expression.ResolveUsing(new CreatorResolver(_userService)))
.ForMember(
dto => dto.Icon,
expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(
dto => dto.Trashed,
expression => expression.MapFrom(content => content.Trashed))
.ForMember(
dto => dto.HasPublishedVersion,
expression => expression.MapFrom(content => content.HasPublishedVersion))
.ForMember(
dto => dto.ContentTypeAlias,
expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(display => display.Alias, expression => expression.Ignore());
.ForMember(dto => dto.Owner, expression => expression.ResolveUsing(new OwnerResolver<IContent>(_userService)))
.ForMember(dto => dto.Updater, expression => expression.ResolveUsing(new CreatorResolver(_userService)))
.ForMember(dto => dto.Icon, expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(dto => dto.Trashed, expression => expression.MapFrom(content => content.Trashed))
.ForMember(dto => dto.HasPublishedVersion, expression => expression.MapFrom(content => content.HasPublishedVersion))
.ForMember(dto => dto.ContentTypeAlias, expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(dto => dto.Alias, expression => expression.Ignore());
//FROM IContent TO ContentItemDto<IContent>
config.CreateMap<IContent, ContentItemDto<IContent>>()
.ForMember(
dto => dto.Owner,
expression => expression.ResolveUsing(new OwnerResolver<IContent>(_userService)))
.ForMember(
dto => dto.HasPublishedVersion,
expression => expression.MapFrom(content => content.HasPublishedVersion))
.ForMember(display => display.Updater, expression => expression.Ignore())
.ForMember(display => display.Icon, expression => expression.Ignore())
.ForMember(display => display.Alias, expression => expression.Ignore());
.ForMember(dto => dto.Owner, expression => expression.ResolveUsing(new OwnerResolver<IContent>(_userService)))
.ForMember(dto => dto.HasPublishedVersion, expression => expression.MapFrom(content => content.HasPublishedVersion))
.ForMember(dto => dto.Updater, expression => expression.Ignore())
.ForMember(dto => dto.Icon, expression => expression.Ignore())
.ForMember(dto => dto.Alias, expression => expression.Ignore());
}
/// <summary>
/// Maps the generic tab with custom properties for content
/// </summary>
@@ -137,7 +97,7 @@ namespace Umbraco.Web.Models.Mapping
/// <param name="localizedText"></param>
/// <param name="contentTypeService"></param>
/// <param name="contentService"></param>
private static void AfterMap(IContent content, ContentItemDisplay display, IDataTypeService dataTypeService,
private static void AfterMap(IContent content, ContentItemDisplay display, IDataTypeService dataTypeService,
ILocalizedTextService localizedText, IContentTypeService contentTypeService, IContentService contentService)
{
//map the IsChildOfListView (this is actually if it is a descendant of a list view!)
@@ -165,7 +125,6 @@ namespace Umbraco.Web.Models.Mapping
display.IsChildOfListView = ancesctorListView != null;
}
}
//map the tree node url
if (HttpContext.Current != null)
@@ -174,9 +133,9 @@ namespace Umbraco.Web.Models.Mapping
var url = urlHelper.GetUmbracoApiService<ContentTreeController>(controller => controller.GetTreeNode(display.Id.ToString(), null));
display.TreeNodeUrl = url;
}
//fill in the template config to be passed to the template drop down.
var templateItemConfig = new Dictionary<string, string> { { "", "Choose..." } };
var templateItemConfig = new Dictionary<string, string> {{"", "Choose..."}};
foreach (var t in content.ContentType.AllowedTemplates
.Where(t => t.Alias.IsNullOrWhiteSpace() == false && t.Name.IsNullOrWhiteSpace() == false))
{
@@ -187,7 +146,7 @@ namespace Umbraco.Web.Models.Mapping
{
TabsAndPropertiesResolver.AddListView(display, "content", dataTypeService, localizedText);
}
var properties = new List<ContentPropertyDisplay>
{
new ContentPropertyDisplay
@@ -197,7 +156,7 @@ namespace Umbraco.Web.Models.Mapping
Value = localizedText.UmbracoDictionaryTranslate(display.ContentTypeName),
View = Current.PropertyEditors[Constants.PropertyEditors.NoEditAlias].ValueEditor.View
},
new ContentPropertyDisplay
new ContentPropertyDisplay
{
Alias = string.Format("{0}releasedate", Constants.PropertyEditors.InternalGenericPropertiesPrefix),
Label = localizedText.Localize("content/releaseDate"),
@@ -209,7 +168,7 @@ namespace Umbraco.Web.Models.Mapping
{"offsetTime", "1"}
}
//TODO: Fix up hard coded datepicker
} ,
},
new ContentPropertyDisplay
{
Alias = string.Format("{0}expiredate", Constants.PropertyEditors.InternalGenericPropertiesPrefix),
@@ -260,21 +219,21 @@ namespace Umbraco.Web.Models.Mapping
var docTypeLink = string.Format("#/settings/documenttypes/edit/{0}", currentDocumentTypeId);
//Replace the doc type property
var docTypeProp = genericProperties.First(x => x.Alias == string.Format("{0}doctype", Constants.PropertyEditors.InternalGenericPropertiesPrefix));
docTypeProp.Value = new List<object>
var docTypeProperty = genericProperties.First(x => x.Alias == string.Format("{0}doctype", Constants.PropertyEditors.InternalGenericPropertiesPrefix));
docTypeProperty.Value = new List<object>
{
new
{
linkText = currentDocumentTypeName,
url = docTypeLink,
target = "_self", icon = "icon-item-arrangement"
target = "_self",
icon = "icon-item-arrangement"
}
};
//TODO: Hard coding this because the templatepicker doesn't necessarily need to be a resolvable (real) property editor
docTypeProp.View = "urllist";
docTypeProperty.View = "urllist";
}
});
}
/// <summary>
@@ -319,13 +278,13 @@ namespace Umbraco.Web.Models.Mapping
var svc = _userService.Value;
var permissions = svc.GetPermissions(
//TODO: This is certainly not ideal usage here - perhaps the best way to deal with this in the future is
// with the IUmbracoContextAccessor. In the meantime, if used outside of a web app this will throw a null
// refrence exception :(
UmbracoContext.Current.Security.CurrentUser,
// Here we need to do a special check since this could be new content, in which case we need to get the permissions
// from the parent, not the existing one otherwise permissions would be coming from the root since Id is 0.
source.HasIdentity ? source.Id : source.ParentId)
//TODO: This is certainly not ideal usage here - perhaps the best way to deal with this in the future is
// with the IUmbracoContextAccessor. In the meantime, if used outside of a web app this will throw a null
// refrence exception :(
UmbracoContext.Current.Security.CurrentUser,
// Here we need to do a special check since this could be new content, in which case we need to get the permissions
// from the parent, not the existing one otherwise permissions would be coming from the root since Id is 0.
source.HasIdentity ? source.Id : source.ParentId)
.FirstOrDefault();
return permissions == null
@@ -333,6 +292,5 @@ namespace Umbraco.Web.Models.Mapping
: permissions.AssignedPermissions.Where(x => x.Length == 1).Select(x => x.ToUpperInvariant()[0]);
}
}
}
}

View File

@@ -39,22 +39,12 @@ namespace Umbraco.Web.Models.Mapping
{
//FROM IMedia TO MediaItemDisplay
config.CreateMap<IMedia, MediaItemDisplay>()
.ForMember(
dto => dto.Owner,
expression => expression.ResolveUsing(new OwnerResolver<IMedia>(_userService)))
.ForMember(
dto => dto.Icon,
expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(
dto => dto.ContentTypeAlias,
expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(display => display.Owner, expression => expression.ResolveUsing(new OwnerResolver<IMedia>(_userService)))
.ForMember(display => display.Icon, expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(display => display.ContentTypeAlias, expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(display => display.IsChildOfListView, expression => expression.Ignore())
.ForMember(
dto => dto.Trashed,
expression => expression.MapFrom(content => content.Trashed))
.ForMember(
dto => dto.ContentTypeName,
expression => expression.MapFrom(content => content.ContentType.Name))
.ForMember(display => display.Trashed, expression => expression.MapFrom(content => content.Trashed))
.ForMember(display => display.ContentTypeName, expression => expression.MapFrom(content => content.ContentType.Name))
.ForMember(display => display.Properties, expression => expression.Ignore())
.ForMember(display => display.TreeNodeUrl, expression => expression.Ignore())
.ForMember(display => display.Notifications, expression => expression.Ignore())
@@ -63,39 +53,29 @@ namespace Umbraco.Web.Models.Mapping
.ForMember(display => display.Updater, expression => expression.Ignore())
.ForMember(display => display.Alias, expression => expression.Ignore())
.ForMember(display => display.IsContainer, expression => expression.Ignore())
.ForMember(member => member.HasPublishedVersion, expression => expression.Ignore())
.ForMember(display => display.HasPublishedVersion, expression => expression.Ignore())
.ForMember(display => display.Tabs, expression => expression.ResolveUsing(new TabsAndPropertiesResolver(_textService)))
.AfterMap((media, display) => AfterMap(media, display, _dataTypeService, _textService, _logger, _mediaService));
//FROM IMedia TO ContentItemBasic<ContentPropertyBasic, IMedia>
config.CreateMap<IMedia, ContentItemBasic<ContentPropertyBasic, IMedia>>()
.ForMember(
dto => dto.Owner,
expression => expression.ResolveUsing(new OwnerResolver<IMedia>(_userService)))
.ForMember(
dto => dto.Icon,
expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(
dto => dto.Trashed,
expression => expression.MapFrom(content => content.Trashed))
.ForMember(
dto => dto.ContentTypeAlias,
expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(x => x.Published, expression => expression.Ignore())
.ForMember(x => x.Updater, expression => expression.Ignore())
.ForMember(x => x.Alias, expression => expression.Ignore())
.ForMember(member => member.HasPublishedVersion, expression => expression.Ignore());
.ForMember(dto => dto.Owner, expression => expression.ResolveUsing(new OwnerResolver<IMedia>(_userService)))
.ForMember(dto => dto.Icon, expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(dto => dto.Trashed, expression => expression.MapFrom(content => content.Trashed))
.ForMember(dto => dto.ContentTypeAlias, expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(dto => dto.Published, expression => expression.Ignore())
.ForMember(dto => dto.Updater, expression => expression.Ignore())
.ForMember(dto => dto.Alias, expression => expression.Ignore())
.ForMember(dto => dto.HasPublishedVersion, expression => expression.Ignore());
//FROM IMedia TO ContentItemDto<IMedia>
config.CreateMap<IMedia, ContentItemDto<IMedia>>()
.ForMember(
dto => dto.Owner,
expression => expression.ResolveUsing(new OwnerResolver<IMedia>(_userService)))
.ForMember(x => x.Published, expression => expression.Ignore())
.ForMember(x => x.Updater, expression => expression.Ignore())
.ForMember(x => x.Icon, expression => expression.Ignore())
.ForMember(x => x.Alias, expression => expression.Ignore())
.ForMember(member => member.HasPublishedVersion, expression => expression.Ignore());
.ForMember(dto => dto.Owner, expression => expression.ResolveUsing(new OwnerResolver<IMedia>(_userService)))
.ForMember(dto => dto.Published, expression => expression.Ignore())
.ForMember(dto => dto.Updater, expression => expression.Ignore())
.ForMember(dto => dto.Icon, expression => expression.Ignore())
.ForMember(dto => dto.Alias, expression => expression.Ignore())
.ForMember(dto => dto.HasPublishedVersion, expression => expression.Ignore());
}
private static void AfterMap(IMedia media, MediaItemDisplay display, IDataTypeService dataTypeService, ILocalizedTextService localizedText, ILogger logger, IMediaService mediaService)
@@ -165,8 +145,28 @@ namespace Umbraco.Web.Models.Mapping
genericProperties.Add(link);
}
TabsAndPropertiesResolver.MapGenericProperties(media, display, localizedText, genericProperties);
}
TabsAndPropertiesResolver.MapGenericProperties(media, display, localizedText, genericProperties, properties =>
{
if (HttpContext.Current != null && UmbracoContext.Current != null && UmbracoContext.Current.Security.CurrentUser != null
&& UmbracoContext.Current.Security.CurrentUser.AllowedSections.Any(x => x.Equals(Constants.Applications.Settings)))
{
var mediaTypeLink = string.Format("#/settings/mediatypes/edit/{0}", media.ContentTypeId);
//Replace the doctype property
var docTypeProperty = properties.First(x => x.Alias == string.Format("{0}doctype", Constants.PropertyEditors.InternalGenericPropertiesPrefix));
docTypeProperty.Value = new List<object>
{
new
{
linkText = media.ContentType.Name,
url = mediaTypeLink,
target = "_self",
icon = "icon-item-arrangement"
}
};
docTypeProperty.View = "urllist";
}
});
}
}
}

View File

@@ -40,10 +40,10 @@ namespace Umbraco.Web.Models.Mapping
//FROM MembershipUser TO MediaItemDisplay - used when using a non-umbraco membership provider
config.CreateMap<MembershipUser, MemberDisplay>()
.ConvertUsing(user =>
{
var member = Mapper.Map<MembershipUser, IMember>(user);
return Mapper.Map<IMember, MemberDisplay>(member);
});
{
var member = Mapper.Map<MembershipUser, IMember>(user);
return Mapper.Map<IMember, MemberDisplay>(member);
});
//FROM MembershipUser TO IMember - used when using a non-umbraco membership provider
config.CreateMap<MembershipUser, IMember>()
@@ -73,23 +73,13 @@ namespace Umbraco.Web.Models.Mapping
//FROM IMember TO MediaItemDisplay
config.CreateMap<IMember, MemberDisplay>()
.ForMember(
dto => dto.Owner,
expression => expression.ResolveUsing(new OwnerResolver<IMember>(_userService)))
.ForMember(
dto => dto.Icon,
expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(
dto => dto.ContentTypeAlias,
expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(
dto => dto.ContentTypeName,
expression => expression.MapFrom(content => content.ContentType.Name))
.ForMember(display => display.Owner, expression => expression.ResolveUsing(new OwnerResolver<IMember>(_userService)))
.ForMember(display => display.Icon, expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(display => display.ContentTypeAlias, expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(display => display.ContentTypeName, expression => expression.MapFrom(content => content.ContentType.Name))
.ForMember(display => display.Properties, expression => expression.Ignore())
.ForMember(display => display.Tabs,
expression => expression.ResolveUsing(new MemberTabsAndPropertiesResolver(_textService)))
.ForMember(display => display.MemberProviderFieldMapping,
expression => expression.ResolveUsing(new MemberProviderFieldMappingResolver()))
.ForMember(display => display.Tabs, expression => expression.ResolveUsing(new MemberTabsAndPropertiesResolver(_textService)))
.ForMember(display => display.MemberProviderFieldMapping, expression => expression.ResolveUsing(new MemberProviderFieldMappingResolver()))
.ForMember(display => display.MembershipScenario,
expression => expression.ResolveUsing(new MembershipScenarioMappingResolver(new Lazy<IMemberTypeService>(() => _memberTypeService))))
.ForMember(display => display.Notifications, expression => expression.Ignore())
@@ -101,31 +91,21 @@ namespace Umbraco.Web.Models.Mapping
.ForMember(display => display.Trashed, expression => expression.Ignore())
.ForMember(display => display.IsContainer, expression => expression.Ignore())
.ForMember(display => display.TreeNodeUrl, expression => expression.Ignore())
.ForMember(member => member.HasPublishedVersion, expression => expression.Ignore())
.ForMember(display => display.HasPublishedVersion, expression => expression.Ignore())
.AfterMap((member, display) => MapGenericCustomProperties(_memberService, member, display, _textService));
//FROM IMember TO MemberBasic
config.CreateMap<IMember, MemberBasic>()
.ForMember(
dto => dto.Owner,
expression => expression.ResolveUsing(new OwnerResolver<IMember>(_userService)))
.ForMember(
dto => dto.Icon,
expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(
dto => dto.ContentTypeAlias,
expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(
dto => dto.Email,
expression => expression.MapFrom(content => content.Email))
.ForMember(
dto => dto.Username,
expression => expression.MapFrom(content => content.Username))
.ForMember(display => display.Trashed, expression => expression.Ignore())
.ForMember(x => x.Published, expression => expression.Ignore())
.ForMember(x => x.Updater, expression => expression.Ignore())
.ForMember(x => x.Alias, expression => expression.Ignore())
.ForMember(member => member.HasPublishedVersion, expression => expression.Ignore());
.ForMember(dto => dto.Owner, expression => expression.ResolveUsing(new OwnerResolver<IMember>(_userService)))
.ForMember(dto => dto.Icon, expression => expression.MapFrom(content => content.ContentType.Icon))
.ForMember(dto => dto.ContentTypeAlias, expression => expression.MapFrom(content => content.ContentType.Alias))
.ForMember(dto => dto.Email, expression => expression.MapFrom(content => content.Email))
.ForMember(dto => dto.Username, expression => expression.MapFrom(content => content.Username))
.ForMember(dto => dto.Trashed, expression => expression.Ignore())
.ForMember(dto => dto.Published, expression => expression.Ignore())
.ForMember(dto => dto.Updater, expression => expression.Ignore())
.ForMember(dto => dto.Alias, expression => expression.Ignore())
.ForMember(dto => dto.HasPublishedVersion, expression => expression.Ignore());
//FROM MembershipUser TO MemberBasic
config.CreateMap<MembershipUser, MemberBasic>()
@@ -134,41 +114,31 @@ namespace Umbraco.Web.Models.Mapping
.ForMember(member => member.CreateDate, expression => expression.MapFrom(user => user.CreationDate))
.ForMember(member => member.UpdateDate, expression => expression.MapFrom(user => user.LastActivityDate))
.ForMember(member => member.Key, expression => expression.MapFrom(user => user.ProviderUserKey.TryConvertTo<Guid>().Result.ToString("N")))
.ForMember(
dto => dto.Owner,
expression => expression.UseValue(new UserBasic {Name = "Admin", UserId = 0}))
.ForMember(
dto => dto.Icon,
expression => expression.UseValue("icon-user"))
.ForMember(member => member.Owner, expression => expression.UseValue(new UserBasic {Name = "Admin", UserId = 0}))
.ForMember(member => member.Icon, expression => expression.UseValue("icon-user"))
.ForMember(member => member.Name, expression => expression.MapFrom(user => user.UserName))
.ForMember(
dto => dto.Email,
expression => expression.MapFrom(content => content.Email))
.ForMember(
dto => dto.Username,
expression => expression.MapFrom(content => content.UserName))
.ForMember(member => member.Email, expression => expression.MapFrom(content => content.Email))
.ForMember(member => member.Username, expression => expression.MapFrom(content => content.UserName))
.ForMember(member => member.Properties, expression => expression.Ignore())
.ForMember(member => member.ParentId, expression => expression.Ignore())
.ForMember(member => member.Path, expression => expression.Ignore())
.ForMember(member => member.SortOrder, expression => expression.Ignore())
.ForMember(member => member.AdditionalData, expression => expression.Ignore())
.ForMember(x => x.Published, expression => expression.Ignore())
.ForMember(x => x.Updater, expression => expression.Ignore())
.ForMember(dto => dto.Trashed, expression => expression.Ignore())
.ForMember(x => x.Alias, expression => expression.Ignore())
.ForMember(x => x.ContentTypeAlias, expression => expression.Ignore())
.ForMember(member => member.Published, expression => expression.Ignore())
.ForMember(member => member.Updater, expression => expression.Ignore())
.ForMember(member => member.Trashed, expression => expression.Ignore())
.ForMember(member => member.Alias, expression => expression.Ignore())
.ForMember(member => member.ContentTypeAlias, expression => expression.Ignore())
.ForMember(member => member.HasPublishedVersion, expression => expression.Ignore());
//FROM IMember TO ContentItemDto<IMember>
config.CreateMap<IMember, ContentItemDto<IMember>>()
.ForMember(
dto => dto.Owner,
expression => expression.ResolveUsing(new OwnerResolver<IMember>(_userService)))
.ForMember(x => x.Published, expression => expression.Ignore())
.ForMember(x => x.Updater, expression => expression.Ignore())
.ForMember(x => x.Icon, expression => expression.Ignore())
.ForMember(x => x.Alias, expression => expression.Ignore())
.ForMember(member => member.HasPublishedVersion, expression => expression.Ignore())
.ForMember(dto => dto.Owner, expression => expression.ResolveUsing(new OwnerResolver<IMember>(_userService)))
.ForMember(dto => dto.Published, expression => expression.Ignore())
.ForMember(dto => dto.Updater, expression => expression.Ignore())
.ForMember(dto => dto.Icon, expression => expression.Ignore())
.ForMember(dto => dto.Alias, expression => expression.Ignore())
.ForMember(dto => dto.HasPublishedVersion, expression => expression.Ignore())
//do no map the custom member properties (currently anyways, they were never there in 6.x)
.ForMember(dto => dto.Properties, expression => expression.ResolveUsing(new MemberDtoPropertiesValueResolver()));
@@ -253,8 +223,28 @@ namespace Umbraco.Web.Models.Mapping
}
};
TabsAndPropertiesResolver.MapGenericProperties(member, display, localizedText, genericProperties, properties =>
{
if (HttpContext.Current != null && UmbracoContext.Current != null && UmbracoContext.Current.Security.CurrentUser != null
&& UmbracoContext.Current.Security.CurrentUser.AllowedSections.Any(x => x.Equals(Constants.Applications.Settings)))
{
var memberTypeLink = string.Format("#/member/memberTypes/edit/{0}", member.ContentTypeId);
TabsAndPropertiesResolver.MapGenericProperties(member, display, localizedText, genericProperties);
//Replace the doctype property
var docTypeProperty = properties.First(x => x.Alias == string.Format("{0}doctype", Constants.PropertyEditors.InternalGenericPropertiesPrefix));
docTypeProperty.Value = new List<object>
{
new
{
linkText = member.ContentType.Name,
url = memberTypeLink,
target = "_self",
icon = "icon-item-arrangement"
}
};
docTypeProperty.View = "urllist";
}
});
//check if there's an approval field
var provider = membersProvider as IUmbracoMemberTypeMembershipProvider;
@@ -267,7 +257,6 @@ namespace Umbraco.Web.Models.Mapping
prop.Value = 1;
}
}
}
/// <summary>
@@ -276,6 +265,7 @@ namespace Umbraco.Web.Models.Mapping
/// <param name="memberService"></param>
/// <param name="member"></param>
/// <param name="display"></param>
/// <param name="localizedText"></param>
/// <returns></returns>
/// <remarks>
/// If the membership provider installed is the umbraco membership provider, then we will allow changing the username, however if
@@ -285,11 +275,11 @@ namespace Umbraco.Web.Models.Mapping
internal static ContentPropertyDisplay GetLoginProperty(IMemberService memberService, IMember member, MemberDisplay display, ILocalizedTextService localizedText)
{
var prop = new ContentPropertyDisplay
{
Alias = string.Format("{0}login", Constants.PropertyEditors.InternalGenericPropertiesPrefix),
Label = localizedText.Localize("login"),
Value = display.Username
};
{
Alias = string.Format("{0}login", Constants.PropertyEditors.InternalGenericPropertiesPrefix),
Label = localizedText.Localize("login"),
Value = display.Username
};
var scenario = memberService.GetMembershipScenario();
@@ -342,8 +332,8 @@ namespace Umbraco.Web.Models.Mapping
var exclude = defaultProps.Select(x => x.Value.Alias).ToArray();
return source.Properties
.Where(x => exclude.Contains(x.Alias) == false)
.Select(Mapper.Map<Property, ContentPropertyDto>);
.Where(x => exclude.Contains(x.Alias) == false)
.Select(Mapper.Map<Property, ContentPropertyDto>);
}
}
@@ -396,7 +386,7 @@ namespace Umbraco.Web.Models.Mapping
}
else
{
var umbracoProvider = (IUmbracoMemberTypeMembershipProvider)provider;
var umbracoProvider = (IUmbracoMemberTypeMembershipProvider) provider;
//This is kind of a hack because a developer is supposed to be allowed to set their property editor - would have been much easier
// if we just had all of the membeship provider fields on the member table :(
@@ -410,8 +400,6 @@ namespace Umbraco.Web.Models.Mapping
return result;
}
}
}
@@ -434,8 +422,8 @@ namespace Umbraco.Web.Models.Mapping
}
var memberType = _memberTypeService.Value.Get(Constants.Conventions.MemberTypes.DefaultAlias);
return memberType != null
? MembershipScenario.CustomProviderWithUmbracoLink
: MembershipScenario.StandaloneCustomProvider;
? MembershipScenario.CustomProviderWithUmbracoLink
: MembershipScenario.StandaloneCustomProvider;
}
}
@@ -459,7 +447,7 @@ namespace Umbraco.Web.Models.Mapping
}
else
{
var umbracoProvider = (IUmbracoMemberTypeMembershipProvider)provider;
var umbracoProvider = (IUmbracoMemberTypeMembershipProvider) provider;
return new Dictionary<string, string>
{
@@ -468,10 +456,7 @@ namespace Umbraco.Web.Models.Mapping
{Constants.Conventions.Member.Comments, umbracoProvider.CommentPropertyTypeAlias}
};
}
}
}
}
}