diff --git a/src/Umbraco.Core/Models/Membership/EntityPermission.cs b/src/Umbraco.Core/Models/Membership/EntityPermission.cs
index 8a72eb69ba..c417a4985c 100644
--- a/src/Umbraco.Core/Models/Membership/EntityPermission.cs
+++ b/src/Umbraco.Core/Models/Membership/EntityPermission.cs
@@ -12,12 +12,13 @@
AssignedPermissions = assignedPermissions;
}
- public object UserId { get; set; }
- public int EntityId { get; set; }
+ public object UserId { get; private set; }
+ public int EntityId { get; private set; }
///
/// The assigned permissions for the user/entity combo
///
- public string[] AssignedPermissions { get; set; }
+ public string[] AssignedPermissions { get; private set; }
}
+
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/Membership/IUser.cs b/src/Umbraco.Core/Models/Membership/IUser.cs
index 268ed04219..264ccbf1a7 100644
--- a/src/Umbraco.Core/Models/Membership/IUser.cs
+++ b/src/Umbraco.Core/Models/Membership/IUser.cs
@@ -19,7 +19,14 @@ namespace Umbraco.Core.Models.Membership
bool NoConsole { get; set; }
IUserType UserType { get; }
- string DefaultPermissions { get; set; }
+
+ ///
+ /// The default permissions for the user
+ ///
+ ///
+ /// The default permissions are assigned to the user object based on the user type's default permissions
+ ///
+ string DefaultPermissions { get; }
}
internal interface IUserProfile : IProfile
diff --git a/src/Umbraco.Core/Persistence/Factories/UserFactory.cs b/src/Umbraco.Core/Persistence/Factories/UserFactory.cs
index 0a046ca7a0..c1be1d360b 100644
--- a/src/Umbraco.Core/Persistence/Factories/UserFactory.cs
+++ b/src/Umbraco.Core/Persistence/Factories/UserFactory.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Globalization;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Models.Rdbms;
@@ -32,7 +33,9 @@ namespace Umbraco.Core.Persistence.Factories
Language = dto.UserLanguage,
DefaultToLiveEditing = dto.DefaultToLiveEditing,
NoConsole = dto.NoConsole,
- DefaultPermissions = dto.DefaultPermissions
+
+ //NOTE: The umbracoUser.DefaultPermissions column is never used, the default permission come from the user type's default permissions
+ DefaultPermissions = _userType.Permissions
};
foreach (var app in dto.User2AppDtos)
@@ -61,8 +64,9 @@ namespace Umbraco.Core.Persistence.Factories
Password = entity.Password,
UserLanguage = entity.Language,
UserName = entity.Name,
- Type = short.Parse(entity.UserType.Id.ToString()),
- DefaultPermissions = entity.DefaultPermissions,
+ Type = short.Parse(entity.UserType.Id.ToString(CultureInfo.InvariantCulture)),
+ //NOTE: This column in the db is *not* used so we'll just let it remain null
+ DefaultPermissions = null,
User2AppDtos = new List()
};
diff --git a/src/Umbraco.Core/Persistence/Mappers/UserMapper.cs b/src/Umbraco.Core/Persistence/Mappers/UserMapper.cs
index 5e2947c3a7..68bf091fc5 100644
--- a/src/Umbraco.Core/Persistence/Mappers/UserMapper.cs
+++ b/src/Umbraco.Core/Persistence/Mappers/UserMapper.cs
@@ -33,7 +33,8 @@ namespace Umbraco.Core.Persistence.Mappers
CacheMap(src => src.Username, dto => dto.Login);
CacheMap(src => src.Password, dto => dto.Password);
CacheMap(src => src.Name, dto => dto.UserName);
- CacheMap(src => src.DefaultPermissions, dto => dto.DefaultPermissions);
+ //NOTE: This column in the db is *not* used!
+ //CacheMap(src => src.DefaultPermissions, dto => dto.DefaultPermissions);
CacheMap(src => src.StartMediaId, dto => dto.MediaStartId);
CacheMap(src => src.StartContentId, dto => dto.ContentStartId);
CacheMap(src => src.DefaultToLiveEditing, dto => dto.DefaultToLiveEditing);
diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
index a4351ef99f..da34715234 100644
--- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
@@ -251,7 +251,7 @@ namespace Umbraco.Core.Persistence.Repositories
var userPermissions = (
from perm in parentPermissions
from p in perm.AssignedPermissions
- select new KeyValuePair