Luke Pulverenti vor 10 Jahren
Ursprung
Commit
c30036d9cf

+ 19 - 24
MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs

@@ -556,33 +556,28 @@ namespace MediaBrowser.MediaEncoding.Encoder
         {
             var codec = request.VideoCodec;
 
-            if (!string.IsNullOrEmpty(codec))
+            if (string.Equals(codec, "h264", StringComparison.OrdinalIgnoreCase))
             {
-                if (string.Equals(codec, "h264", StringComparison.OrdinalIgnoreCase))
-                {
-                    return "libx264";
-                }
-                if (string.Equals(codec, "h265", StringComparison.OrdinalIgnoreCase))
-                {
-                    return "libx265";
-                }
-                if (string.Equals(codec, "vpx", StringComparison.OrdinalIgnoreCase))
-                {
-                    return "libvpx";
-                }
-                if (string.Equals(codec, "wmv", StringComparison.OrdinalIgnoreCase))
-                {
-                    return "wmv2";
-                }
-                if (string.Equals(codec, "theora", StringComparison.OrdinalIgnoreCase))
-                {
-                    return "libtheora";
-                }
-
-                return codec.ToLower();
+                return "libx264";
+            }
+            if (string.Equals(codec, "h265", StringComparison.OrdinalIgnoreCase))
+            {
+                return "libx265";
+            }
+            if (string.Equals(codec, "vpx", StringComparison.OrdinalIgnoreCase))
+            {
+                return "libvpx";
+            }
+            if (string.Equals(codec, "wmv", StringComparison.OrdinalIgnoreCase))
+            {
+                return "wmv2";
+            }
+            if (string.Equals(codec, "theora", StringComparison.OrdinalIgnoreCase))
+            {
+                return "libtheora";
             }
 
-            return "copy";
+            return (codec ?? string.Empty).ToLower();
         }
 
         internal static bool CanStreamCopyVideo(EncodingJobOptions request, MediaStream videoStream)

+ 6 - 6
MediaBrowser.Model/LiveTv/ProgramInfoDto.cs

@@ -1,12 +1,12 @@
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Runtime.Serialization;
-using MediaBrowser.Model.Dto;
+using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Entities;
-using System;
-using System.Collections.Generic;
 using MediaBrowser.Model.Extensions;
 using MediaBrowser.Model.Library;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Runtime.Serialization;
 
 namespace MediaBrowser.Model.LiveTv
 {

+ 23 - 17
MediaBrowser.Server.Implementations/Library/UserManager.cs

@@ -160,10 +160,25 @@ namespace MediaBrowser.Server.Implementations.Library
         {
             Users = await LoadUsers().ConfigureAwait(false);
 
-            foreach (var user in Users.ToList())
+            var users = Users.ToList();
+
+            foreach (var user in users)
             {
                 await DoPolicyMigration(user).ConfigureAwait(false);
             }
+
+            // If there are no local users with admin rights, make them all admins
+            if (!users.Any(i => i.Policy.IsAdministrator))
+            {
+                foreach (var user in users)
+                {
+                    if (!user.ConnectLinkType.HasValue || user.ConnectLinkType.Value == UserLinkType.LinkedUser)
+                    {
+                        user.Policy.IsAdministrator = true;
+                        await UpdateUserPolicy(user, user.Policy, false).ConfigureAwait(false);
+                    }
+                }
+            }
         }
 
         public Task<bool> AuthenticateUser(string username, string passwordSha1, string remoteEndPoint)
@@ -331,7 +346,7 @@ namespace MediaBrowser.Server.Implementations.Library
                 user.Policy.IsHidden = user.Configuration.IsHidden;
                 user.Policy.MaxParentalRating = user.Configuration.MaxParentalRating;
 
-                await UpdateUserPolicy(user.Id.ToString("N"), user.Policy);
+                await UpdateUserPolicy(user, user.Policy, false);
 
                 user.Configuration.HasMigratedToPolicy = true;
                 await UpdateConfiguration(user, user.Configuration, true).ConfigureAwait(false);
@@ -867,12 +882,6 @@ namespace MediaBrowser.Server.Implementations.Library
                 userPolicy = _jsonSerializer.DeserializeFromString<UserPolicy>(json);
             }
             
