Merge pull request #1127 from LogicalPhallacy/lockoutfix

Add configurable user lockout
pull/1136/head
Joshua M. Boniface 6 years ago committed by GitHub
commit fc79659549
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -448,11 +448,19 @@ namespace Emby.Server.Implementations.Library
user.Policy.InvalidLoginAttemptCount = newValue; user.Policy.InvalidLoginAttemptCount = newValue;
var maxCount = user.Policy.IsAdministrator ? 3 : 5; // Check for users without a value here and then fill in the default value
// also protect from an always lockout if misconfigured
if (user.Policy.LoginAttemptsBeforeLockout == null || user.Policy.LoginAttemptsBeforeLockout == 0)
{
user.Policy.LoginAttemptsBeforeLockout = user.Policy.IsAdministrator ? 5 : 3;
}
var maxCount = user.Policy.LoginAttemptsBeforeLockout;
var fireLockout = false; var fireLockout = false;
if (newValue >= maxCount) // -1 can be used to specify no lockout value
if (maxCount != -1 && newValue >= maxCount)
{ {
_logger.LogDebug("Disabling user {0} due to {1} unsuccessful login attempts.", user.Name, newValue); _logger.LogDebug("Disabling user {0} due to {1} unsuccessful login attempts.", user.Name, newValue);
user.Policy.IsDisabled = true; user.Policy.IsDisabled = true;

@ -66,6 +66,7 @@ namespace MediaBrowser.Model.Users
public bool EnableAllFolders { get; set; } public bool EnableAllFolders { get; set; }
public int InvalidLoginAttemptCount { get; set; } public int InvalidLoginAttemptCount { get; set; }
public int? LoginAttemptsBeforeLockout { get; set; }
public bool EnablePublicSharing { get; set; } public bool EnablePublicSharing { get; set; }
@ -104,6 +105,8 @@ namespace MediaBrowser.Model.Users
AccessSchedules = Array.Empty<AccessSchedule>(); AccessSchedules = Array.Empty<AccessSchedule>();
LoginAttemptsBeforeLockout = -1;
EnableAllChannels = true; EnableAllChannels = true;
EnabledChannels = Array.Empty<string>(); EnabledChannels = Array.Empty<string>();

Loading…
Cancel
Save