// Copyright (c) Umbraco. // See LICENSE for more details. using System.ComponentModel; namespace Umbraco.Cms.Core.Configuration.Models; /// /// Typed configuration options for content settings. /// [UmbracoOptions(Constants.Configuration.ConfigContent)] public class ContentSettings { internal const bool StaticResolveUrlsFromTextString = false; internal const string StaticDefaultPreviewBadge = @" "; internal const string StaticDisallowedUploadFiles = "ashx,aspx,ascx,config,cshtml,vbhtml,asmx,air,axd,xamlx"; internal const bool StaticShowDeprecatedPropertyEditors = false; internal const string StaticLoginBackgroundImage = "assets/login.jpg"; internal const string StaticLoginLogoImage = "assets/logo_light.svg"; internal const string StaticLoginLogoImageAlternative = "assets/logo_dark.svg"; internal const string StaticBackOfficeLogo = "assets/logo.svg"; internal const bool StaticHideBackOfficeLogo = false; internal const bool StaticDisableDeleteWhenReferenced = false; internal const bool StaticDisableUnpublishWhenReferenced = false; internal const bool StaticAllowEditInvariantFromNonDefault = false; internal const bool StaticShowDomainWarnings = true; internal const bool StaticShowUnroutableContentWarnings = true; /// /// Gets or sets a value for the content notification settings. /// public ContentNotificationSettings Notifications { get; set; } = new(); /// /// Gets or sets a value for the content imaging settings. /// public ContentImagingSettings Imaging { get; set; } = new(); /// /// Gets or sets a value indicating whether URLs should be resolved from text strings. /// [DefaultValue(StaticResolveUrlsFromTextString)] public bool ResolveUrlsFromTextString { get; set; } = StaticResolveUrlsFromTextString; /// /// Gets or sets a value for the collection of error pages. /// public ContentErrorPage[] Error404Collection { get; set; } = Array.Empty(); /// /// Gets or sets a value for the preview badge mark-up. /// [DefaultValue(StaticDefaultPreviewBadge)] public string PreviewBadge { get; set; } = StaticDefaultPreviewBadge; /// /// Gets or sets a value indicating whether deprecated property editors should be shown. /// [DefaultValue(StaticShowDeprecatedPropertyEditors)] public bool ShowDeprecatedPropertyEditors { get; set; } = StaticShowDeprecatedPropertyEditors; /// /// Gets or sets a value for the path to the login screen background image. /// [DefaultValue(StaticLoginBackgroundImage)] public string LoginBackgroundImage { get; set; } = StaticLoginBackgroundImage; /// /// Gets or sets a value for the path to the login screen logo image /// shown on top of the background image set in . /// /// The alternative version of this logo can be found at . [DefaultValue(StaticLoginLogoImage)] public string LoginLogoImage { get; set; } = StaticLoginLogoImage; /// /// Gets or sets a value for the path to the login screen logo image when shown on top /// of a light background (e.g. in mobile resolutions). /// /// This is the alternative version to the regular logo found at . [DefaultValue(StaticLoginLogoImageAlternative)] public string LoginLogoImageAlternative { get; set; } = StaticLoginLogoImageAlternative; /// /// Gets or sets a value for the path to the backoffice logo. /// [DefaultValue(StaticBackOfficeLogo)] public string BackOfficeLogo { get; set; } = StaticBackOfficeLogo; /// /// Gets or sets a value indicating whether to hide the backoffice umbraco logo or not. /// [DefaultValue(StaticHideBackOfficeLogo)] [Obsolete("This setting is no longer used and will be removed in future versions. An alternative BackOffice logo can be set using the BackOfficeLogo setting.")] public bool HideBackOfficeLogo { get; set; } = StaticHideBackOfficeLogo; /// /// Gets or sets a value indicating whether to disable the deletion of items referenced by other items. /// [DefaultValue(StaticDisableDeleteWhenReferenced)] public bool DisableDeleteWhenReferenced { get; set; } = StaticDisableDeleteWhenReferenced; /// /// Gets or sets a value indicating whether to disable the unpublishing of items referenced by other items. /// [DefaultValue(StaticDisableUnpublishWhenReferenced)] public bool DisableUnpublishWhenReferenced { get; set; } = StaticDisableUnpublishWhenReferenced; /// /// Gets or sets the model representing the global content version cleanup policy /// public ContentVersionCleanupPolicySettings ContentVersionCleanupPolicy { get; set; } = new(); /// /// Gets or sets a value indicating whether to allow editing invariant properties from a non-default language variation. /// [DefaultValue(StaticAllowEditInvariantFromNonDefault)] public bool AllowEditInvariantFromNonDefault { get; set; } = StaticAllowEditInvariantFromNonDefault; /// /// Gets or sets a value for the collection of file extensions that are allowed for upload. /// public string[] AllowedUploadedFileExtensions { get; set; } = Array.Empty(); /// /// Gets or sets a value for the collection of file extensions that are disallowed for upload. /// [DefaultValue(StaticDisallowedUploadFiles)] public string[] DisallowedUploadedFileExtensions { get; set; } = StaticDisallowedUploadFiles.Split(','); /// /// Gets or sets the allowed external host for media. If empty only relative paths are allowed. /// public string[] AllowedMediaHosts { get; set; } = Array.Empty(); /// /// Gets or sets a value indicating whether to show domain warnings. /// [DefaultValue(StaticShowDomainWarnings)] public bool ShowDomainWarnings { get; set; } = StaticShowDomainWarnings; /// /// Gets or sets a value indicating whether to show unroutable content warnings. /// [DefaultValue(StaticShowUnroutableContentWarnings)] public bool ShowUnroutableContentWarnings { get; set; } = StaticShowUnroutableContentWarnings; }