Deficiencies in Location setting API
Submitted by Simon McVittie
Assigned to Telepathy bugs list
Description
This partially blocks Bug #27669.
-
There's no way to tell whether locations can be set. For instance, on XMPP we set locations in PEP, so we need to do something sensible on Google Talk servers (which don't have PEP). Google Talk users can still retrieve PEP-based Location from non-Google contacts.
Proposal A: boolean CanSetLocation property Proposal B: if LocationAccessControlTypes is the empty list, then that means you can't set location
-
Clients can't tell when LocationAccessControl has changed.
Proposal: LocationAccessControlChanged (u: Type, v: Detail)
-
It's unspecified whether/when LocationAccessControlTypes can change.
Proposal: before StatusChanged(CONNECTED, .) it's meaningless; after that it can never change. (But note that this would require Gabble to query whether we have a PEP server before going CONNECTED...)
-
I'm not sure that having separate setters for the access control type and the location is the right model; since geolocation is such sensitive information, we should perhaps set the access control and the location at the same time?
In particular, the first SetLocation on a Connection is specified to set the access control to an empty whitelist if possible (though I don't know whether Gabble actually does this); if you want anyone to actually see your location, you'll need to set an access control model.
Proposal: SetLocationAndControl(a{sv}, u, v)
Version: git master