GNOME Bugzilla – Bug 667889
Add support for Exchange accounts
Last modified: 2012-06-05 16:50:16 UTC
Both Contacts and Evolution could make use of this. For the user experience, this http://support.google.com/mobile/bin/answer.py?hl=en&topic=14252&answer=138740 might provide some inspiration. Bug 661117 is somewhat related, maybe.
As for implementation, David said the following: I'm not a big fan of plugins... I certainly don't want a plug-in system in GOA just yet. But we don't need to... the Exchange code in GOA can be installed without the EVolution Exchange code.. (this way it's just the user's or distro's own fault). We still want GOA to manage the password otherwise we can't verify that the password works etc. With that setup, E-D-S will retrieve the password the same way it retrieves OAuth tokes - the only difference is that it will use the org.gnome.OnlineAccounts.PasswordBased interface instead of e.g. OAuth2Based http://developer.gnome.org/goa/unstable/gdbus-org.gnome.OnlineAccounts.OAuth2Based.html so in GOA we will need some code to at least attempt to connect to the exchange server to verify that the password is correct. Does that sound OK? (Btw, I think it should be possible to just do the IMAP login dance for this manually on a socket so we don't have to drag in a whole IMAP library... or maybe Exchange now does something like OAuth? Because, if so, we should just use that...)
Created attachment 210981 [details] [review] Add Microsoft Exchange using EWS Known deficiencies: * goa_provider_ensure_credentials is not implemented * goa_provider_refresh_account is not implemented * AsUrl and OabUrl values are not exposed over DBus New dependency: * libxml-2.0
Created attachment 211410 [details] [review] exchange: Don't save the AsUrl and OabUrl, use the server instead A new org.gnome.OnlineAccounts.Exchange interface was added with a property named Host to expose the server's domain name over DBus. It is upto the clients to retrieve the AsUrl and OabUrl.
Created attachment 211411 [details] [review] exchange: Update to work with the new *Disabled properties
I have pushed these to master. Need to implement the ensure_credentials and refresh_account methods, and polish the UI/UX bits.
This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.