Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts: src/Umbraco.Core/Constants-Conventions.cs src/Umbraco.Core/DateTimeExtensions.cs src/Umbraco.Core/Models/PropertyType.cs src/Umbraco.Core/Persistence/Factories/MemberTypeReadOnlyFactory.cs src/Umbraco.Core/Persistence/Factories/PropertyGroupFactory.cs src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs src/Umbraco.Tests/App.config src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs src/Umbraco.Tests/packages.config src/Umbraco.Web.UI/packages.config src/Umbraco.Web/Umbraco.Web.csproj src/Umbraco.Web/app.config src/Umbraco.Web/umbraco.presentation/umbraco/developer/Xslt/xsltInsertValueOf.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.cs src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs src/umbraco.MacroEngines/App.Config src/umbraco.providers/members/UmbracoMembershipProvider.cs
This commit is contained in:
@@ -183,6 +183,7 @@ namespace Umbraco.Core
|
||||
{
|
||||
Comments,
|
||||
new PropertyType(PropertyEditors.TextboxMultipleAlias, DataTypeDatabaseType.Ntext)
|
||||
new PropertyType(new Guid(PropertyEditors.TextboxMultiple), DataTypeDatabaseType.Ntext, true)
|
||||
{
|
||||
Alias = Comments,
|
||||
Name = CommentsLabel
|
||||
@@ -191,6 +192,7 @@ namespace Umbraco.Core
|
||||
{
|
||||
FailedPasswordAttempts,
|
||||
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Integer)
|
||||
new PropertyType(new Guid(PropertyEditors.NoEdit), DataTypeDatabaseType.Integer, true)
|
||||
{
|
||||
Alias = FailedPasswordAttempts,
|
||||
Name = FailedPasswordAttemptsLabel
|
||||
@@ -199,6 +201,7 @@ namespace Umbraco.Core
|
||||
{
|
||||
IsApproved,
|
||||
new PropertyType(PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer)
|
||||
new PropertyType(new Guid(PropertyEditors.TrueFalse), DataTypeDatabaseType.Integer, true)
|
||||
{
|
||||
Alias = IsApproved,
|
||||
Name = IsApprovedLabel
|
||||
@@ -207,6 +210,7 @@ namespace Umbraco.Core
|
||||
{
|
||||
IsLockedOut,
|
||||
new PropertyType(PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer)
|
||||
new PropertyType(new Guid(PropertyEditors.TrueFalse), DataTypeDatabaseType.Integer, true)
|
||||
{
|
||||
Alias = IsLockedOut,
|
||||
Name = IsLockedOutLabel
|
||||
@@ -215,6 +219,7 @@ namespace Umbraco.Core
|
||||
{
|
||||
LastLockoutDate,
|
||||
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Date)
|
||||
new PropertyType(new Guid(PropertyEditors.NoEdit), DataTypeDatabaseType.Date, true)
|
||||
{
|
||||
Alias = LastLockoutDate,
|
||||
Name = LastLockoutDateLabel
|
||||
@@ -223,6 +228,7 @@ namespace Umbraco.Core
|
||||
{
|
||||
LastLoginDate,
|
||||
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Date)
|
||||
new PropertyType(new Guid(PropertyEditors.NoEdit), DataTypeDatabaseType.Date, true)
|
||||
{
|
||||
Alias = LastLoginDate,
|
||||
Name = LastLoginDateLabel
|
||||
@@ -231,6 +237,7 @@ namespace Umbraco.Core
|
||||
{
|
||||
LastPasswordChangeDate,
|
||||
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Date)
|
||||
new PropertyType(new Guid(PropertyEditors.NoEdit), DataTypeDatabaseType.Date, true)
|
||||
{
|
||||
Alias = LastPasswordChangeDate,
|
||||
Name = LastPasswordChangeDateLabel
|
||||
@@ -239,6 +246,7 @@ namespace Umbraco.Core
|
||||
{
|
||||
PasswordAnswer,
|
||||
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Nvarchar)
|
||||
new PropertyType(new Guid(PropertyEditors.NoEdit), DataTypeDatabaseType.Nvarchar, true)
|
||||
{
|
||||
Alias = PasswordAnswer,
|
||||
Name = PasswordAnswerLabel
|
||||
@@ -247,6 +255,7 @@ namespace Umbraco.Core
|
||||
{
|
||||
PasswordQuestion,
|
||||
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Nvarchar)
|
||||
new PropertyType(new Guid(PropertyEditors.NoEdit), DataTypeDatabaseType.Nvarchar, true)
|
||||
{
|
||||
Alias = PasswordQuestion,
|
||||
Name = PasswordQuestionLabel
|
||||
|
||||
@@ -18,5 +18,30 @@ namespace Umbraco.Core
|
||||
return dt.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
}
|
||||
|
||||
public static DateTime TruncateTo(this DateTime dt, DateTruncate truncateTo)
|
||||
{
|
||||
if (truncateTo == DateTruncate.Year)
|
||||
return new DateTime(dt.Year, 0, 0);
|
||||
if (truncateTo == DateTruncate.Month)
|
||||
return new DateTime(dt.Year, dt.Month, 0);
|
||||
if (truncateTo == DateTruncate.Day)
|
||||
return new DateTime(dt.Year, dt.Month, dt.Day);
|
||||
if (truncateTo == DateTruncate.Hour)
|
||||
return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0);
|
||||
if (truncateTo == DateTruncate.Minute)
|
||||
return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, 0);
|
||||
return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second);
|
||||
}
|
||||
|
||||
public enum DateTruncate
|
||||
{
|
||||
Year,
|
||||
Month,
|
||||
Day,
|
||||
Hour,
|
||||
Minute,
|
||||
Second
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace Umbraco.Core.Models
|
||||
|
||||
private static readonly PropertyInfo ValueSelector = ExpressionHelper.GetPropertyInfo<Property, object>(x => x.Value);
|
||||
private static readonly PropertyInfo VersionSelector = ExpressionHelper.GetPropertyInfo<Property, Guid>(x => x.Version);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Returns the instance of the tag support, by default tags are not enabled
|
||||
/// </summary>
|
||||
@@ -68,9 +68,14 @@ namespace Umbraco.Core.Models
|
||||
/// <summary>
|
||||
/// Returns the DatabaseType that the underlaying DataType is using to store its values
|
||||
/// </summary>
|
||||
/// <remarks>Only used internally when saving the property value</remarks>
|
||||
/// <remarks>
|
||||
/// Only used internally when saving the property value.
|
||||
/// </remarks>
|
||||
[IgnoreDataMember]
|
||||
internal DataTypeDatabaseType DataTypeDatabaseType { get { return _propertyType.DataTypeDatabaseType; } }
|
||||
internal DataTypeDatabaseType DataTypeDatabaseType
|
||||
{
|
||||
get { return _propertyType.DataTypeDatabaseType; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the PropertyType, which this Property is based on
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace Umbraco.Core.Models
|
||||
[DataContract(IsReference = true)]
|
||||
public class PropertyType : Entity, IEquatable<PropertyType>
|
||||
{
|
||||
private readonly bool _isExplicitDbType;
|
||||
private string _name;
|
||||
private string _alias;
|
||||
private string _description;
|
||||
@@ -30,16 +31,30 @@ namespace Umbraco.Core.Models
|
||||
public PropertyType(IDataTypeDefinition dataTypeDefinition)
|
||||
{
|
||||
if(dataTypeDefinition.HasIdentity)
|
||||
DataTypeDefinitionId = dataTypeDefinition.Id;
|
||||
_dataTypeDefinitionId = dataTypeDefinition.Id;
|
||||
|
||||
PropertyEditorAlias = dataTypeDefinition.PropertyEditorAlias;
|
||||
DataTypeDatabaseType = dataTypeDefinition.DatabaseType;
|
||||
_dataTypeId = dataTypeDefinition.ControlId;
|
||||
_dataTypeDatabaseType = dataTypeDefinition.DatabaseType;
|
||||
}
|
||||
|
||||
internal PropertyType(string propertyEditorAlias, DataTypeDatabaseType dataTypeDatabaseType)
|
||||
: this(dataTypeControlId, dataTypeDatabaseType, false)
|
||||
{
|
||||
PropertyEditorAlias = propertyEditorAlias;
|
||||
DataTypeDatabaseType = dataTypeDatabaseType;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used internally to assign an explicity database type for this property type regardless of what the underlying data type/property editor is.
|
||||
/// </summary>
|
||||
/// <param name="dataTypeControlId"></param>
|
||||
/// <param name="dataTypeDatabaseType"></param>
|
||||
/// <param name="isExplicitDbType"></param>
|
||||
internal PropertyType(Guid dataTypeControlId, DataTypeDatabaseType dataTypeDatabaseType, bool isExplicitDbType)
|
||||
{
|
||||
_isExplicitDbType = isExplicitDbType;
|
||||
_dataTypeId = dataTypeControlId;
|
||||
_dataTypeDatabaseType = dataTypeDatabaseType;
|
||||
}
|
||||
|
||||
private static readonly PropertyInfo NameSelector = ExpressionHelper.GetPropertyInfo<PropertyType, string>(x => x.Name);
|
||||
@@ -165,6 +180,9 @@ namespace Umbraco.Core.Models
|
||||
get { return _dataTypeDatabaseType; }
|
||||
set
|
||||
{
|
||||
//don't allow setting this if an explicit declaration has been made in the ctor
|
||||
if (_isExplicitDbType) return;
|
||||
|
||||
SetPropertyValueAndDetectChanges(o =>
|
||||
{
|
||||
_dataTypeDatabaseType = value;
|
||||
|
||||
@@ -11,6 +11,8 @@ namespace Umbraco.Core.Persistence.Factories
|
||||
{
|
||||
public IMemberType BuildEntity(MemberTypeReadOnlyDto dto)
|
||||
{
|
||||
var standardPropertyTypes = Constants.Conventions.Member.GetStandardPropertyTypeStubs();
|
||||
|
||||
var memberType = new MemberType(dto.ParentId)
|
||||
{
|
||||
Alias = dto.Alias,
|
||||
@@ -32,13 +34,12 @@ namespace Umbraco.Core.Persistence.Factories
|
||||
AllowedContentTypes = Enumerable.Empty<ContentTypeSort>()
|
||||
};
|
||||
|
||||
var propertyTypeGroupCollection = GetPropertyTypeGroupCollection(dto, memberType);
|
||||
var propertyTypeGroupCollection = GetPropertyTypeGroupCollection(dto, memberType, standardPropertyTypes);
|
||||
memberType.PropertyGroups = propertyTypeGroupCollection;
|
||||
|
||||
var propertyTypes = GetPropertyTypes(dto, memberType);
|
||||
var propertyTypes = GetPropertyTypes(dto, memberType, standardPropertyTypes);
|
||||
|
||||
//By Convention we add 9 stnd PropertyTypes - This is only here to support loading of types that didn't have these conventions before.
|
||||
var standardPropertyTypes = Constants.Conventions.Member.GetStandardPropertyTypeStubs();
|
||||
//By Convention we add 9 stnd PropertyTypes - This is only here to support loading of types that didn't have these conventions before.
|
||||
foreach (var standardPropertyType in standardPropertyTypes)
|
||||
{
|
||||
if(dto.PropertyTypes.Any(x => x.Alias.Equals(standardPropertyType.Key))) continue;
|
||||
@@ -55,10 +56,10 @@ namespace Umbraco.Core.Persistence.Factories
|
||||
return memberType;
|
||||
}
|
||||
|
||||
private PropertyGroupCollection GetPropertyTypeGroupCollection(MemberTypeReadOnlyDto dto, MemberType memberType)
|
||||
private PropertyGroupCollection GetPropertyTypeGroupCollection(MemberTypeReadOnlyDto dto, MemberType memberType, Dictionary<string, PropertyType> standardProps)
|
||||
{
|
||||
var propertyGroups = new PropertyGroupCollection();
|
||||
var standardProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs();
|
||||
var propertyGroups = new PropertyGroupCollection();
|
||||
|
||||
foreach (var groupDto in dto.PropertyTypeGroups.Where(x => x.Id.HasValue))
|
||||
{
|
||||
var group = new PropertyGroup();
|
||||
@@ -92,13 +93,19 @@ namespace Umbraco.Core.Persistence.Factories
|
||||
|
||||
var tempGroupDto = groupDto;
|
||||
|
||||
var propertyType = new PropertyType(typeDto.PropertyEditorAlias,
|
||||
//ensures that any built-in membership properties have their correct dbtype assigned no matter
|
||||
//what the underlying data type is
|
||||
MemberTypeRepository.GetDbTypeForBuiltInProperty(
|
||||
typeDto.Alias,
|
||||
typeDto.DbType.EnumParse<DataTypeDatabaseType>(true),
|
||||
standardProps).Result)
|
||||
//ensures that any built-in membership properties have their correct dbtype assigned no matter
|
||||
//what the underlying data type is
|
||||
var propDbType = MemberTypeRepository.GetDbTypeForBuiltInProperty(
|
||||
typeDto.Alias,
|
||||
typeDto.DbType.EnumParse<DataTypeDatabaseType>(true),
|
||||
standardProps);
|
||||
|
||||
var propertyType = new PropertyType(
|
||||
typeDto.ControlId,
|
||||
propDbType.Result,
|
||||
//This flag tells the property type that it has an explicit dbtype and that it cannot be changed
|
||||
// which is what we want for the built-in properties.
|
||||
propDbType.Success)
|
||||
{
|
||||
Alias = typeDto.Alias,
|
||||
DataTypeDefinitionId = typeDto.DataTypeId,
|
||||
@@ -127,34 +134,47 @@ namespace Umbraco.Core.Persistence.Factories
|
||||
return propertyGroups;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private List<PropertyType> GetPropertyTypes(MemberTypeReadOnlyDto dto, MemberType memberType)
|
||||
|
||||
private List<PropertyType> GetPropertyTypes(MemberTypeReadOnlyDto dto, MemberType memberType, Dictionary<string, PropertyType> standardProps)
|
||||
{
|
||||
//Find PropertyTypes that does not belong to a PropertyTypeGroup
|
||||
var propertyTypes = new List<PropertyType>();
|
||||
foreach (var propertyType in dto.PropertyTypes.Where(x => (x.PropertyTypeGroupId.HasValue == false || x.PropertyTypeGroupId.Value == 0) && x.Id.HasValue))
|
||||
foreach (var typeDto in dto.PropertyTypes.Where(x => (x.PropertyTypeGroupId.HasValue == false || x.PropertyTypeGroupId.Value == 0) && x.Id.HasValue))
|
||||
{
|
||||
//Internal dictionary for adding "MemberCanEdit" and "VisibleOnProfile" properties to each PropertyType
|
||||
memberType.MemberTypePropertyTypes.Add(propertyType.Alias,
|
||||
new MemberTypePropertyProfileAccess(propertyType.ViewOnProfile, propertyType.CanEdit));
|
||||
//PropertyType Collection
|
||||
propertyTypes.Add(new PropertyType(propertyType.PropertyEditorAlias,
|
||||
propertyType.DbType.EnumParse<DataTypeDatabaseType>(true))
|
||||
{
|
||||
Alias = propertyType.Alias,
|
||||
DataTypeDefinitionId = propertyType.DataTypeId,
|
||||
Description = propertyType.Description,
|
||||
HelpText = propertyType.HelpText,
|
||||
Id = propertyType.Id.Value,
|
||||
Mandatory = propertyType.Mandatory,
|
||||
Name = propertyType.Name,
|
||||
SortOrder = propertyType.SortOrder,
|
||||
ValidationRegExp = propertyType.ValidationRegExp,
|
||||
PropertyGroupId = new Lazy<int>(() => default(int)),
|
||||
CreateDate = dto.CreateDate,
|
||||
UpdateDate = dto.CreateDate
|
||||
});
|
||||
memberType.MemberTypePropertyTypes.Add(typeDto.Alias,
|
||||
new MemberTypePropertyProfileAccess(typeDto.ViewOnProfile, typeDto.CanEdit));
|
||||
|
||||
//ensures that any built-in membership properties have their correct dbtype assigned no matter
|
||||
//what the underlying data type is
|
||||
var propDbType = MemberTypeRepository.GetDbTypeForBuiltInProperty(
|
||||
typeDto.Alias,
|
||||
typeDto.DbType.EnumParse<DataTypeDatabaseType>(true),
|
||||
standardProps);
|
||||
|
||||
var propertyType = new PropertyType(
|
||||
typeDto.ControlId,
|
||||
propDbType.Result,
|
||||
//This flag tells the property type that it has an explicit dbtype and that it cannot be changed
|
||||
// which is what we want for the built-in properties.
|
||||
propDbType.Success)
|
||||
{
|
||||
Alias = typeDto.Alias,
|
||||
DataTypeDefinitionId = typeDto.DataTypeId,
|
||||
Description = typeDto.Description,
|
||||
HelpText = typeDto.HelpText,
|
||||
Id = typeDto.Id.Value,
|
||||
Mandatory = typeDto.Mandatory,
|
||||
Name = typeDto.Name,
|
||||
SortOrder = typeDto.SortOrder,
|
||||
ValidationRegExp = typeDto.ValidationRegExp,
|
||||
PropertyGroupId = new Lazy<int>(() => default(int)),
|
||||
CreateDate = dto.CreateDate,
|
||||
UpdateDate = dto.CreateDate
|
||||
};
|
||||
|
||||
propertyTypes.Add(propertyType);
|
||||
}
|
||||
return propertyTypes;
|
||||
}
|
||||
|
||||
@@ -11,17 +11,21 @@ namespace Umbraco.Core.Persistence.Factories
|
||||
private readonly int _id;
|
||||
private readonly DateTime _createDate;
|
||||
private readonly DateTime _updateDate;
|
||||
//a callback to create a property type which can be injected via a contructor
|
||||
private readonly Func<Guid, DataTypeDatabaseType, string, PropertyType> _propertyTypeCtor;
|
||||
|
||||
public PropertyGroupFactory(int id)
|
||||
{
|
||||
_id = id;
|
||||
_propertyTypeCtor = (guid, dbType, alias) => new PropertyType(guid, dbType);
|
||||
}
|
||||
|
||||
public PropertyGroupFactory(int id, DateTime createDate, DateTime updateDate)
|
||||
|
||||
public PropertyGroupFactory(int id, DateTime createDate, DateTime updateDate, Func<Guid, DataTypeDatabaseType, string, PropertyType> propertyTypeCtor)
|
||||
{
|
||||
_id = id;
|
||||
_createDate = createDate;
|
||||
_updateDate = updateDate;
|
||||
_propertyTypeCtor = propertyTypeCtor;
|
||||
}
|
||||
|
||||
#region Implementation of IEntityFactory<IEnumerable<PropertyGroup>,IEnumerable<TabDto>>
|
||||
@@ -55,22 +59,23 @@ namespace Umbraco.Core.Persistence.Factories
|
||||
foreach (var typeDto in typeDtos)
|
||||
{
|
||||
var tempGroupDto = groupDto;
|
||||
var propertyType = new PropertyType(typeDto.DataTypeDto.PropertyEditorAlias,
|
||||
typeDto.DataTypeDto.DbType.EnumParse<DataTypeDatabaseType>(true))
|
||||
{
|
||||
Alias = typeDto.Alias,
|
||||
DataTypeDefinitionId = typeDto.DataTypeId,
|
||||
Description = typeDto.Description,
|
||||
Id = typeDto.Id,
|
||||
Name = typeDto.Name,
|
||||
HelpText = typeDto.HelpText,
|
||||
Mandatory = typeDto.Mandatory,
|
||||
SortOrder = typeDto.SortOrder,
|
||||
ValidationRegExp = typeDto.ValidationRegExp,
|
||||
PropertyGroupId = new Lazy<int>(() => tempGroupDto.Id),
|
||||
CreateDate = _createDate,
|
||||
UpdateDate = _updateDate
|
||||
};
|
||||
var propertyType = _propertyTypeCtor(typeDto.DataTypeDto.ControlId,
|
||||
typeDto.DataTypeDto.DbType.EnumParse<DataTypeDatabaseType>(true),
|
||||
typeDto.Alias);
|
||||
|
||||
propertyType.Alias = typeDto.Alias;
|
||||
propertyType.DataTypeDefinitionId = typeDto.DataTypeId;
|
||||
propertyType.Description = typeDto.Description;
|
||||
propertyType.Id = typeDto.Id;
|
||||
propertyType.Name = typeDto.Name;
|
||||
propertyType.HelpText = typeDto.HelpText;
|
||||
propertyType.Mandatory = typeDto.Mandatory;
|
||||
propertyType.SortOrder = typeDto.SortOrder;
|
||||
propertyType.ValidationRegExp = typeDto.ValidationRegExp;
|
||||
propertyType.PropertyGroupId = new Lazy<int>(() => tempGroupDto.Id);
|
||||
propertyType.CreateDate = _createDate;
|
||||
propertyType.UpdateDate = _updateDate;
|
||||
|
||||
//on initial construction we don't want to have dirty properties tracked
|
||||
// http://issues.umbraco.org/issue/U4-1946
|
||||
propertyType.ResetDirtyProperties(false);
|
||||
|
||||
@@ -288,7 +288,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
from p in perm.AssignedPermissions
|
||||
select new Tuple<int, string>(perm.UserId, p)).ToList();
|
||||
|
||||
permissionsRepo.AssignEntityPermissions(entity, userPermissions);
|
||||
permissionsRepo.ReplaceEntityPermissions(entity, userPermissions);
|
||||
//flag the entity's permissions changed flag so we can track those changes.
|
||||
//Currently only used for the cache refreshers to detect if we should refresh all user permissions cache.
|
||||
((Content) entity).PermissionsChanged = true;
|
||||
@@ -559,15 +559,15 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Assigns one permission to an entity for multiple users
|
||||
/// Assigns a single permission to the current content item for the specified user ids
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <param name="permission"></param>
|
||||
/// <param name="userIds"></param>
|
||||
public void AssignEntityPermissions(IContent entity, char permission, IEnumerable<int> userIds)
|
||||
/// <param name="userIds"></param>
|
||||
public void AssignEntityPermission(IContent entity, char permission, IEnumerable<int> userIds)
|
||||
{
|
||||
var repo = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper);
|
||||
repo.AssignEntityPermissions(entity, permission, userIds);
|
||||
repo.AssignEntityPermission(entity, permission, userIds);
|
||||
}
|
||||
|
||||
public IEnumerable<EntityPermission> GetPermissionsForEntity(int entityId)
|
||||
|
||||
@@ -56,6 +56,11 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual PropertyType CreatePropertyType(Guid dataTypeId, DataTypeDatabaseType dbType, string propertyTypeAlias)
|
||||
{
|
||||
return new PropertyType(dataTypeId, dbType);
|
||||
}
|
||||
|
||||
protected void PersistNewBaseContentType(ContentTypeDto dto, IContentTypeComposition entity)
|
||||
{
|
||||
//Logic for setting Path, Level and SortOrder
|
||||
@@ -344,7 +349,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
|
||||
var dtos = Database.Fetch<PropertyTypeGroupDto, PropertyTypeDto, DataTypeDto, PropertyTypeGroupDto>(new GroupPropertyTypeRelator().Map, sql);
|
||||
|
||||
var propertyGroupFactory = new PropertyGroupFactory(id, createDate, updateDate);
|
||||
var propertyGroupFactory = new PropertyGroupFactory(id, createDate, updateDate, CreatePropertyType);
|
||||
var propertyGroups = propertyGroupFactory.BuildEntity(dtos);
|
||||
return new PropertyGroupCollection(propertyGroups);
|
||||
}
|
||||
@@ -361,25 +366,23 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
var dtos = Database.Fetch<PropertyTypeDto, DataTypeDto>(sql);
|
||||
|
||||
//TODO Move this to a PropertyTypeFactory
|
||||
var list = (from dto in dtos
|
||||
where (dto.PropertyTypeGroupId > 0) == false
|
||||
select
|
||||
new PropertyType(dto.DataTypeDto.PropertyEditorAlias,
|
||||
dto.DataTypeDto.DbType.EnumParse<DataTypeDatabaseType>(true))
|
||||
{
|
||||
Alias = dto.Alias,
|
||||
DataTypeDefinitionId = dto.DataTypeId,
|
||||
Description = dto.Description,
|
||||
Id = dto.Id,
|
||||
Name = dto.Name,
|
||||
HelpText = dto.HelpText,
|
||||
Mandatory = dto.Mandatory,
|
||||
SortOrder = dto.SortOrder,
|
||||
ValidationRegExp = dto.ValidationRegExp,
|
||||
CreateDate = createDate,
|
||||
UpdateDate = updateDate
|
||||
}).ToList();
|
||||
|
||||
var list = new List<PropertyType>();
|
||||
foreach (var dto in dtos.Where(x => (x.PropertyTypeGroupId > 0) == false))
|
||||
{
|
||||
var propType = CreatePropertyType(dto.DataTypeDto.ControlId, dto.DataTypeDto.DbType.EnumParse<DataTypeDatabaseType>(true), dto.Alias);
|
||||
propType.Alias = dto.Alias;
|
||||
propType.DataTypeDefinitionId = dto.DataTypeId;
|
||||
propType.Description = dto.Description;
|
||||
propType.Id = dto.Id;
|
||||
propType.Name = dto.Name;
|
||||
propType.HelpText = dto.HelpText;
|
||||
propType.Mandatory = dto.Mandatory;
|
||||
propType.SortOrder = dto.SortOrder;
|
||||
propType.ValidationRegExp = dto.ValidationRegExp;
|
||||
propType.CreateDate = createDate;
|
||||
propType.UpdateDate = updateDate;
|
||||
list.Add(propType);
|
||||
}
|
||||
//Reset dirty properties
|
||||
Parallel.ForEach(list, currentFile => currentFile.ResetDirtyProperties(false));
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// <param name="entity"></param>
|
||||
/// <param name="permission"></param>
|
||||
/// <param name="userIds"></param>
|
||||
void AssignEntityPermissions(IContent entity, char permission, IEnumerable<int> userIds);
|
||||
void AssignEntityPermission(IContent entity, char permission, IEnumerable<int> userIds);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of permissions for the content item
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// <param name="orderBy"></param>
|
||||
/// <returns></returns>
|
||||
IEnumerable<IUser> GetPagedResultsByQuery(IQuery<IUser> query, int pageIndex, int pageSize, out int totalRecords, Expression<Func<IUser, string>> orderBy);
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Gets the user permissions for the specified entities
|
||||
@@ -49,11 +49,11 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
IEnumerable<EntityPermission> GetUserPermissionsForEntities(int userId, params int[] entityIds);
|
||||
|
||||
/// <summary>
|
||||
/// Assigns the same permission set for a single user to any number of entities
|
||||
/// Replaces the same permission set for a single user to any number of entities
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="permissions"></param>
|
||||
/// <param name="entityIds"></param>
|
||||
void AssignUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds);
|
||||
void ReplaceUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds);
|
||||
}
|
||||
}
|
||||
@@ -18,17 +18,17 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// </summary>
|
||||
internal class MemberTypeRepository : ContentTypeBaseRepository<int, IMemberType>, IMemberTypeRepository
|
||||
{
|
||||
public MemberTypeRepository(IDatabaseUnitOfWork work)
|
||||
public MemberTypeRepository(IDatabaseUnitOfWork work)
|
||||
: base(work)
|
||||
{
|
||||
}
|
||||
|
||||
public MemberTypeRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache)
|
||||
public MemberTypeRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache)
|
||||
: base(work, cache)
|
||||
{
|
||||
}
|
||||
|
||||
#region Overrides of RepositoryBase<int, IMemberType>
|
||||
#region Overrides of RepositoryBase<int, IMemberType>
|
||||
|
||||
protected override IMemberType PerformGet(int id)
|
||||
{
|
||||
@@ -40,13 +40,13 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
Database.Fetch<MemberTypeReadOnlyDto, PropertyTypeReadOnlyDto, PropertyTypeGroupReadOnlyDto, MemberTypeReadOnlyDto>(
|
||||
new PropertyTypePropertyGroupRelator().Map, sql);
|
||||
|
||||
if (dtos == null || dtos.Any() == false)
|
||||
return null;
|
||||
if (dtos == null || dtos.Any() == false)
|
||||
return null;
|
||||
|
||||
var factory = new MemberTypeReadOnlyFactory();
|
||||
var member = factory.BuildEntity(dtos.First());
|
||||
var factory = new MemberTypeReadOnlyFactory();
|
||||
var member = factory.BuildEntity(dtos.First());
|
||||
|
||||
return member;
|
||||
return member;
|
||||
}
|
||||
|
||||
protected override IEnumerable<IMemberType> PerformGetAll(params int[] ids)
|
||||
@@ -99,7 +99,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
return sql;
|
||||
}
|
||||
|
||||
sql.Select("umbracoNode.*", "cmsContentType.*", "cmsPropertyType.id AS PropertyTypeId", "cmsPropertyType.Alias",
|
||||
sql.Select("umbracoNode.*", "cmsContentType.*", "cmsPropertyType.id AS PropertyTypeId", "cmsPropertyType.Alias",
|
||||
"cmsPropertyType.Name", "cmsPropertyType.Description", "cmsPropertyType.helpText", "cmsPropertyType.mandatory",
|
||||
"cmsPropertyType.validationRegExp", "cmsPropertyType.dataTypeId", "cmsPropertyType.sortOrder AS PropertyTypeSortOrder",
|
||||
"cmsPropertyType.propertyTypeGroupId AS PropertyTypesGroupId", "cmsMemberType.memberCanEdit", "cmsMemberType.viewOnProfile",
|
||||
@@ -179,10 +179,10 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
var factory = new MemberTypeFactory(NodeObjectTypeId);
|
||||
var dto = factory.BuildDto(entity);
|
||||
|
||||
EnsureCorrectDbTypeForBuiltInProperties(entity);
|
||||
EnsureExplicitDataTypeForBuiltInProperties(entity);
|
||||
|
||||
PersistNewBaseContentType(dto, entity);
|
||||
|
||||
|
||||
//Handles the MemberTypeDto (cmsMemberType table)
|
||||
var memberTypeDtos = factory.BuildMemberTypeDtos(entity);
|
||||
foreach (var memberTypeDto in memberTypeDtos)
|
||||
@@ -216,12 +216,12 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
var factory = new MemberTypeFactory(NodeObjectTypeId);
|
||||
var dto = factory.BuildDto(entity);
|
||||
|
||||
EnsureCorrectDbTypeForBuiltInProperties(entity);
|
||||
EnsureExplicitDataTypeForBuiltInProperties(entity);
|
||||
|
||||
PersistUpdatedBaseContentType(dto, entity);
|
||||
|
||||
//Remove existing entries before inserting new ones
|
||||
Database.Delete<MemberTypeDto>("WHERE NodeId = @Id", new {Id = entity.Id});
|
||||
Database.Delete<MemberTypeDto>("WHERE NodeId = @Id", new { Id = entity.Id });
|
||||
|
||||
//Handles the MemberTypeDto (cmsMemberType table)
|
||||
var memberTypeDtos = factory.BuildMemberTypeDtos(entity);
|
||||
@@ -236,11 +236,29 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Ensure that all the built-in membership provider properties have their correct db types
|
||||
/// and property editors assigned.
|
||||
/// Override so we can specify explicit db type's on any property types that are built-in.
|
||||
/// </summary>
|
||||
/// <param name="dataTypeId"></param>
|
||||
/// <param name="dbType"></param>
|
||||
/// <param name="propertyTypeAlias"></param>
|
||||
/// <returns></returns>
|
||||
protected override PropertyType CreatePropertyType(Guid dataTypeId, DataTypeDatabaseType dbType, string propertyTypeAlias)
|
||||
{
|
||||
//custom property type constructor logic to set explicit dbtype's for built in properties
|
||||
var stdProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs();
|
||||
var propDbType = GetDbTypeForBuiltInProperty(propertyTypeAlias, dbType, stdProps);
|
||||
return new PropertyType(dataTypeId, propDbType.Result,
|
||||
//This flag tells the property type that it has an explicit dbtype and that it cannot be changed
|
||||
// which is what we want for the built-in properties.
|
||||
propDbType.Success);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ensure that all the built-in membership provider properties have their correct data type
|
||||
/// and property editors assigned. This occurs prior to saving so that the correct values are persisted.
|
||||
/// </summary>
|
||||
/// <param name="memberType"></param>
|
||||
private static void EnsureCorrectDbTypeForBuiltInProperties(IContentTypeBase memberType)
|
||||
private static void EnsureExplicitDataTypeForBuiltInProperties(IContentTypeBase memberType)
|
||||
{
|
||||
var stdProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs();
|
||||
foreach (var propertyType in memberType.PropertyTypes)
|
||||
@@ -248,7 +266,6 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
var dbTypeAttempt = GetDbTypeForBuiltInProperty(propertyType.Alias, propertyType.DataTypeDatabaseType, stdProps);
|
||||
if (dbTypeAttempt)
|
||||
{
|
||||
propertyType.DataTypeDatabaseType = dbTypeAttempt.Result;
|
||||
//this reset's it's current data type reference which will be re-assigned based on the property editor assigned on the next line
|
||||
propertyType.DataTypeDefinitionId = 0;
|
||||
propertyType.DataTypeId = GetPropertyEditorForBuiltInProperty(propertyType.Alias, propertyType.DataTypeId, stdProps).Result;
|
||||
@@ -281,7 +298,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// Successful attempt if it was a built in property
|
||||
/// </returns>
|
||||
internal static Attempt<DataTypeDatabaseType> GetDbTypeForBuiltInProperty(
|
||||
string propAlias,
|
||||
string propAlias,
|
||||
DataTypeDatabaseType dbType,
|
||||
Dictionary<string, PropertyType> standardProps)
|
||||
{
|
||||
@@ -307,7 +324,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// Successful attempt if it was a built in property
|
||||
/// </returns>
|
||||
internal static Attempt<Guid> GetPropertyEditorForBuiltInProperty(
|
||||
string propAlias,
|
||||
string propAlias,
|
||||
Guid propertyEditor,
|
||||
Dictionary<string, PropertyType> standardProps)
|
||||
{
|
||||
|
||||
@@ -117,7 +117,10 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="permissions"></param>
|
||||
/// <param name="entityIds"></param>
|
||||
public void AssignUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds)
|
||||
/// <remarks>
|
||||
/// This will first clear the permissions for this user and entities and recreate them
|
||||
/// </remarks>
|
||||
public void ReplaceUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds)
|
||||
{
|
||||
var db = _unitOfWork.Database;
|
||||
using (var trans = db.GetTransaction())
|
||||
@@ -155,15 +158,18 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// <param name="entity"></param>
|
||||
/// <param name="permission"></param>
|
||||
/// <param name="userIds"></param>
|
||||
/// <remarks>
|
||||
/// This will first clear the permissions for this entity then re-create them
|
||||
/// </remarks>
|
||||
public void AssignEntityPermissions(TEntity entity, char permission, IEnumerable<int> userIds)
|
||||
public void AssignEntityPermission(TEntity entity, char permission, IEnumerable<int> userIds)
|
||||
{
|
||||
var db = _unitOfWork.Database;
|
||||
using (var trans = db.GetTransaction())
|
||||
{
|
||||
db.Execute("DELETE FROM umbracoUser2NodePermission WHERE nodeId=@nodeId", new {nodeId = entity.Id});
|
||||
db.Execute("DELETE FROM umbracoUser2NodePermission WHERE nodeId=@nodeId AND permission=@permission AND userId in (@userIds)",
|
||||
new
|
||||
{
|
||||
nodeId = entity.Id,
|
||||
permission = permission.ToString(CultureInfo.InvariantCulture),
|
||||
userIds = userIds
|
||||
});
|
||||
|
||||
var actions = userIds.Select(id => new User2NodePermissionDto
|
||||
{
|
||||
@@ -192,7 +198,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// <remarks>
|
||||
/// This will first clear the permissions for this entity then re-create them
|
||||
/// </remarks>
|
||||
public void AssignEntityPermissions(TEntity entity, IEnumerable<Tuple<int, string>> userPermissions)
|
||||
public void ReplaceEntityPermissions(TEntity entity, IEnumerable<Tuple<int, string>> userPermissions)
|
||||
{
|
||||
var db = _unitOfWork.Database;
|
||||
using (var trans = db.GetTransaction())
|
||||
@@ -206,7 +212,9 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
UserId = p.Item1
|
||||
}).ToArray();
|
||||
|
||||
_unitOfWork.Database.BulkInsertRecords(actions);
|
||||
_unitOfWork.Database.BulkInsertRecords(actions, trans);
|
||||
|
||||
trans.Complete();
|
||||
|
||||
//Raise the event
|
||||
AssignedPermissions.RaiseEvent(
|
||||
|
||||
@@ -325,15 +325,15 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Assigns the same permission set for a single user to any number of entities
|
||||
/// Replaces the same permission set for a single user to any number of entities
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="permissions"></param>
|
||||
/// <param name="entityIds"></param>
|
||||
public void AssignUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds)
|
||||
public void ReplaceUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds)
|
||||
{
|
||||
var repo = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper);
|
||||
repo.AssignUserPermissions(userId, permissions, entityIds);
|
||||
repo.ReplaceUserPermissions(userId, permissions, entityIds);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Security
|
||||
/// An interface for exposing the content type properties for storing membership data in when
|
||||
/// a membership provider's data is backed by an Umbraco content type.
|
||||
/// </summary>
|
||||
public interface IUmbracoContentTypeMembershipProvider
|
||||
public interface IUmbracoMemberTypeMembershipProvider
|
||||
{
|
||||
|
||||
string LockPropertyTypeAlias { get; }
|
||||
|
||||
@@ -65,12 +65,12 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="entity"></param>
|
||||
/// <param name="permission"></param>
|
||||
/// <param name="userIds"></param>
|
||||
public void AssignContentPermissions(IContent entity, char permission, IEnumerable<int> userIds)
|
||||
public void AssignContentPermission(IContent entity, char permission, IEnumerable<int> userIds)
|
||||
{
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateContentRepository(uow))
|
||||
{
|
||||
repository.AssignEntityPermissions(entity, permission, userIds);
|
||||
repository.AssignEntityPermission(entity, permission, userIds);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="entity"></param>
|
||||
/// <param name="permission"></param>
|
||||
/// <param name="userIds"></param>
|
||||
void AssignContentPermissions(IContent entity, char permission, IEnumerable<int> userIds);
|
||||
void AssignContentPermission(IContent entity, char permission, IEnumerable<int> userIds);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of permissions for the content item
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="memberTypeAlias"></param>
|
||||
/// <param name="raiseEvents"></param>
|
||||
/// <returns></returns>
|
||||
T CreateMemberWithIdentity(string username, string email, string password, string memberTypeAlias, bool raiseEvents = true);
|
||||
T CreateWithIdentity(string username, string email, string password, string memberTypeAlias, bool raiseEvents = true);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the member by the provider key
|
||||
@@ -68,19 +68,19 @@ namespace Umbraco.Core.Services
|
||||
|
||||
void Delete(T membershipUser);
|
||||
|
||||
void Save(T membershipUser, bool raiseEvents = true);
|
||||
void Save(T entity, bool raiseEvents = true);
|
||||
|
||||
void Save(IEnumerable<T> members, bool raiseEvents = true);
|
||||
void Save(IEnumerable<T> entities, bool raiseEvents = true);
|
||||
|
||||
IEnumerable<T> FindMembersByEmail(string emailStringToMatch, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith);
|
||||
IEnumerable<T> FindByEmail(string emailStringToMatch, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith);
|
||||
|
||||
IEnumerable<T> FindMembersByUsername(string login, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith);
|
||||
IEnumerable<T> FindByUsername(string login, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the total number of members based on the count type
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
int GetMemberCount(MemberCountType countType);
|
||||
int GetCount(MemberCountType countType);
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list of paged member data
|
||||
@@ -89,6 +89,6 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="pageSize"></param>
|
||||
/// <param name="totalRecords"></param>
|
||||
/// <returns></returns>
|
||||
IEnumerable<T> GetAllMembers(int pageIndex, int pageSize, out int totalRecords);
|
||||
IEnumerable<T> GetAll(int pageIndex, int pageSize, out int totalRecords);
|
||||
}
|
||||
}
|
||||
@@ -54,12 +54,12 @@ namespace Umbraco.Core.Services
|
||||
IEnumerable<EntityPermission> GetPermissions(IUser user, params int[] nodeIds);
|
||||
|
||||
/// <summary>
|
||||
/// Assigns the same permission set for a single user to any number of entities
|
||||
/// Replaces the same permission set for a single user to any number of entities
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="permissions"></param>
|
||||
/// <param name="entityIds"></param>
|
||||
void AssignUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds);
|
||||
void ReplaceUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds);
|
||||
|
||||
#region User types
|
||||
|
||||
|
||||
@@ -254,7 +254,7 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="pageIndex"></param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <returns></returns>
|
||||
public IEnumerable<IMember> FindMembersByEmail(string emailStringToMatch, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
|
||||
public IEnumerable<IMember> FindByEmail(string emailStringToMatch, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
|
||||
{
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateMemberRepository(uow))
|
||||
@@ -286,7 +286,7 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<IMember> FindMembersByUsername(string login, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
|
||||
public IEnumerable<IMember> FindByUsername(string login, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
|
||||
{
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateMemberRepository(uow))
|
||||
@@ -527,7 +527,7 @@ namespace Umbraco.Core.Services
|
||||
/// that have their last active date within the Membership.UserIsOnlineTimeWindow (which is in minutes). It isn't exact science
|
||||
/// but that is how MS have made theirs so we'll follow that principal.
|
||||
/// </remarks>
|
||||
public int GetMemberCount(MemberCountType countType)
|
||||
public int GetCount(MemberCountType countType)
|
||||
{
|
||||
using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
|
||||
{
|
||||
@@ -567,7 +567,7 @@ namespace Umbraco.Core.Services
|
||||
|
||||
}
|
||||
|
||||
public IEnumerable<IMember> GetAllMembers(int pageIndex, int pageSize, out int totalRecords)
|
||||
public IEnumerable<IMember> GetAll(int pageIndex, int pageSize, out int totalRecords)
|
||||
{
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateMemberRepository(uow))
|
||||
@@ -617,7 +617,7 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="memberTypeAlias"></param>
|
||||
/// <param name="raiseEvents"></param>
|
||||
/// <returns></returns>
|
||||
public IMember CreateMemberWithIdentity(string username, string email, string password, string memberTypeAlias, bool raiseEvents = true)
|
||||
public IMember CreateWithIdentity(string username, string email, string password, string memberTypeAlias, bool raiseEvents = true)
|
||||
{
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
IMemberType memberType;
|
||||
@@ -716,13 +716,13 @@ namespace Umbraco.Core.Services
|
||||
/// <summary>
|
||||
/// Saves an updated Member
|
||||
/// </summary>
|
||||
/// <param name="member"></param>
|
||||
/// <param name="entity"></param>
|
||||
/// <param name="raiseEvents"></param>
|
||||
public void Save(IMember member, bool raiseEvents = true)
|
||||
public void Save(IMember entity, bool raiseEvents = true)
|
||||
{
|
||||
if (raiseEvents)
|
||||
{
|
||||
if (Saving.IsRaisedEventCancelled(new SaveEventArgs<IMember>(member), this))
|
||||
if (Saving.IsRaisedEventCancelled(new SaveEventArgs<IMember>(entity), this))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -732,22 +732,22 @@ namespace Umbraco.Core.Services
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateMemberRepository(uow))
|
||||
{
|
||||
repository.AddOrUpdate(member);
|
||||
repository.AddOrUpdate(entity);
|
||||
uow.Commit();
|
||||
|
||||
var xml = member.ToXml();
|
||||
CreateAndSaveMemberXml(xml, member.Id, uow.Database);
|
||||
var xml = entity.ToXml();
|
||||
CreateAndSaveMemberXml(xml, entity.Id, uow.Database);
|
||||
}
|
||||
|
||||
if (raiseEvents)
|
||||
Saved.RaiseEvent(new SaveEventArgs<IMember>(member, false), this);
|
||||
Saved.RaiseEvent(new SaveEventArgs<IMember>(entity, false), this);
|
||||
}
|
||||
|
||||
public void Save(IEnumerable<IMember> members, bool raiseEvents = true)
|
||||
public void Save(IEnumerable<IMember> entities, bool raiseEvents = true)
|
||||
{
|
||||
if (raiseEvents)
|
||||
{
|
||||
if (Saving.IsRaisedEventCancelled(new SaveEventArgs<IMember>(members), this))
|
||||
if (Saving.IsRaisedEventCancelled(new SaveEventArgs<IMember>(entities), this))
|
||||
return;
|
||||
}
|
||||
using (new WriteLock(Locker))
|
||||
@@ -755,7 +755,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateMemberRepository(uow))
|
||||
{
|
||||
foreach (var member in members)
|
||||
foreach (var member in entities)
|
||||
{
|
||||
repository.AddOrUpdate(member);
|
||||
}
|
||||
@@ -763,14 +763,14 @@ namespace Umbraco.Core.Services
|
||||
//commit the whole lot in one go
|
||||
uow.Commit();
|
||||
|
||||
foreach (var member in members)
|
||||
foreach (var member in entities)
|
||||
{
|
||||
CreateAndSaveMemberXml(member.ToXml(), member.Id, uow.Database);
|
||||
}
|
||||
}
|
||||
|
||||
if (raiseEvents)
|
||||
Saved.RaiseEvent(new SaveEventArgs<IMember>(members, false), this);
|
||||
Saved.RaiseEvent(new SaveEventArgs<IMember>(entities, false), this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace Umbraco.Core.Services
|
||||
IContent[] allVersions = null;
|
||||
|
||||
int totalUsers;
|
||||
var allUsers = _userService.GetAllMembers(0, int.MaxValue, out totalUsers);
|
||||
var allUsers = _userService.GetAll(0, int.MaxValue, out totalUsers);
|
||||
foreach (var u in allUsers)
|
||||
{
|
||||
if (u.IsApproved == false) continue;
|
||||
|
||||
@@ -121,7 +121,7 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
}
|
||||
|
||||
public IUser CreateMemberWithIdentity(string username, string email, string password, string memberTypeAlias, bool raiseEvents = true)
|
||||
public IUser CreateWithIdentity(string username, string email, string password, string memberTypeAlias, bool raiseEvents = true)
|
||||
{
|
||||
var userType = GetUserTypeByAlias(memberTypeAlias);
|
||||
if (userType == null)
|
||||
@@ -220,37 +220,37 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
}
|
||||
|
||||
public void Save(IUser membershipUser, bool raiseEvents = true)
|
||||
public void Save(IUser entity, bool raiseEvents = true)
|
||||
{
|
||||
if (raiseEvents)
|
||||
{
|
||||
if (SavingUser.IsRaisedEventCancelled(new SaveEventArgs<IUser>(membershipUser), this))
|
||||
if (SavingUser.IsRaisedEventCancelled(new SaveEventArgs<IUser>(entity), this))
|
||||
return;
|
||||
}
|
||||
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateUserRepository(uow))
|
||||
{
|
||||
repository.AddOrUpdate(membershipUser);
|
||||
repository.AddOrUpdate(entity);
|
||||
uow.Commit();
|
||||
}
|
||||
|
||||
if (raiseEvents)
|
||||
SavedUser.RaiseEvent(new SaveEventArgs<IUser>(membershipUser, false), this);
|
||||
SavedUser.RaiseEvent(new SaveEventArgs<IUser>(entity, false), this);
|
||||
}
|
||||
|
||||
public void Save(IEnumerable<IUser> members, bool raiseEvents = true)
|
||||
public void Save(IEnumerable<IUser> entities, bool raiseEvents = true)
|
||||
{
|
||||
if (raiseEvents)
|
||||
{
|
||||
if (SavingUser.IsRaisedEventCancelled(new SaveEventArgs<IUser>(members), this))
|
||||
if (SavingUser.IsRaisedEventCancelled(new SaveEventArgs<IUser>(entities), this))
|
||||
return;
|
||||
}
|
||||
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateUserRepository(uow))
|
||||
{
|
||||
foreach (var member in members)
|
||||
foreach (var member in entities)
|
||||
{
|
||||
repository.AddOrUpdate(member);
|
||||
}
|
||||
@@ -259,10 +259,10 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
|
||||
if (raiseEvents)
|
||||
SavedUser.RaiseEvent(new SaveEventArgs<IUser>(members, false), this);
|
||||
SavedUser.RaiseEvent(new SaveEventArgs<IUser>(entities, false), this);
|
||||
}
|
||||
|
||||
public IEnumerable<IUser> FindMembersByEmail(string emailStringToMatch, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
|
||||
public IEnumerable<IUser> FindByEmail(string emailStringToMatch, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
|
||||
{
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateUserRepository(uow))
|
||||
@@ -294,7 +294,7 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<IUser> FindMembersByUsername(string login, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
|
||||
public IEnumerable<IUser> FindByUsername(string login, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
|
||||
{
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateUserRepository(uow))
|
||||
@@ -326,7 +326,7 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
}
|
||||
|
||||
public int GetMemberCount(MemberCountType countType)
|
||||
public int GetCount(MemberCountType countType)
|
||||
{
|
||||
using (var repository = _repositoryFactory.CreateUserRepository(_uowProvider.GetUnitOfWork()))
|
||||
{
|
||||
@@ -362,7 +362,7 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<IUser> GetAllMembers(int pageIndex, int pageSize, out int totalRecords)
|
||||
public IEnumerable<IUser> GetAll(int pageIndex, int pageSize, out int totalRecords)
|
||||
{
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateUserRepository(uow))
|
||||
@@ -401,17 +401,17 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Assigns the same permission set for a single user to any number of entities
|
||||
/// Replaces the same permission set for a single user to any number of entities
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="permissions"></param>
|
||||
/// <param name="entityIds"></param>
|
||||
public void AssignUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds)
|
||||
public void ReplaceUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds)
|
||||
{
|
||||
var uow = _uowProvider.GetUnitOfWork();
|
||||
using (var repository = _repositoryFactory.CreateUserRepository(uow))
|
||||
{
|
||||
repository.AssignUserPermissions(userId, permissions, entityIds);
|
||||
repository.ReplaceUserPermissions(userId, permissions, entityIds);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
|
||||
@@ -71,9 +71,9 @@
|
||||
|
||||
<system.data>
|
||||
<DbProviderFactories>
|
||||
<remove invariant="System.Data.SqlServerCe.4.0"/>
|
||||
<remove invariant="System.Data.SqlServerCe.4.0" />
|
||||
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
|
||||
<remove invariant="MySql.Data.MySqlClient"/>
|
||||
<remove invariant="MySql.Data.MySqlClient" />
|
||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
|
||||
</DbProviderFactories>
|
||||
</system.data>
|
||||
@@ -91,4 +91,36 @@
|
||||
</siteMap>
|
||||
</system.web>
|
||||
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
|
||||
<runtime>
|
||||
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
|
||||
<dependentAssembly>
|
||||
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
|
||||
|
||||
</dependentAssembly>
|
||||
|
||||
<dependentAssembly>
|
||||
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
|
||||
</dependentAssembly>
|
||||
|
||||
<dependentAssembly>
|
||||
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
|
||||
</dependentAssembly>
|
||||
|
||||
</assemblyBinding>
|
||||
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -94,7 +94,7 @@ namespace Umbraco.Tests.Membership
|
||||
mServiceMock.Setup(service => service.GetByEmail("test@test.com")).Returns(() => null);
|
||||
mServiceMock.Setup(service => service.GetDefaultMemberType()).Returns("Member");
|
||||
mServiceMock.Setup(
|
||||
service => service.CreateMemberWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
|
||||
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
|
||||
.Callback((string u, string e, string p, string m, bool b) =>
|
||||
{
|
||||
createdMember = new Member("test", e, u, p, memberType);
|
||||
@@ -125,7 +125,7 @@ namespace Umbraco.Tests.Membership
|
||||
mServiceMock.Setup(service => service.GetByEmail("test@test.com")).Returns(() => null);
|
||||
mServiceMock.Setup(service => service.GetDefaultMemberType()).Returns("Member");
|
||||
mServiceMock.Setup(
|
||||
service => service.CreateMemberWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
|
||||
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
|
||||
.Callback((string u, string e, string p, string m, bool b) =>
|
||||
{
|
||||
createdMember = new Member("test", e, u, p, memberType);
|
||||
@@ -158,7 +158,7 @@ namespace Umbraco.Tests.Membership
|
||||
mServiceMock.Setup(service => service.GetByEmail("test@test.com")).Returns(() => null);
|
||||
mServiceMock.Setup(service => service.GetDefaultMemberType()).Returns("Member");
|
||||
mServiceMock.Setup(
|
||||
service => service.CreateMemberWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
|
||||
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
|
||||
.Callback((string u, string e, string p, string m, bool b) =>
|
||||
{
|
||||
createdMember = new Member("test", e, u, p, memberType);
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
unitOfWork.Commit();
|
||||
|
||||
// Act
|
||||
repository.AssignEntityPermissions(parentPage, 'A', new int[] { 0 });
|
||||
repository.AssignEntityPermission(parentPage, 'A', new int[] { 0 });
|
||||
var childPage = MockedContent.CreateSimpleContent(contentType, "child", parentPage);
|
||||
repository.AddOrUpdate(childPage);
|
||||
unitOfWork.Commit();
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var standardProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs();
|
||||
|
||||
Assert.That(sut, Is.Not.Null);
|
||||
Assert.That(sut.PropertyGroups.Count(), Is.EqualTo(1));
|
||||
Assert.That(sut.PropertyGroups.Count(), Is.EqualTo(2));
|
||||
Assert.That(sut.PropertyTypes.Count(), Is.EqualTo(3 + standardProps.Count));
|
||||
|
||||
Assert.That(sut.PropertyGroups.Any(x => x.HasIdentity == false || x.Id == 0), Is.False);
|
||||
@@ -149,7 +149,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
memberType = repository.Get(memberType.Id);
|
||||
|
||||
Assert.That(memberType.PropertyTypes.Count(), Is.EqualTo(3 + Constants.Conventions.Member.GetStandardPropertyTypeStubs().Count));
|
||||
Assert.That(memberType.PropertyGroups.Count(), Is.EqualTo(1));
|
||||
Assert.That(memberType.PropertyGroups.Count(), Is.EqualTo(2));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +79,8 @@ namespace Umbraco.Tests.Routing
|
||||
var docRequest = new PublishedContentRequest(routingContext.UmbracoContext.CleanedUmbracoUrl, routingContext)
|
||||
{
|
||||
PublishedContent = routingContext.UmbracoContext.ContentCache.GetById(1174),
|
||||
TemplateModel = template
|
||||
TemplateModel = template,
|
||||
RenderingEngine = RenderingEngine.Mvc
|
||||
};
|
||||
|
||||
var handler = new RenderRouteHandler(new TestControllerFactory(), routingContext.UmbracoContext);
|
||||
|
||||
@@ -5,6 +5,7 @@ using Umbraco.Core;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Models.Membership;
|
||||
using Umbraco.Core.Models.Rdbms;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.Querying;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Tests.TestHelpers.Entities;
|
||||
@@ -380,7 +381,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.MemberService.Save(members);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.MemberService.GetAllMembers(0, 2, out totalRecs);
|
||||
var found = ServiceContext.MemberService.GetAll(0, 2, out totalRecs);
|
||||
|
||||
Assert.AreEqual(2, found.Count());
|
||||
Assert.AreEqual(10, totalRecs);
|
||||
@@ -400,7 +401,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.MemberService.FindMembersByEmail("tes", 0, 100, out totalRecs, StringPropertyMatchType.StartsWith);
|
||||
var found = ServiceContext.MemberService.FindByEmail("tes", 0, 100, out totalRecs, StringPropertyMatchType.StartsWith);
|
||||
|
||||
Assert.AreEqual(10, found.Count());
|
||||
}
|
||||
@@ -417,7 +418,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.MemberService.FindMembersByEmail("test.com", 0, 100, out totalRecs, StringPropertyMatchType.EndsWith);
|
||||
var found = ServiceContext.MemberService.FindByEmail("test.com", 0, 100, out totalRecs, StringPropertyMatchType.EndsWith);
|
||||
|
||||
Assert.AreEqual(11, found.Count());
|
||||
}
|
||||
@@ -434,7 +435,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.MemberService.FindMembersByEmail("test", 0, 100, out totalRecs, StringPropertyMatchType.Contains);
|
||||
var found = ServiceContext.MemberService.FindByEmail("test", 0, 100, out totalRecs, StringPropertyMatchType.Contains);
|
||||
|
||||
Assert.AreEqual(11, found.Count());
|
||||
}
|
||||
@@ -451,7 +452,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.MemberService.FindMembersByEmail("hello@test.com", 0, 100, out totalRecs, StringPropertyMatchType.Exact);
|
||||
var found = ServiceContext.MemberService.FindByEmail("hello@test.com", 0, 100, out totalRecs, StringPropertyMatchType.Exact);
|
||||
|
||||
Assert.AreEqual(1, found.Count());
|
||||
}
|
||||
@@ -468,7 +469,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.MemberService.FindMembersByUsername("tes", 0, 100, out totalRecs, StringPropertyMatchType.StartsWith);
|
||||
var found = ServiceContext.MemberService.FindByUsername("tes", 0, 100, out totalRecs, StringPropertyMatchType.StartsWith);
|
||||
|
||||
Assert.AreEqual(10, found.Count());
|
||||
}
|
||||
@@ -485,7 +486,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.MemberService.FindMembersByUsername("llo", 0, 100, out totalRecs, StringPropertyMatchType.EndsWith);
|
||||
var found = ServiceContext.MemberService.FindByUsername("llo", 0, 100, out totalRecs, StringPropertyMatchType.EndsWith);
|
||||
|
||||
Assert.AreEqual(1, found.Count());
|
||||
}
|
||||
@@ -502,7 +503,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.MemberService.FindMembersByUsername("test", 0, 100, out totalRecs, StringPropertyMatchType.Contains);
|
||||
var found = ServiceContext.MemberService.FindByUsername("test", 0, 100, out totalRecs, StringPropertyMatchType.Contains);
|
||||
|
||||
Assert.AreEqual(11, found.Count());
|
||||
}
|
||||
@@ -519,7 +520,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.MemberService.FindMembersByUsername("hello", 0, 100, out totalRecs, StringPropertyMatchType.Exact);
|
||||
var found = ServiceContext.MemberService.FindByUsername("hello", 0, 100, out totalRecs, StringPropertyMatchType.Exact);
|
||||
|
||||
Assert.AreEqual(1, found.Count());
|
||||
}
|
||||
@@ -849,7 +850,7 @@ namespace Umbraco.Tests.Services
|
||||
var customMember = MockedMember.CreateSimpleMember(memberType, "hello", "hello@test.com", "hello", "hello");
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
var found = ServiceContext.MemberService.GetMemberCount(MemberCountType.All);
|
||||
var found = ServiceContext.MemberService.GetCount(MemberCountType.All);
|
||||
|
||||
Assert.AreEqual(11, found);
|
||||
}
|
||||
@@ -866,7 +867,7 @@ namespace Umbraco.Tests.Services
|
||||
customMember.SetValue(Constants.Conventions.Member.LastLoginDate, DateTime.Now);
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
var found = ServiceContext.MemberService.GetMemberCount(MemberCountType.Online);
|
||||
var found = ServiceContext.MemberService.GetCount(MemberCountType.Online);
|
||||
|
||||
Assert.AreEqual(9, found);
|
||||
}
|
||||
@@ -883,7 +884,7 @@ namespace Umbraco.Tests.Services
|
||||
customMember.SetValue(Constants.Conventions.Member.IsLockedOut, true);
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
var found = ServiceContext.MemberService.GetMemberCount(MemberCountType.LockedOut);
|
||||
var found = ServiceContext.MemberService.GetCount(MemberCountType.LockedOut);
|
||||
|
||||
Assert.AreEqual(6, found);
|
||||
}
|
||||
@@ -900,7 +901,7 @@ namespace Umbraco.Tests.Services
|
||||
customMember.SetValue(Constants.Conventions.Member.IsApproved, false);
|
||||
ServiceContext.MemberService.Save(customMember);
|
||||
|
||||
var found = ServiceContext.MemberService.GetMemberCount(MemberCountType.Approved);
|
||||
var found = ServiceContext.MemberService.GetCount(MemberCountType.Approved);
|
||||
|
||||
Assert.AreEqual(5, found);
|
||||
}
|
||||
@@ -924,5 +925,41 @@ namespace Umbraco.Tests.Services
|
||||
Assert.IsTrue(found.Comments.IsNullOrWhiteSpace());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Because we are forcing some of the built-ins to be Labels which have an underlying db type as nvarchar but we need
|
||||
/// to ensure that the dates/int get saved to the correct column anyways.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Setting_DateTime_Property_On_Built_In_Member_Property_Saves_To_Correct_Column()
|
||||
{
|
||||
IMemberType memberType = MockedContentTypes.CreateSimpleMemberType();
|
||||
ServiceContext.MemberTypeService.Save(memberType);
|
||||
var member = MockedMember.CreateSimpleMember(memberType, "test", "test@test.com", "test", "test");
|
||||
var date = DateTime.Now;
|
||||
member.LastLoginDate = DateTime.Now;
|
||||
ServiceContext.MemberService.Save(member);
|
||||
|
||||
var result = ServiceContext.MemberService.GetById(member.Id);
|
||||
Assert.AreEqual(
|
||||
date.TruncateTo(DateTimeExtensions.DateTruncate.Second),
|
||||
result.LastLoginDate.TruncateTo(DateTimeExtensions.DateTruncate.Second));
|
||||
|
||||
//now ensure the col is correct
|
||||
var sql = new Sql().Select("cmsPropertyData.*")
|
||||
.From<PropertyDataDto>()
|
||||
.InnerJoin<PropertyTypeDto>()
|
||||
.On<PropertyDataDto, PropertyTypeDto>(dto => dto.PropertyTypeId, dto => dto.Id)
|
||||
.Where<PropertyDataDto>(dto => dto.NodeId == member.Id)
|
||||
.Where<PropertyTypeDto>(dto => dto.Alias == Constants.Conventions.Member.LastLoginDate);
|
||||
|
||||
var colResult = DatabaseContext.Database.Fetch<PropertyDataDto>(sql);
|
||||
|
||||
Assert.AreEqual(1, colResult.Count);
|
||||
Assert.IsTrue(colResult.First().Date.HasValue);
|
||||
Assert.IsFalse(colResult.First().Integer.HasValue);
|
||||
Assert.IsNull(colResult.First().Text);
|
||||
Assert.IsNull(colResult.First().VarChar);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -76,14 +76,14 @@ namespace Umbraco.Tests.Services
|
||||
MockedContent.CreateSimpleContent(contentType)
|
||||
};
|
||||
ServiceContext.ContentService.Save(content);
|
||||
ServiceContext.ContentService.AssignContentPermissions(content.ElementAt(0), ActionBrowse.Instance.Letter, new int[] { user.Id });
|
||||
ServiceContext.ContentService.AssignContentPermissions(content.ElementAt(0), ActionDelete.Instance.Letter, new int[] { user.Id });
|
||||
ServiceContext.ContentService.AssignContentPermissions(content.ElementAt(0), ActionMove.Instance.Letter, new int[] { user.Id });
|
||||
ServiceContext.ContentService.AssignContentPermission(content.ElementAt(0), ActionBrowse.Instance.Letter, new int[] { user.Id });
|
||||
ServiceContext.ContentService.AssignContentPermission(content.ElementAt(0), ActionDelete.Instance.Letter, new int[] { user.Id });
|
||||
ServiceContext.ContentService.AssignContentPermission(content.ElementAt(0), ActionMove.Instance.Letter, new int[] { user.Id });
|
||||
|
||||
ServiceContext.ContentService.AssignContentPermissions(content.ElementAt(1), ActionBrowse.Instance.Letter, new int[] { user.Id });
|
||||
ServiceContext.ContentService.AssignContentPermissions(content.ElementAt(1), ActionDelete.Instance.Letter, new int[] { user.Id });
|
||||
ServiceContext.ContentService.AssignContentPermission(content.ElementAt(1), ActionBrowse.Instance.Letter, new int[] { user.Id });
|
||||
ServiceContext.ContentService.AssignContentPermission(content.ElementAt(1), ActionDelete.Instance.Letter, new int[] { user.Id });
|
||||
|
||||
ServiceContext.ContentService.AssignContentPermissions(content.ElementAt(2), ActionBrowse.Instance.Letter, new int[] { user.Id });
|
||||
ServiceContext.ContentService.AssignContentPermission(content.ElementAt(2), ActionBrowse.Instance.Letter, new int[] { user.Id });
|
||||
|
||||
// Act
|
||||
var permissions = userService.GetPermissions(user, content.ElementAt(0).Id, content.ElementAt(1).Id, content.ElementAt(2).Id);
|
||||
@@ -191,7 +191,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.UserService.Save(customUser);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.UserService.FindMembersByEmail("tes", 0, 100, out totalRecs, StringPropertyMatchType.StartsWith);
|
||||
var found = ServiceContext.UserService.FindByEmail("tes", 0, 100, out totalRecs, StringPropertyMatchType.StartsWith);
|
||||
|
||||
Assert.AreEqual(10, found.Count());
|
||||
}
|
||||
@@ -209,7 +209,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.UserService.Save(customUser);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.UserService.FindMembersByEmail("test.com", 0, 100, out totalRecs, StringPropertyMatchType.EndsWith);
|
||||
var found = ServiceContext.UserService.FindByEmail("test.com", 0, 100, out totalRecs, StringPropertyMatchType.EndsWith);
|
||||
|
||||
Assert.AreEqual(11, found.Count());
|
||||
}
|
||||
@@ -227,7 +227,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.UserService.Save(customUser);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.UserService.FindMembersByEmail("test", 0, 100, out totalRecs, StringPropertyMatchType.Contains);
|
||||
var found = ServiceContext.UserService.FindByEmail("test", 0, 100, out totalRecs, StringPropertyMatchType.Contains);
|
||||
|
||||
Assert.AreEqual(11, found.Count());
|
||||
}
|
||||
@@ -245,7 +245,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.UserService.Save(customUser);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.UserService.FindMembersByEmail("hello@test.com", 0, 100, out totalRecs, StringPropertyMatchType.Exact);
|
||||
var found = ServiceContext.UserService.FindByEmail("hello@test.com", 0, 100, out totalRecs, StringPropertyMatchType.Exact);
|
||||
|
||||
Assert.AreEqual(1, found.Count());
|
||||
}
|
||||
@@ -259,7 +259,7 @@ namespace Umbraco.Tests.Services
|
||||
ServiceContext.UserService.Save(users);
|
||||
|
||||
int totalRecs;
|
||||
var found = ServiceContext.UserService.GetAllMembers(0, 2, out totalRecs);
|
||||
var found = ServiceContext.UserService.GetAll(0, 2, out totalRecs);
|
||||
|
||||
Assert.AreEqual(2, found.Count());
|
||||
// + 1 because of the built in admin user
|
||||
@@ -278,7 +278,7 @@ namespace Umbraco.Tests.Services
|
||||
var customUser = MockedUser.CreateUser(userType);
|
||||
ServiceContext.UserService.Save(customUser);
|
||||
|
||||
var found = ServiceContext.UserService.GetMemberCount(MemberCountType.All);
|
||||
var found = ServiceContext.UserService.GetCount(MemberCountType.All);
|
||||
|
||||
// + 1 because of the built in admin user
|
||||
Assert.AreEqual(12, found);
|
||||
@@ -309,7 +309,7 @@ namespace Umbraco.Tests.Services
|
||||
customUser.IsLockedOut = true;
|
||||
ServiceContext.UserService.Save(customUser);
|
||||
|
||||
var found = ServiceContext.UserService.GetMemberCount(MemberCountType.LockedOut);
|
||||
var found = ServiceContext.UserService.GetCount(MemberCountType.LockedOut);
|
||||
|
||||
Assert.AreEqual(6, found);
|
||||
}
|
||||
@@ -326,7 +326,7 @@ namespace Umbraco.Tests.Services
|
||||
customUser.IsApproved = false;
|
||||
ServiceContext.UserService.Save(customUser);
|
||||
|
||||
var found = ServiceContext.UserService.GetMemberCount(MemberCountType.Approved);
|
||||
var found = ServiceContext.UserService.GetCount(MemberCountType.Approved);
|
||||
|
||||
// + 1 because of the built in admin user
|
||||
Assert.AreEqual(6, found);
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
</Reference>
|
||||
<Reference Include="Examine, Version=0.1.52.2941, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Examine.0.1.53.2941\lib\Examine.dll</HintPath>
|
||||
<HintPath>..\packages\Examine.0.1.55.2941\lib\Examine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AspNetWebApi.SelfHost" version="4.0.20710.0" targetFramework="net45" />
|
||||
<package id="Examine" version="0.1.53.2941" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.55.2941" targetFramework="net40" />
|
||||
<package id="AutoMapper" version="3.0.0" targetFramework="net45" />
|
||||
<package id="log4net-mediumtrust" version="2.0.0" targetFramework="net40" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net40" />
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
</Reference>
|
||||
<Reference Include="Examine">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Examine.0.1.53.2941\lib\Examine.dll</HintPath>
|
||||
<HintPath>..\packages\Examine.0.1.55.2941\lib\Examine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ImageProcessor">
|
||||
<HintPath>..\packages\ImageProcessor.1.8.3.0\lib\net45\ImageProcessor.dll</HintPath>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<package id="AutoMapper" version="3.0.0" targetFramework="net45" />
|
||||
<package id="ClientDependency" version="1.7.1.1" targetFramework="net45" />
|
||||
<package id="ClientDependency-Mvc" version="1.7.0.4" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.53.2941" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.55.2941" targetFramework="net40" />
|
||||
<package id="ImageProcessor" version="1.8.3.0" targetFramework="net45" />
|
||||
<package id="ImageProcessor.Web" version="3.1.1.0" targetFramework="net45" />
|
||||
<package id="log4net-mediumtrust" version="2.0.0" targetFramework="net40" />
|
||||
|
||||
@@ -227,7 +227,10 @@ namespace Umbraco.Web.Security
|
||||
|
||||
var memberType = member.ContentType;
|
||||
|
||||
foreach (var prop in memberType.PropertyTypes.Where(x => memberType.MemberCanEditProperty(x.Alias)))
|
||||
var builtIns = Constants.Conventions.Member.GetStandardPropertyTypeStubs().Select(x => x.Key).ToArray();
|
||||
|
||||
foreach (var prop in memberType.PropertyTypes
|
||||
.Where(x => builtIns.Contains(x.Alias) == false && memberType.MemberCanEditProperty(x.Alias)))
|
||||
{
|
||||
var value = string.Empty;
|
||||
var propValue = member.Properties[prop.Alias];
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// <summary>
|
||||
/// Custom Membership Provider for Umbraco Members (User authentication for Frontend applications NOT umbraco CMS)
|
||||
/// </summary>
|
||||
public class MembersMembershipProvider : UmbracoServiceMembershipProvider<IMembershipMemberService, IMember>, IUmbracoContentTypeMembershipProvider
|
||||
public class MembersMembershipProvider : UmbracoMembershipProvider<IMembershipMemberService, IMember>, IUmbracoMemberTypeMembershipProvider
|
||||
{
|
||||
public MembersMembershipProvider()
|
||||
: this(ApplicationContext.Current.Services.MemberService)
|
||||
|
||||
+13
-13
@@ -19,14 +19,14 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// <summary>
|
||||
/// Abstract Membership Provider that users any implementation of IMembershipMemberService{TEntity} service
|
||||
/// </summary>
|
||||
public abstract class UmbracoServiceMembershipProvider<T, TEntity> : UmbracoMembershipProviderBase
|
||||
public abstract class UmbracoMembershipProvider<T, TEntity> : UmbracoMembershipProviderBase
|
||||
where T : IMembershipMemberService<TEntity>
|
||||
where TEntity : class, IMembershipUser
|
||||
{
|
||||
|
||||
protected IMembershipMemberService<TEntity> MemberService { get; private set; }
|
||||
|
||||
protected UmbracoServiceMembershipProvider(IMembershipMemberService<TEntity> memberService)
|
||||
protected UmbracoMembershipProvider(IMembershipMemberService<TEntity> memberService)
|
||||
{
|
||||
MemberService = memberService;
|
||||
}
|
||||
@@ -134,7 +134,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
if (MemberService.Exists(username))
|
||||
{
|
||||
status = MembershipCreateStatus.DuplicateUserName;
|
||||
LogHelper.Warn<UmbracoServiceMembershipProvider<T, TEntity>>("Cannot create member as username already exists: " + username);
|
||||
LogHelper.Warn<UmbracoMembershipProvider<T, TEntity>>("Cannot create member as username already exists: " + username);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
if (MemberService.GetByEmail(email) != null && RequiresUniqueEmail)
|
||||
{
|
||||
status = MembershipCreateStatus.DuplicateEmail;
|
||||
LogHelper.Warn<UmbracoServiceMembershipProvider<T, TEntity>>(
|
||||
LogHelper.Warn<UmbracoMembershipProvider<T, TEntity>>(
|
||||
"Cannot create member as a member with the same email address exists: " + email);
|
||||
return null;
|
||||
}
|
||||
@@ -150,7 +150,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
string salt;
|
||||
var encodedPassword = EncryptOrHashNewPassword(password, out salt);
|
||||
|
||||
var member = MemberService.CreateMemberWithIdentity(
|
||||
var member = MemberService.CreateWithIdentity(
|
||||
username,
|
||||
email,
|
||||
FormatPasswordForStorage(encodedPassword, salt),
|
||||
@@ -199,7 +199,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// </returns>
|
||||
public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
|
||||
{
|
||||
var byEmail = MemberService.FindMembersByEmail(emailToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
var byEmail = MemberService.FindByEmail(emailToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
|
||||
var collection = new MembershipUserCollection();
|
||||
foreach (var m in byEmail)
|
||||
@@ -221,7 +221,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// </returns>
|
||||
public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
|
||||
{
|
||||
var byEmail = MemberService.FindMembersByUsername(usernameToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
var byEmail = MemberService.FindByUsername(usernameToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
|
||||
var collection = new MembershipUserCollection();
|
||||
foreach (var m in byEmail)
|
||||
@@ -244,7 +244,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
{
|
||||
var membersList = new MembershipUserCollection();
|
||||
|
||||
var pagedMembers = MemberService.GetAllMembers(pageIndex, pageSize, out totalRecords);
|
||||
var pagedMembers = MemberService.GetAll(pageIndex, pageSize, out totalRecords);
|
||||
|
||||
foreach (var m in pagedMembers)
|
||||
{
|
||||
@@ -266,7 +266,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// </remarks>
|
||||
public override int GetNumberOfUsersOnline()
|
||||
{
|
||||
return MemberService.GetMemberCount(MemberCountType.Online);
|
||||
return MemberService.GetCount(MemberCountType.Online);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -463,7 +463,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
if (RequiresUniqueEmail && user.Email.Trim().IsNullOrWhiteSpace() == false)
|
||||
{
|
||||
int totalRecs;
|
||||
var byEmail = MemberService.FindMembersByEmail(user.Email.Trim(), 0, int.MaxValue, out totalRecs, StringPropertyMatchType.Exact);
|
||||
var byEmail = MemberService.FindByEmail(user.Email.Trim(), 0, int.MaxValue, out totalRecs, StringPropertyMatchType.Exact);
|
||||
if (byEmail.Count(x => x.Id != m.Id) > 0)
|
||||
{
|
||||
throw new ProviderException(string.Format("A member with the email '{0}' already exists", user.Email));
|
||||
@@ -498,12 +498,12 @@ namespace Umbraco.Web.Security.Providers
|
||||
|
||||
if (member.IsApproved == false)
|
||||
{
|
||||
LogHelper.Info<UmbracoServiceMembershipProvider<T, TEntity>>("Cannot validate member " + username + " because they are not approved");
|
||||
LogHelper.Info<UmbracoMembershipProvider<T, TEntity>>("Cannot validate member " + username + " because they are not approved");
|
||||
return false;
|
||||
}
|
||||
if (member.IsLockedOut)
|
||||
{
|
||||
LogHelper.Info<UmbracoServiceMembershipProvider<T, TEntity>>("Cannot validate member " + username + " because they are currently locked out");
|
||||
LogHelper.Info<UmbracoMembershipProvider<T, TEntity>>("Cannot validate member " + username + " because they are currently locked out");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -521,7 +521,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
{
|
||||
member.IsLockedOut = true;
|
||||
member.LastLockoutDate = DateTime.Now;
|
||||
LogHelper.Info<UmbracoServiceMembershipProvider<T, TEntity>>("Member " + username + " is now locked out, max invalid password attempts exceeded");
|
||||
LogHelper.Info<UmbracoMembershipProvider<T, TEntity>>("Member " + username + " is now locked out, max invalid password attempts exceeded");
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -13,7 +13,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// <summary>
|
||||
/// Custom Membership Provider for Umbraco Users (User authentication for Umbraco Backend CMS)
|
||||
/// </summary>
|
||||
public class UsersMembershipProvider : UmbracoServiceMembershipProvider<IMembershipUserService, IUser>, IUsersMembershipProvider
|
||||
public class UsersMembershipProvider : UmbracoMembershipProvider<IMembershipUserService, IUser>, IUsersMembershipProvider
|
||||
{
|
||||
|
||||
public UsersMembershipProvider()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
@@ -112,7 +112,7 @@
|
||||
</Reference>
|
||||
<Reference Include="Examine">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Examine.0.1.53.2941\lib\Examine.dll</HintPath>
|
||||
<HintPath>..\packages\Examine.0.1.55.2941\lib\Examine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.4.6.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
@@ -548,7 +548,7 @@
|
||||
<Compile Include="Editors\BackOfficeController.cs" />
|
||||
<Compile Include="Security\Providers\MembersMembershipProvider.cs" />
|
||||
<Compile Include="Security\Providers\MembersRoleProvider.cs" />
|
||||
<Compile Include="Security\Providers\UmbracoServiceMembershipProvider.cs" />
|
||||
<Compile Include="Security\Providers\UmbracoMembershipProvider.cs" />
|
||||
<Compile Include="Security\Providers\UsersMembershipProvider.cs" />
|
||||
<Compile Include="Trees\ContentTreeController.cs" />
|
||||
<Compile Include="Trees\TreeRenderingEventArgs.cs" />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
@@ -25,4 +25,20 @@
|
||||
</setting>
|
||||
</Umbraco.Web.Properties.Settings>
|
||||
</applicationSettings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -3,7 +3,7 @@
|
||||
<package id="AutoMapper" version="3.0.0" targetFramework="net45" />
|
||||
<package id="ClientDependency" version="1.7.1.1" targetFramework="net45" />
|
||||
<package id="CodeSharp.Package.AspNetWebPage" version="1.0" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.53.2941" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.55.2941" targetFramework="net40" />
|
||||
<package id="HtmlAgilityPack" version="1.4.6" targetFramework="net40" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net40" />
|
||||
<package id="Microsoft.AspNet.Mvc" version="4.0.30506.0" targetFramework="net40" />
|
||||
|
||||
+7
-20
@@ -3,6 +3,7 @@ using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.SessionState;
|
||||
using System.Web.UI;
|
||||
@@ -10,6 +11,7 @@ using System.Web.UI.WebControls;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using Umbraco.Core.Configuration;
|
||||
using umbraco.cms.businesslogic.propertytype;
|
||||
using Umbraco.Core;
|
||||
|
||||
namespace umbraco.developer
|
||||
{
|
||||
@@ -35,7 +37,9 @@ namespace umbraco.developer
|
||||
|
||||
// generic properties
|
||||
string existingGenProps = ",";
|
||||
foreach (PropertyType pt in PropertyType.GetAll())
|
||||
var exclude = Constants.Conventions.Member.GetStandardPropertyTypeStubs().Select(x => x.Key).ToArray();
|
||||
foreach (PropertyType pt in PropertyType.GetAll().Where(x => exclude.Contains(x.Alias) == false))
|
||||
{
|
||||
if (!existingGenProps.Contains("," + pt.Alias + ","))
|
||||
{
|
||||
if(UmbracoConfig.For.UmbracoSettings().Content.UseLegacyXmlSchema)
|
||||
@@ -45,6 +49,8 @@ namespace umbraco.developer
|
||||
|
||||
existingGenProps += pt.Alias + ",";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
preValuesSource.Sort();
|
||||
preValues.DataSource = preValuesSource;
|
||||
@@ -57,24 +63,5 @@ namespace umbraco.developer
|
||||
valueOf.Text = Request.QueryString["value"];
|
||||
}
|
||||
|
||||
#region Web Form Designer generated code
|
||||
override protected void OnInit(EventArgs e)
|
||||
{
|
||||
//
|
||||
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
|
||||
//
|
||||
InitializeComponent();
|
||||
base.OnInit(e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,12 +3,15 @@ using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.SessionState;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Persistence.SqlSyntax;
|
||||
using umbraco.DataLayer;
|
||||
|
||||
namespace umbraco.dialogs
|
||||
@@ -56,7 +59,13 @@ namespace umbraco.dialogs
|
||||
}
|
||||
else
|
||||
{
|
||||
fieldSql = "select distinct alias from cmsPropertyType order by alias";
|
||||
//exclude built-in memberhip properties from showing up here
|
||||
var exclude = Constants.Conventions.Member.GetStandardPropertyTypeStubs()
|
||||
.Select(x => SqlSyntaxContext.SqlSyntaxProvider.GetQuotedValue(x.Key)).ToArray();
|
||||
|
||||
fieldSql = string.Format(
|
||||
"select distinct alias from cmsPropertyType where alias not in ({0}) order by alias",
|
||||
string.Join(",", exclude));
|
||||
pp_insertField.Text = ui.Text("templateEditor", "chooseField");
|
||||
}
|
||||
|
||||
@@ -96,24 +105,6 @@ namespace umbraco.dialogs
|
||||
|
||||
}
|
||||
|
||||
#region Web Form Designer generated code
|
||||
override protected void OnInit(EventArgs e)
|
||||
{
|
||||
//
|
||||
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
|
||||
//
|
||||
InitializeComponent();
|
||||
base.OnInit(e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// JsInclude1 control.
|
||||
|
||||
@@ -80,14 +80,14 @@ namespace umbraco.cms.presentation.user
|
||||
//if permissions are to be assigned, then assign them
|
||||
if (permissions.Count > 0)
|
||||
{
|
||||
ApplicationContext.Current.Services.UserService.AssignUserPermissions(
|
||||
ApplicationContext.Current.Services.UserService.ReplaceUserPermissions(
|
||||
_user.Id, permissions.Select(x => x.Letter), allNodes.ToArray());
|
||||
}
|
||||
else
|
||||
{
|
||||
//If there are NO permissions for this node, we need to assign the ActionNull permission otherwise
|
||||
//the node will inherit from it's parent.
|
||||
ApplicationContext.Current.Services.UserService.AssignUserPermissions(
|
||||
ApplicationContext.Current.Services.UserService.ReplaceUserPermissions(
|
||||
_user.Id, new[] { ActionNull.Instance.Letter }, allNodes.ToArray());
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</Reference>
|
||||
<Reference Include="Examine">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Examine.0.1.53.2941\lib\Examine.dll</HintPath>
|
||||
<HintPath>..\packages\Examine.0.1.55.2941\lib\Examine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Examine.Azure">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
@@ -88,6 +88,7 @@
|
||||
<Content Include="license.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -2,7 +2,7 @@
|
||||
<packages>
|
||||
<package id="AnglicanGeek.WindowsAzure.ServiceRuntime" version="1.6" targetFramework="net40" />
|
||||
<package id="AzureDirectory" version="1.0.5" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.53.2941" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.55.2941" targetFramework="net40" />
|
||||
<package id="Examine.Azure" version="0.1.51.2941" targetFramework="net40" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net40" />
|
||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net40" />
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</Reference>
|
||||
<Reference Include="Examine">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Examine.0.1.53.2941\lib\Examine.dll</HintPath>
|
||||
<HintPath>..\packages\Examine.0.1.55.2941\lib\Examine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Examine.Azure">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
@@ -89,6 +89,7 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -2,7 +2,7 @@
|
||||
<packages>
|
||||
<package id="AnglicanGeek.WindowsAzure.ServiceRuntime" version="1.6" targetFramework="net40" />
|
||||
<package id="AzureDirectory" version="1.0.5" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.53.2941" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.55.2941" targetFramework="net40" />
|
||||
<package id="Examine.Azure" version="0.1.51.2941" targetFramework="net40" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net40" />
|
||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net40" />
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<ItemGroup>
|
||||
<Reference Include="Examine">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Examine.0.1.53.2941\lib\Examine.dll</HintPath>
|
||||
<HintPath>..\packages\Examine.0.1.55.2941\lib\Examine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib">
|
||||
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
@@ -78,6 +78,7 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Examine" version="0.1.53.2941" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.55.2941" targetFramework="net40" />
|
||||
<package id="iTextSharp" version="5.3.3" targetFramework="net40" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net40" />
|
||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net40" />
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
<ItemGroup>
|
||||
<Reference Include="Examine">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Examine.0.1.53.2941\lib\Examine.dll</HintPath>
|
||||
<HintPath>..\packages\Examine.0.1.55.2941\lib\Examine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
@@ -171,6 +171,7 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Examine" version="0.1.53.2941" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.55.2941" targetFramework="net40" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net40" />
|
||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net40" />
|
||||
</packages>
|
||||
@@ -683,8 +683,8 @@ namespace umbraco.MacroEngines
|
||||
{
|
||||
//if we cannot get with the current alias, try changing it's case
|
||||
attempt = alias[0].IsUpperCase()
|
||||
? getMember(alias.ToCleanString(CleanStringType.Ascii | CleanStringType.Alias | CleanStringType.CamelCase))
|
||||
: getMember(alias.ToCleanString(CleanStringType.Ascii | CleanStringType.Alias | CleanStringType.PascalCase));
|
||||
? getMember(alias.ToCleanString(CleanStringType.Ascii | CleanStringType.ConvertCase | CleanStringType.CamelCase))
|
||||
: getMember(alias.ToCleanString(CleanStringType.Ascii | CleanStringType.ConvertCase | CleanStringType.PascalCase));
|
||||
}
|
||||
|
||||
return attempt.Success ? attempt.Result : null;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Examine" version="0.1.53.2941" targetFramework="net40" />
|
||||
<package id="Examine" version="0.1.55.2941" targetFramework="net40" />
|
||||
<package id="HtmlAgilityPack" version="1.4.6" targetFramework="net40" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net40" />
|
||||
<package id="Microsoft.AspNet.Mvc" version="4.0.30506.0" targetFramework="net40" />
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<ItemGroup>
|
||||
<Reference Include="Examine">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Examine.0.1.53.2941\lib\Examine.dll</HintPath>
|
||||
<HintPath>..\packages\Examine.0.1.55.2941\lib\Examine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.4.6.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
|
||||
@@ -341,7 +341,7 @@ namespace umbraco.BusinessLogic
|
||||
public static User[] getAll()
|
||||
{
|
||||
int totalRecs;
|
||||
var users = ApplicationContext.Current.Services.UserService.GetAllMembers(
|
||||
var users = ApplicationContext.Current.Services.UserService.GetAll(
|
||||
0, int.MaxValue, out totalRecs);
|
||||
|
||||
return users.Select(x => new User(x))
|
||||
@@ -390,14 +390,14 @@ namespace umbraco.BusinessLogic
|
||||
int totalRecs;
|
||||
if (useExactMatch)
|
||||
{
|
||||
return ApplicationContext.Current.Services.UserService.FindMembersByEmail(
|
||||
return ApplicationContext.Current.Services.UserService.FindByEmail(
|
||||
email, 0, int.MaxValue, out totalRecs, StringPropertyMatchType.Exact)
|
||||
.Select(x => new User(x))
|
||||
.ToArray();
|
||||
}
|
||||
else
|
||||
{
|
||||
return ApplicationContext.Current.Services.UserService.FindMembersByEmail(
|
||||
return ApplicationContext.Current.Services.UserService.FindByEmail(
|
||||
string.Format("%{0}%", email), 0, int.MaxValue, out totalRecs, StringPropertyMatchType.Wildcard)
|
||||
.Select(x => new User(x))
|
||||
.ToArray();
|
||||
@@ -430,14 +430,14 @@ namespace umbraco.BusinessLogic
|
||||
int totalRecs;
|
||||
if (partialMatch)
|
||||
{
|
||||
return ApplicationContext.Current.Services.UserService.FindMembersByUsername(
|
||||
return ApplicationContext.Current.Services.UserService.FindByUsername(
|
||||
string.Format("%{0}%", login), 0, int.MaxValue, out totalRecs, StringPropertyMatchType.Wildcard)
|
||||
.Select(x => new User(x))
|
||||
.ToArray();
|
||||
}
|
||||
else
|
||||
{
|
||||
return ApplicationContext.Current.Services.UserService.FindMembersByUsername(
|
||||
return ApplicationContext.Current.Services.UserService.FindByUsername(
|
||||
login, 0, int.MaxValue, out totalRecs, StringPropertyMatchType.Exact)
|
||||
.Select(x => new User(x))
|
||||
.ToArray();
|
||||
|
||||
@@ -191,7 +191,7 @@ namespace umbraco.BusinessLogic
|
||||
[MethodImpl(MethodImplOptions.Synchronized)]
|
||||
public static void UpdateCruds(User user, CMSNode node, string permissions)
|
||||
{
|
||||
ApplicationContext.Current.Services.UserService.AssignUserPermissions(
|
||||
ApplicationContext.Current.Services.UserService.ReplaceUserPermissions(
|
||||
user.Id,
|
||||
permissions.ToCharArray(),
|
||||
node.Id);
|
||||
|
||||
@@ -114,7 +114,7 @@ namespace umbraco.cms.businesslogic.member
|
||||
public static IEnumerable<Member> GetAllAsList()
|
||||
{
|
||||
int totalRecs;
|
||||
return ApplicationContext.Current.Services.MemberService.GetAllMembers(0, int.MaxValue, out totalRecs)
|
||||
return ApplicationContext.Current.Services.MemberService.GetAll(0, int.MaxValue, out totalRecs)
|
||||
.Select(x => new Member(x))
|
||||
.ToArray();
|
||||
}
|
||||
@@ -154,7 +154,7 @@ namespace umbraco.cms.businesslogic.member
|
||||
public static Member[] getMemberFromFirstLetter(char letter)
|
||||
{
|
||||
int totalRecs;
|
||||
return ApplicationContext.Current.Services.MemberService.FindMembersByUsername(
|
||||
return ApplicationContext.Current.Services.MemberService.FindByUsername(
|
||||
letter.ToString(CultureInfo.InvariantCulture), 0, int.MaxValue, out totalRecs, StringPropertyMatchType.StartsWith)
|
||||
.Select(x => new Member(x))
|
||||
.ToArray();
|
||||
@@ -171,7 +171,7 @@ namespace umbraco.cms.businesslogic.member
|
||||
}
|
||||
else
|
||||
{
|
||||
var found = ApplicationContext.Current.Services.MemberService.FindMembersByUsername(
|
||||
var found = ApplicationContext.Current.Services.MemberService.FindByUsername(
|
||||
usernameToMatch, 0, int.MaxValue, out totalRecs, StringPropertyMatchType.StartsWith);
|
||||
return found.Select(x => new Member(x)).ToArray();
|
||||
}
|
||||
@@ -291,7 +291,7 @@ namespace umbraco.cms.businesslogic.member
|
||||
return null;
|
||||
|
||||
int totalRecs;
|
||||
var found = ApplicationContext.Current.Services.MemberService.FindMembersByEmail(
|
||||
var found = ApplicationContext.Current.Services.MemberService.FindByEmail(
|
||||
email, 0, int.MaxValue, out totalRecs, StringPropertyMatchType.Exact);
|
||||
|
||||
return found.Select(x => new Member(x)).ToArray();
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
@@ -483,6 +483,7 @@
|
||||
<EmbeddedResource Include="SettingControls\js\Values.js" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace umbraco.providers.members
|
||||
/// Custom Membership Provider for Umbraco Members (User authentication for Frontend applications NOT umbraco CMS)
|
||||
/// </summary>
|
||||
[Obsolete("This has been superceded by Umbraco.Web.Security.Providers.MembersMembershipProvider")]
|
||||
public class UmbracoMembershipProvider : UmbracoMembershipProviderBase, IUmbracoContentTypeMembershipProvider
|
||||
public class UmbracoMembershipProvider : UmbracoMembershipProviderBase, IUmbracoMemberTypeMembershipProvider
|
||||
{
|
||||
public UmbracoMembershipProvider()
|
||||
|
||||
@@ -351,7 +351,7 @@ namespace umbraco.providers.members
|
||||
/// </returns>
|
||||
public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
|
||||
{
|
||||
var byEmail = ApplicationContext.Current.Services.MemberService.FindMembersByEmail(emailToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
var byEmail = ApplicationContext.Current.Services.MemberService.FindByEmail(emailToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
|
||||
var collection = new MembershipUserCollection();
|
||||
foreach (var m in byEmail)
|
||||
@@ -373,7 +373,7 @@ namespace umbraco.providers.members
|
||||
/// </returns>
|
||||
public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
|
||||
{
|
||||
var byEmail = ApplicationContext.Current.Services.MemberService.FindMembersByUsername(usernameToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
var byEmail = ApplicationContext.Current.Services.MemberService.FindByUsername(usernameToMatch, pageIndex, pageSize, out totalRecords, StringPropertyMatchType.Wildcard).ToArray();
|
||||
|
||||
var collection = new MembershipUserCollection();
|
||||
foreach (var m in byEmail)
|
||||
@@ -396,7 +396,7 @@ namespace umbraco.providers.members
|
||||
{
|
||||
var membersList = new MembershipUserCollection();
|
||||
|
||||
var pagedMembers = ApplicationContext.Current.Services.MemberService.GetAllMembers(pageIndex, pageSize, out totalRecords);
|
||||
var pagedMembers = ApplicationContext.Current.Services.MemberService.GetAll(pageIndex, pageSize, out totalRecords);
|
||||
|
||||
foreach (var m in pagedMembers)
|
||||
{
|
||||
@@ -413,7 +413,7 @@ namespace umbraco.providers.members
|
||||
/// </returns>
|
||||
public override int GetNumberOfUsersOnline()
|
||||
{
|
||||
return ApplicationContext.Current.Services.MemberService.GetMemberCount(MemberCountType.Online);
|
||||
return ApplicationContext.Current.Services.MemberService.GetCount(MemberCountType.Online);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user