From ddb926889476f95d614b9592a0f57e6a77457229 Mon Sep 17 00:00:00 2001 From: Koen Zomers Date: Thu, 26 Sep 2019 14:05:15 +0200 Subject: [PATCH] Version 2.0.9.0 --- KeeOneDriveSync.plgx | Bin 3233275 -> 3221219 bytes .../Configuration.cs | 13 ++++++++++++- .../KeePassDatabase.cs | 5 ++++- .../Properties/AssemblyInfo.cs | 2 +- README.md | 4 ++++ 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/KeeOneDriveSync.plgx b/KeeOneDriveSync.plgx index 4925c2f4f3b3ca2e445bcfe8427672e63554cf38..1b3ec236f20fad6ef2cd67935ac6237b0d9524a9 100644 GIT binary patch delta 7827 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 delta 19880 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 diff --git a/KoenZomers.KeePass.OneDriveSync/Configuration.cs b/KoenZomers.KeePass.OneDriveSync/Configuration.cs index 14d27f2..c483d43 100644 --- a/KoenZomers.KeePass.OneDriveSync/Configuration.cs +++ b/KoenZomers.KeePass.OneDriveSync/Configuration.cs @@ -141,7 +141,7 @@ public class Configuration : ICloneable /// Gets the KeePass database configuration for KeePassOneDriveSync for the KeePass database of which the local path is provided /// /// Full path to where the KeePass database resides locally - /// KeePassOneDriveSync settings for the provided database + /// KeePassOneDriveSync settings for the provided database. If no configuration exists yet for the database, it will provide a new empty configuration set. public static Configuration GetPasswordDatabaseConfiguration(string localPasswordDatabasePath) { localPasswordDatabasePath = NormalizePath(localPasswordDatabasePath); @@ -153,6 +153,17 @@ public static Configuration GetPasswordDatabaseConfiguration(string localPasswor return PasswordDatabases[localPasswordDatabasePath]; } + /// + /// Sets the KeePass database configuration for KeePassOneDriveSync for the KeePass database of which the local path is provided to the configuration that is provided + /// + /// Full path to where the KeePass database resides locally + /// Configuration that should be set for the KeePass database. If configuration already existed for the same database, it will be overwritten. If it didn't exist yet, it will be added. + public static void SetPasswordDatabaseConfiguration(string localPasswordDatabasePath, Configuration configuration) + { + localPasswordDatabasePath = NormalizePath(localPasswordDatabasePath); + PasswordDatabases[localPasswordDatabasePath] = configuration; + } + /// /// Loads the configuration stored in KeePass /// diff --git a/KoenZomers.KeePass.OneDriveSync/KeePassDatabase.cs b/KoenZomers.KeePass.OneDriveSync/KeePassDatabase.cs index 0be071e..55b3a62 100644 --- a/KoenZomers.KeePass.OneDriveSync/KeePassDatabase.cs +++ b/KoenZomers.KeePass.OneDriveSync/KeePassDatabase.cs @@ -63,7 +63,10 @@ public static async Task OpenDatabaseFromCloudService(Action updateStatu databaseConfig.LastSyncedAt = DateTime.Now; databaseConfig.LastCheckedAt = DateTime.Now; - databaseConfig = Configuration.GetPasswordDatabaseConfiguration(localKeePassDatabasePath); + // Add the new configuration to the database configuration set in memory + Configuration.SetPasswordDatabaseConfiguration(localKeePassDatabasePath, databaseConfig); + + // Save the database configuration set to persistent storage Configuration.Save(); UpdateStatus("Opening KeePass database"); diff --git a/KoenZomers.KeePass.OneDriveSync/Properties/AssemblyInfo.cs b/KoenZomers.KeePass.OneDriveSync/Properties/AssemblyInfo.cs index c164c2d..0455ca3 100644 --- a/KoenZomers.KeePass.OneDriveSync/Properties/AssemblyInfo.cs +++ b/KoenZomers.KeePass.OneDriveSync/Properties/AssemblyInfo.cs @@ -31,4 +31,4 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.8.0")] +[assembly: AssemblyVersion("2.0.9.0")] diff --git a/README.md b/README.md index 62d2c61..eaf0ae5 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,10 @@ Download the PLGX and place it inside your KeePass\Plugins folder. Typically thi ## Latest Version +Version 2.0.9.0 - September 26, 2019 + +- Fixed the issue reported in [issue 112](https://github.com/KoenZomers/KeePassOneDriveSync/issues/112) where opening a KeePass database from OneDrive would require you to log on twice. Thanks to [keab](https://github.com/keab) for reporting this! + Version 2.0.8.0 - July 28, 2019 - Merged [Pull Request 102](https://github.com/KoenZomers/KeePassOneDriveSync/pull/102) which should solve some issues around relative paths when using KeePass portable. Thanks to [jfurtner](https://github.com/jfurtner) for his contribution!