Merge remote-tracking branch 'origin/v10/dev' into v10/feature/variant-permissions
# Conflicts: # src/Umbraco.Core/Configuration/Models/SecuritySettings.cs # src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs # src/Umbraco.Core/Models/ContentEditing/ContentVariationDisplay.cs # src/Umbraco.Core/Models/ContentEditing/UserGroupBasic.cs # src/Umbraco.Core/Models/ContentEditing/UserGroupSave.cs # src/Umbraco.Core/Models/ContentRepositoryExtensions.cs # src/Umbraco.Core/Models/CultureImpact.cs # src/Umbraco.Core/Models/Mapping/ContentVariantMapper.cs # src/Umbraco.Core/Models/Mapping/UserMapDefinition.cs # src/Umbraco.Core/Models/Membership/IReadOnlyUserGroup.cs # src/Umbraco.Core/Models/Membership/IUserGroup.cs # src/Umbraco.Core/Models/Membership/ReadOnlyUserGroup.cs # src/Umbraco.Core/Models/Membership/UserGroup.cs # src/Umbraco.Core/Models/Membership/UserGroupExtensions.cs # src/Umbraco.Core/Persistence/Constants-DatabaseSchema.cs # src/Umbraco.Core/Services/ContentService.cs # src/Umbraco.Infrastructure/Migrations/Install/DatabaseSchemaCreator.cs # src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs # src/Umbraco.Infrastructure/Persistence/Dtos/UserGroupDto.cs # src/Umbraco.Infrastructure/Persistence/Factories/UserFactory.cs # src/Umbraco.Infrastructure/Persistence/Factories/UserGroupFactory.cs # src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserGroupRepository.cs # src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserRepository.cs # src/Umbraco.Web.BackOffice/Controllers/BackOfficeServerVariables.cs # src/Umbraco.Web.BackOffice/Controllers/ContentController.cs # src/Umbraco.Web.BackOffice/Filters/ContentSaveValidationAttribute.cs # src/Umbraco.Web.BackOffice/Mapping/ContentMapDefinition.cs # src/Umbraco.Web.UI.Client/src/common/services/editor.service.js
This commit is contained in:
@@ -1,55 +1,53 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using Umbraco.Cms.Core.Models.Membership;
|
||||
using Umbraco.Extensions;
|
||||
|
||||
namespace Umbraco.Cms.Core.Models.ContentEditing
|
||||
namespace Umbraco.Cms.Core.Models.ContentEditing;
|
||||
|
||||
[DataContract(Name = "userGroup", Namespace = "")]
|
||||
public class UserGroupSave : EntityBasic, IValidatableObject
|
||||
{
|
||||
[DataContract(Name = "userGroup", Namespace = "")]
|
||||
public class UserGroupSave : EntityBasic, IValidatableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// The action to perform when saving this user group
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// If either of the Publish actions are specified an exception will be thrown.
|
||||
/// </remarks>
|
||||
[DataMember(Name = "action", IsRequired = true)]
|
||||
[Required]
|
||||
public ContentSaveAction Action { get; set; }
|
||||
/// <summary>
|
||||
/// The action to perform when saving this user group
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// If either of the Publish actions are specified an exception will be thrown.
|
||||
/// </remarks>
|
||||
[DataMember(Name = "action", IsRequired = true)]
|
||||
[Required]
|
||||
public ContentSaveAction Action { get; set; }
|
||||
|
||||
[DataMember(Name = "alias", IsRequired = true)]
|
||||
[Required]
|
||||
public override string Alias { get; set; } = string.Empty;
|
||||
[DataMember(Name = "alias", IsRequired = true)]
|
||||
[Required]
|
||||
public override string Alias { get; set; } = string.Empty;
|
||||
|
||||
[DataMember(Name = "sections")]
|
||||
public IEnumerable<string>? Sections { get; set; }
|
||||
[DataMember(Name = "sections")]
|
||||
public IEnumerable<string>? Sections { get; set; }
|
||||
|
||||
[DataMember(Name = "users")]
|
||||
public IEnumerable<int>? Users { get; set; }
|
||||
[DataMember(Name = "users")]
|
||||
public IEnumerable<int>? Users { get; set; }
|
||||
|
||||
[DataMember(Name = "startContentId")]
|
||||
public int? StartContentId { get; set; }
|
||||
[DataMember(Name = "startContentId")]
|
||||
public int? StartContentId { get; set; }
|
||||
|
||||
[DataMember(Name = "startMediaId")]
|
||||
public int? StartMediaId { get; set; }
|
||||
[DataMember(Name = "startMediaId")]
|
||||
public int? StartMediaId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The list of letters (permission codes) to assign as the default for the user group
|
||||
/// </summary>
|
||||
[DataMember(Name = "defaultPermissions")]
|
||||
public IEnumerable<string>? DefaultPermissions { get; set; }
|
||||
/// <summary>
|
||||
/// The list of letters (permission codes) to assign as the default for the user group
|
||||
/// </summary>
|
||||
[DataMember(Name = "defaultPermissions")]
|
||||
public IEnumerable<string>? DefaultPermissions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The assigned permissions for content
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The key is the content id and the list is the list of letters (permission codes) to assign
|
||||
/// </remarks>
|
||||
[DataMember(Name = "assignedPermissions")]
|
||||
public IDictionary<int, IEnumerable<string>>? AssignedPermissions { get; set; }
|
||||
/// <summary>
|
||||
/// The assigned permissions for content
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The key is the content id and the list is the list of letters (permission codes) to assign
|
||||
/// </remarks>
|
||||
[DataMember(Name = "assignedPermissions")]
|
||||
public IDictionary<int, IEnumerable<string>>? AssignedPermissions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The ids of allowed languages
|
||||
@@ -57,27 +55,30 @@ namespace Umbraco.Cms.Core.Models.ContentEditing
|
||||
[DataMember(Name = "allowedLanguages")]
|
||||
public IEnumerable<int>? AllowedLanguages { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The real persisted user group
|
||||
/// </summary>
|
||||
[IgnoreDataMember]
|
||||
public IUserGroup? PersistedUserGroup { get; set; }
|
||||
/// <summary>
|
||||
/// The real persisted user group
|
||||
/// </summary>
|
||||
[IgnoreDataMember]
|
||||
public IUserGroup? PersistedUserGroup { get; set; }
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
if (DefaultPermissions?.Any(x => x.IsNullOrWhiteSpace()) ?? false)
|
||||
{
|
||||
if (DefaultPermissions?.Any(x => x.IsNullOrWhiteSpace()) ?? false)
|
||||
{
|
||||
yield return new ValidationResult("A permission value cannot be null or empty", new[] { "Permissions" });
|
||||
}
|
||||
yield return new ValidationResult("A permission value cannot be null or empty", new[] { "Permissions" });
|
||||
}
|
||||
|
||||
if (AssignedPermissions is not null)
|
||||
if (AssignedPermissions is not null)
|
||||
{
|
||||
foreach (KeyValuePair<int, IEnumerable<string>> assignedPermission in AssignedPermissions)
|
||||
{
|
||||
foreach (var assignedPermission in AssignedPermissions)
|
||||
foreach (var permission in assignedPermission.Value)
|
||||
{
|
||||
foreach (var permission in assignedPermission.Value)
|
||||
if (permission.IsNullOrWhiteSpace())
|
||||
{
|
||||
if (permission.IsNullOrWhiteSpace())
|
||||
yield return new ValidationResult("A permission value cannot be null or empty", new[] { "AssignedPermissions" });
|
||||
yield return new ValidationResult(
|
||||
"A permission value cannot be null or empty",
|
||||
new[] { "AssignedPermissions" });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user