diff options
| author | Bond-009 <bond.009@outlook.com> | 2019-03-12 16:37:18 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-12 16:37:18 +0100 |
| commit | 3ddbda9aca3be9bf24a1c0c1f0052e5d9e35b7d8 (patch) | |
| tree | cd92d645dea415bd148c344afccbdaa62316866f /Emby.Server.Implementations/Data/SqliteUserRepository.cs | |
| parent | ffd6dac03a94bb99387e84b447aa22ca92cf9465 (diff) | |
| parent | 1fef8bf266480dc41cdf7ab80d1deac54dedad3d (diff) | |
Merge branch 'master' into xml
Diffstat (limited to 'Emby.Server.Implementations/Data/SqliteUserRepository.cs')
| -rw-r--r-- | Emby.Server.Implementations/Data/SqliteUserRepository.cs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/Data/SqliteUserRepository.cs b/Emby.Server.Implementations/Data/SqliteUserRepository.cs index db359d7dd..182df0edc 100644 --- a/Emby.Server.Implementations/Data/SqliteUserRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteUserRepository.cs @@ -55,6 +55,8 @@ namespace Emby.Server.Implementations.Data { TryMigrateToLocalUsersTable(connection); } + + RemoveEmptyPasswordHashes(); } } @@ -73,6 +75,38 @@ namespace Emby.Server.Implementations.Data } } + private void RemoveEmptyPasswordHashes() + { + foreach (var user in RetrieveAllUsers()) + { + // If the user password is the sha1 hash of the empty string, remove it + if (!string.Equals(user.Password, "DA39A3EE5E6B4B0D3255BFEF95601890AFD80709", StringComparison.Ordinal) + || !string.Equals(user.Password, "$SHA1$DA39A3EE5E6B4B0D3255BFEF95601890AFD80709", StringComparison.Ordinal)) + { + continue; + } + + user.Password = null; + var serialized = _jsonSerializer.SerializeToBytes(user); + + using (WriteLock.Write()) + using (var connection = CreateConnection()) + { + connection.RunInTransaction(db => + { + using (var statement = db.PrepareStatement("update LocalUsersv2 set data=@data where Id=@InternalId")) + { + statement.TryBind("@InternalId", user.InternalId); + statement.TryBind("@data", serialized); + statement.MoveNext(); + } + + }, TransactionMode); + } + } + + } + /// <summary> /// Save a user in the repo /// </summary> |
