aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Users/UserPolicy.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model/Users/UserPolicy.cs')
-rw-r--r--MediaBrowser.Model/Users/UserPolicy.cs135
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; }
}
}