On Apr 13, 2007, at 1:35 PM, Andi Vajda wrote:


On Fri, 13 Apr 2007, Morgen Sagen wrote:

#1 I proposed earlier to solve by creating such out-of-the-box accounts outside of //parcels and instead in //userdata so they get dumped like any other item. What I think I left out was that they should be given fixed UUIDs so that during reload the user- modified account items will have their data applied to the out-of- the-box items (and avoid creating duplicates)

#2 Preferences are handled by explicitly yielding the appropriate records within translator.finishExport( )

#3 Is handled by a combination of #1 and #2: the sidebar is given a fixed UUID, and also its collection-membership records are explicitly yielded in finishExport( )

So reload should mean "start with a fresh repository, load parcels (thereby creating out-of-the-box items), then reload dump"

Giving passwords a fixed uuid is the same as saying "everyone gets the same password". If that is not the case, then there is a contradiction somewhere. If, for example, I send a password item around, I do not want mine to have the same UUID as yours. But, you're going to say "we'll never do that". If passwords are items then someone is going to eventually. Really, fixed uuids should be used with care and with the meaning "two items with the same uuid are the same item, universally (the U in UUID)".

Andi..

Yeah, you're right -- fixed UUIDs for user modifiable items should be used with care -- we do use it for the Sidebar collection, and perhaps that's ok.

So instead what I would like to now propose for dump/reload of out-of- the-box account items is... to not have any. The only reason we create them in installParcel anyway is so that the Accounts dialog will have something to show. What if the Accounts dialog created them on the fly -- and only if needed? The Accounts dialog could look to see if the currentSharingAccount reference points to an item, and if it doesn't then create a default one. If a dump file has been loaded in, the currentSharingAccount reference will already be pointing to an account item, so there is no need to have an out-of- the-box one defined in installParcel at all. Thus we can remove the special casing in translator import which deletes an out-of-the-box account if it's not being used. (Actually I already removed that special case code when I assigned UUIDs to the sharing accounts.)

Brian K, does this work for email accounts?

~morgen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev

Reply via email to