瀏覽代碼

Fix duplicate permissions

Patrick Barron 4 年之前
父節點
當前提交
12b8e29aef
共有 2 個文件被更改,包括 21 次插入15 次删除
  1. 18 15
      Jellyfin.Data/Entities/User.cs
  2. 3 0
      Jellyfin.Server.Implementations/Users/UserManager.cs

+ 18 - 15
Jellyfin.Data/Entities/User.cs

@@ -73,9 +73,6 @@ namespace Jellyfin.Data.Entities
             PlayDefaultAudioTrack = true;
             SubtitleMode = SubtitlePlaybackMode.Default;
             SyncPlayAccess = SyncPlayUserAccessType.CreateAndJoinGroups;
-
-            AddDefaultPermissions();
-            AddDefaultPreferences();
         }
 
         /// <summary>
@@ -483,18 +480,11 @@ namespace Jellyfin.Data.Entities
             return Array.IndexOf(GetPreferenceValues<Guid>(PreferenceKind.GroupedFolders), id) != -1;
         }
 
-        private static bool IsParentalScheduleAllowed(AccessSchedule schedule, DateTime date)
-        {
-            var localTime = date.ToLocalTime();
-            var hour = localTime.TimeOfDay.TotalHours;
-
-            return DayOfWeekHelper.GetDaysOfWeek(schedule.DayOfWeek).Contains(localTime.DayOfWeek)
-                   && hour >= schedule.StartHour
-                   && hour <= schedule.EndHour;
-        }
-
+        /// <summary>
+        /// Initializes the default permissions for a user. Should only be called on user creation.
+        /// </summary>
         // TODO: make these user configurable?
-        private void AddDefaultPermissions()
+        public void AddDefaultPermissions()
         {
             Permissions.Add(new Permission(PermissionKind.IsAdministrator, false));
             Permissions.Add(new Permission(PermissionKind.IsDisabled, false));
@@ -519,12 +509,25 @@ namespace Jellyfin.Data.Entities
             Permissions.Add(new Permission(PermissionKind.EnableRemoteControlOfOtherUsers, false));
         }
 
-        private void AddDefaultPreferences()
+        /// <summary>
+        /// Initializes the default preferences. Should only be called on user creation.
+        /// </summary>
+        public void AddDefaultPreferences()
         {
             foreach (var val in Enum.GetValues(typeof(PreferenceKind)).Cast<PreferenceKind>())
             {
                 Preferences.Add(new Preference(val, string.Empty));
             }
         }
+
+        private static bool IsParentalScheduleAllowed(AccessSchedule schedule, DateTime date)
+        {
+            var localTime = date.ToLocalTime();
+            var hour = localTime.TimeOfDay.TotalHours;
+
+            return DayOfWeekHelper.GetDaysOfWeek(schedule.DayOfWeek).Contains(localTime.DayOfWeek)
+                   && hour >= schedule.StartHour
+                   && hour <= schedule.EndHour;
+        }
     }
 }

+ 3 - 0
Jellyfin.Server.Implementations/Users/UserManager.cs

@@ -190,6 +190,9 @@ namespace Jellyfin.Server.Implementations.Users
                 InternalId = max + 1
             };
 
+            user.AddDefaultPermissions();
+            user.AddDefaultPreferences();
+
             _users.Add(user.Id, user);
 
             return user;