tobischo / gokeepasslib

A library to read and write keepass 2 files written in go
MIT License
246 stars 30 forks source link

Cleanup custom icons before database save #84

Closed korovan-software closed 2 years ago

korovan-software commented 2 years ago

To support correct custom icons add and remove some cleanup function are needed (as for binaries in scope of https://github.com/tobischo/gokeepasslib/issues/80).

tobischo commented 2 years ago

How frequently do icons become obsolete?

How frequently are people using custom icons?

With keepass2 I have to say I have never actually used any icon that did not belong to the standard set available.

The second bit I would raise is that someone might press 'Save' and if we were to hook the cleanup into saving as done for the binary attachments. This might happen when someone changes the icon for one entry - an Icon they want to use for another entry, but as they have become slightly paranoid about having things persisted (after having lost hours of work on Word failing) they press Save - and the icon they want to use on another entry just disappears.

Are the icons really so big and frequently used that we need a sort of automated garbage collection?

Note that for attachments it is different because the way icons are dealt with, each entry has its own attachments instead of a shared set that you just have to pick from

tobischo commented 2 years ago

I would rather give users the ability to remove Icons they no longer want to have intentionally.

That specifically does not require library support

You can loop through Entries/Groups if you want to make sure that no Icon is removable that is still being used and otherwise remove them from the list

korovan-software commented 2 years ago

Agree.