-            var updateConfig = user.Policy.IsAdministrator != userPolicy.IsAdministrator ||
-                user.Policy.EnableLiveTvManagement != userPolicy.EnableLiveTvManagement ||
-                user.Policy.EnableLiveTvAccess != userPolicy.EnableLiveTvAccess ||
-                user.Policy.EnableMediaPlayback != userPolicy.EnableMediaPlayback ||
-                user.Policy.EnableContentDeletion != userPolicy.EnableContentDeletion;
-            
             var path = GetPolifyFilePath(user);
 
             Directory.CreateDirectory(Path.GetDirectoryName(path));
@@ -883,16 +892,13 @@ namespace MediaBrowser.Server.Implementations.Library
                 user.Policy = userPolicy;
             }
 
-            if (updateConfig)
-            {
-                user.Configuration.IsAdministrator = user.Policy.IsAdministrator;
-                user.Configuration.EnableLiveTvManagement = user.Policy.EnableLiveTvManagement;
-                user.Configuration.EnableLiveTvAccess = user.Policy.EnableLiveTvAccess;
-                user.Configuration.EnableMediaPlayback = user.Policy.EnableMediaPlayback;
-                user.Configuration.EnableContentDeletion = user.Policy.EnableContentDeletion;
+            user.Configuration.IsAdministrator = user.Policy.IsAdministrator;
+            user.Configuration.EnableLiveTvManagement = user.Policy.EnableLiveTvManagement;
+            user.Configuration.EnableLiveTvAccess = user.Policy.EnableLiveTvAccess;
+            user.Configuration.EnableMediaPlayback = user.Policy.EnableMediaPlayback;
+            user.Configuration.EnableContentDeletion = user.Policy.EnableContentDeletion;
 
-                await UpdateConfiguration(user, user.Configuration, true).ConfigureAwait(false);
-            }
+            await UpdateConfiguration(user, user.Configuration, true).ConfigureAwait(false);
         }
 
         private void DeleteUserPolicy(User user)

+ 4 - 4
MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs

@@ -29,7 +29,7 @@ namespace MediaBrowser.Server.Implementations.Sync
         private readonly ILogger _logger;
         private readonly IUserManager _userManager;
         private readonly ITVSeriesManager _tvSeriesManager;
-        private readonly IMediaEncoder MediaEncoder;
+        private readonly IMediaEncoder _mediaEncoder;
 
         public SyncJobProcessor(ILibraryManager libraryManager, ISyncRepository syncRepo, ISyncManager syncManager, ILogger logger, IUserManager userManager, ITVSeriesManager tvSeriesManager, IMediaEncoder mediaEncoder)
         {
@@ -39,7 +39,7 @@ namespace MediaBrowser.Server.Implementations.Sync
             _logger = logger;
             _userManager = userManager;
             _tvSeriesManager = tvSeriesManager;
-            MediaEncoder = mediaEncoder;
+            _mediaEncoder = mediaEncoder;
         }
 
         public async Task EnsureJobItems(SyncJob job)
@@ -412,7 +412,7 @@ namespace MediaBrowser.Server.Implementations.Sync
                 jobItem.Status = SyncJobItemStatus.Converting;
                 await _syncRepo.Update(jobItem).ConfigureAwait(false);
 
-                jobItem.OutputPath = await MediaEncoder.EncodeVideo(new EncodingJobOptions(streamInfo, profile), new Progress<double>(), cancellationToken);
+                jobItem.OutputPath = await _mediaEncoder.EncodeVideo(new EncodingJobOptions(streamInfo, profile), new Progress<double>(), cancellationToken);
             }
             else
             {
@@ -456,7 +456,7 @@ namespace MediaBrowser.Server.Implementations.Sync
                 jobItem.Status = SyncJobItemStatus.Converting;
                 await _syncRepo.Update(jobItem).ConfigureAwait(false);
                 
-                jobItem.OutputPath = await MediaEncoder.EncodeAudio(new EncodingJobOptions(streamInfo, profile), new Progress<double>(), cancellationToken);
+                jobItem.OutputPath = await _mediaEncoder.EncodeAudio(new EncodingJobOptions(streamInfo, profile), new Progress<double>(), cancellationToken);
             }
             else
             {

+ 1 - 1
SharedVersion.cs

@@ -1,4 +1,4 @@
 using System.Reflection;
 
 //[assembly: AssemblyVersion("3.0.*")]
-[assembly: AssemblyVersion("3.0.5482.0")]
+[assembly: AssemblyVersion("3.0.5482.1")]