diff options
Diffstat (limited to 'MediaBrowser.Model/Users/UserPolicy.cs')
| -rw-r--r-- | MediaBrowser.Model/Users/UserPolicy.cs | 135 |
1 files changed, 90 insertions, 45 deletions
diff --git a/MediaBrowser.Model/Users/UserPolicy.cs b/MediaBrowser.Model/Users/UserPolicy.cs index 23805b79f..3634d0705 100644 --- a/MediaBrowser.Model/Users/UserPolicy.cs +++ b/MediaBrowser.Model/Users/UserPolicy.cs @@ -1,10 +1,65 @@ +#nullable disable +#pragma warning disable CS1591, CA1819 + using System; -using MediaBrowser.Model.Configuration; +using System.Xml.Serialization; +using Jellyfin.Data.Enums; +using AccessSchedule = Jellyfin.Data.Entities.AccessSchedule; namespace MediaBrowser.Model.Users { public class UserPolicy { + public UserPolicy() + { + IsHidden = true; + + EnableContentDeletion = false; + EnableContentDeletionFromFolders = Array.Empty<string>(); + + EnableSyncTranscoding = true; + EnableMediaConversion = true; + + EnableMediaPlayback = true; + EnableAudioPlaybackTranscoding = true; + EnableVideoPlaybackTranscoding = true; + EnablePlaybackRemuxing = true; + ForceRemoteSourceTranscoding = false; + EnableLiveTvManagement = true; + EnableLiveTvAccess = true; + + // Without this on by default, admins won't be able to do this + // Improve in the future + EnableLiveTvManagement = true; + + EnableSharedDeviceControl = true; + + BlockedTags = Array.Empty<string>(); + BlockUnratedItems = Array.Empty<UnratedItem>(); + + EnableUserPreferenceAccess = true; + + AccessSchedules = Array.Empty<AccessSchedule>(); + + LoginAttemptsBeforeLockout = -1; + + MaxActiveSessions = 0; + + EnableAllChannels = true; + EnabledChannels = Array.Empty<Guid>(); + + EnableAllFolders = true; + EnabledFolders = Array.Empty<Guid>(); + + EnabledDevices = Array.Empty<string>(); + EnableAllDevices = true; + + EnableContentDownloading = true; + EnablePublicSharing = true; + EnableRemoteAccess = true; + SyncPlayAccess = SyncPlayUserAccessType.CreateAndJoinGroups; + } + /// <summary> /// Gets or sets a value indicating whether this instance is administrator. /// </summary> @@ -30,23 +85,37 @@ namespace MediaBrowser.Model.Users public int? MaxParentalRating { get; set; } public string[] BlockedTags { get; set; } + public bool EnableUserPreferenceAccess { get; set; } + public AccessSchedule[] AccessSchedules { get; set; } + public UnratedItem[] BlockUnratedItems { get; set; } + public bool EnableRemoteControlOfOtherUsers { get; set; } + public bool EnableSharedDeviceControl { get; set; } + public bool EnableRemoteAccess { get; set; } public bool EnableLiveTvManagement { get; set; } + public bool EnableLiveTvAccess { get; set; } public bool EnableMediaPlayback { get; set; } + public bool EnableAudioPlaybackTranscoding { get; set; } + public bool EnableVideoPlaybackTranscoding { get; set; } + public bool EnablePlaybackRemuxing { get; set; } + public bool ForceRemoteSourceTranscoding { get; set; } + public bool EnableContentDeletion { get; set; } + public string[] EnableContentDeletionFromFolders { get; set; } + public bool EnableContentDownloading { get; set; } /// <summary> @@ -54,68 +123,44 @@ namespace MediaBrowser.Model.Users /// </summary> /// <value><c>true</c> if [enable synchronize]; otherwise, <c>false</c>.</value> public bool EnableSyncTranscoding { get; set; } + public bool EnableMediaConversion { get; set; } public string[] EnabledDevices { get; set; } + public bool EnableAllDevices { get; set; } - public string[] EnabledChannels { get; set; } + public Guid[] EnabledChannels { get; set; } + public bool EnableAllChannels { get; set; } - public string[] EnabledFolders { get; set; } + public Guid[] EnabledFolders { get; set; } + public bool EnableAllFolders { get; set; } public int InvalidLoginAttemptCount { get; set; } - public bool EnablePublicSharing { get; set; } - - public string[] BlockedMediaFolders { get; set; } - public string[] BlockedChannels { get; set; } - - public int RemoteClientBitrateLimit { get; set; } - public string AuthenticationProviderId { get; set; } - - public UserPolicy() - { - EnableContentDeletion = true; - EnableContentDeletionFromFolders = Array.Empty<string>(); + public int LoginAttemptsBeforeLockout { get; set; } - EnableSyncTranscoding = true; - EnableMediaConversion = true; + public int MaxActiveSessions { get; set; } - EnableMediaPlayback = true; - EnableAudioPlaybackTranscoding = true; - EnableVideoPlaybackTranscoding = true; - EnablePlaybackRemuxing = true; - - EnableLiveTvManagement = true; - EnableLiveTvAccess = true; - - // Without this on by default, admins won't be able to do this - // Improve in the future - EnableLiveTvManagement = true; - - EnableSharedDeviceControl = true; - - BlockedTags = Array.Empty<string>(); - BlockUnratedItems = Array.Empty<UnratedItem>(); + public bool EnablePublicSharing { get; set; } - EnableUserPreferenceAccess = true; + public Guid[] BlockedMediaFolders { get; set; } - AccessSchedules = Array.Empty<AccessSchedule>(); + public Guid[] BlockedChannels { get; set; } - EnableAllChannels = true; - EnabledChannels = Array.Empty<string>(); + public int RemoteClientBitrateLimit { get; set; } - EnableAllFolders = true; - EnabledFolders = Array.Empty<string>(); + [XmlElement(ElementName = "AuthenticationProviderId")] + public string AuthenticationProviderId { get; set; } - EnabledDevices = Array.Empty<string>(); - EnableAllDevices = true; + public string PasswordResetProviderId { get; set; } - EnableContentDownloading = true; - EnablePublicSharing = true; - EnableRemoteAccess = true; - } + /// <summary> + /// Gets or sets a value indicating what SyncPlay features the user can access. + /// </summary> + /// <value>Access level to SyncPlay features.</value> + public SyncPlayUserAccessType SyncPlayAccess { get; set; } } } |
