using System.Runtime.Serialization; namespace Umbraco.Cms.Core.Models.ContentEditing; /// /// The user group permissions assigned to a content node /// /// /// The underlying data such as Name, etc... is that of the User Group /// [DataContract(Name = "userGroupPermissions", Namespace = "")] public class AssignedUserGroupPermissions : EntityBasic { /// /// The assigned permissions for the user group organized by permission group name /// [DataMember(Name = "permissions")] public IDictionary>? AssignedPermissions { get; set; } /// /// The default permissions for the user group organized by permission group name /// [DataMember(Name = "defaultPermissions")] public IDictionary>? DefaultPermissions { get; set; } public static IDictionary> ClonePermissions( IDictionary>? permissions) { var result = new Dictionary>(); if (permissions is not null) { foreach (KeyValuePair> permission in permissions) { result[permission.Key] = new List(permission.Value.Select(x => (Permission)x.Clone())); } } return result; } }