diff --git a/src/Umbraco.Core/Models/Membership/IReadOnlyUserGroup.cs b/src/Umbraco.Core/Models/Membership/IReadOnlyUserGroup.cs index 57251146bf..ac43520335 100644 --- a/src/Umbraco.Core/Models/Membership/IReadOnlyUserGroup.cs +++ b/src/Umbraco.Core/Models/Membership/IReadOnlyUserGroup.cs @@ -31,5 +31,5 @@ public interface IReadOnlyUserGroup IEnumerable AllowedSections { get; } - IEnumerable AllowedLanguages { get; } + IEnumerable AllowedLanguages { get; } } diff --git a/src/Umbraco.Core/Models/Membership/ReadOnlyUserGroup.cs b/src/Umbraco.Core/Models/Membership/ReadOnlyUserGroup.cs index 8f18112c43..a156f674d8 100644 --- a/src/Umbraco.Core/Models/Membership/ReadOnlyUserGroup.cs +++ b/src/Umbraco.Core/Models/Membership/ReadOnlyUserGroup.cs @@ -2,22 +2,22 @@ namespace Umbraco.Cms.Core.Models.Membership; public class ReadOnlyUserGroup : IReadOnlyUserGroup, IEquatable { - public ReadOnlyUserGroup( - int id, - string? name, - string? icon, - int? startContentId, - int? startMediaId, - string? alias, - IEnumerable allowedLanguages, - IEnumerable allowedSections, - IEnumerable? permissions) + public ReadOnlyUserGroup( + int id, + string? name, + string? icon, + int? startContentId, + int? startMediaId, + string? alias, + IEnumerable allowedLanguages, + IEnumerable allowedSections, + IEnumerable? permissions) { Name = name ?? string.Empty; Icon = icon; Id = id; Alias = alias ?? string.Empty; - AllowedLanguages = allowedLanguages.ToArray(); + AllowedLanguages = allowedLanguages.ToArray(); AllowedSections = allowedSections.ToArray(); Permissions = permissions?.ToArray(); @@ -61,6 +61,7 @@ public class ReadOnlyUserGroup : IReadOnlyUserGroup, IEquatable public IEnumerable? Permissions { get; set; } + public IEnumerable AllowedLanguages { get; private set; } public IEnumerable AllowedSections { get; private set; } diff --git a/src/Umbraco.Core/Models/Membership/UserGroup.cs b/src/Umbraco.Core/Models/Membership/UserGroup.cs index c470629a01..c3ec2a4130 100644 --- a/src/Umbraco.Core/Models/Membership/UserGroup.cs +++ b/src/Umbraco.Core/Models/Membership/UserGroup.cs @@ -13,7 +13,7 @@ namespace Umbraco.Cms.Core.Models.Membership; public class UserGroup : EntityBase, IUserGroup, IReadOnlyUserGroup { // Custom comparer for enumerable - private static readonly DelegateEqualityComparer> StringEnumerableComparer = + private static readonly DelegateEqualityComparer> _stringEnumerableComparer = new( (enum1, enum2) => enum1.UnsortedSequenceEqual(enum2), enum1 => enum1.GetHashCode()); @@ -37,7 +37,7 @@ public class UserGroup : EntityBase, IUserGroup, IReadOnlyUserGroup _name = string.Empty; _shortStringHelper = shortStringHelper; _sectionCollection = new List(); - _languageCollection = new List(); + _languageCollection = new List(); } /// @@ -49,7 +49,13 @@ public class UserGroup : EntityBase, IUserGroup, IReadOnlyUserGroup /// /// /// - public UserGroup(IShortStringHelper shortStringHelper, int userCount, string? alias, string? name, IEnumerable permissions, string? icon) + public UserGroup( + IShortStringHelper shortStringHelper, + int userCount, + string? alias, + string? name, + IEnumerable permissions, + string? icon) : this(shortStringHelper) { UserCount = userCount; @@ -85,7 +91,8 @@ public class UserGroup : EntityBase, IUserGroup, IReadOnlyUserGroup { get => _alias; set => SetPropertyValueAndDetectChanges( - value.ToCleanString(_shortStringHelper, CleanStringType.Alias | CleanStringType.UmbracoCase), ref _alias!, nameof(Alias)); + value.ToCleanString(_shortStringHelper, CleanStringType.Alias | CleanStringType.UmbracoCase), ref _alias!, + nameof(Alias)); } [DataMember] @@ -106,7 +113,7 @@ public class UserGroup : EntityBase, IUserGroup, IReadOnlyUserGroup public IEnumerable? Permissions { get => _permissions; - set => SetPropertyValueAndDetectChanges(value, ref _permissions, nameof(Permissions), StringEnumerableComparer); + set => SetPropertyValueAndDetectChanges(value, ref _permissions, nameof(Permissions), _stringEnumerableComparer); } public IEnumerable AllowedSections => _sectionCollection; @@ -130,28 +137,29 @@ public class UserGroup : EntityBase, IUserGroup, IReadOnlyUserGroup } public IEnumerable AllowedLanguages - { - get => _languageCollection; - } + { + get => _languageCollection; + } - public void RemoveAllowedLanguage(int languageId) + public void RemoveAllowedLanguage(int languageId) + { + if (_languageCollection.Contains(languageId)) { - if (_languageCollection.Contains(languageId)) - _languageCollection.Remove(languageId); + _languageCollection.Remove(languageId); } + } - public void AddAllowedLanguage(int languageId) + public void AddAllowedLanguage(int languageId) + { + if (_languageCollection.Contains(languageId) == false) { - if (_languageCollection.Contains(languageId) == false) - _languageCollection.Add(languageId); + _languageCollection.Add(languageId); } + } - public void ClearAllowedLanguages() - { - _languageCollection.Clear(); - } + public void ClearAllowedLanguages() => _languageCollection.Clear(); - public void ClearAllowedSections() => _sectionCollection.Clear(); + public void ClearAllowedSections() => _sectionCollection.Clear(); protected override void PerformDeepClone(object clone) { diff --git a/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs b/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs index 851b65ef1c..3c23cc607f 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs @@ -757,7 +757,6 @@ public class ContentController : ContentControllerBase return pagedResult; } - /// /// Creates a blueprint from a content item ///