spec: Clarify behaviour of o.f.D.P.GetAll

Clarify its intended behaviour in two situations:
 • For interfaces which have no properties.
 • Where some properties are not visible to the caller (due to access
   control, for example).

The intention here is for this behaviour to be mandatory, but given that
this is quite late on in the specification’s life, and various D-Bus
libraries like dbus-glib and telepathy-glib cannot support access
control at a per-property level, for example. GDBus can, although it’s
questionable whether this is a good idea. Deliberately leave the
specification open to allow access control at a higher level as well
(such as per-(object, interface)).

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=36190
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
This commit is contained in:
Philip Withnall 2016-10-31 21:17:54 -07:00 committed by Simon McVittie
parent b51aa049c7
commit 8eca3f6ed9

View file

@ -3815,6 +3815,17 @@
deterministic rule, or returning an error, are the reasonable
possibilities).
</para>
<para>
If <literal>org.freedesktop.DBus.Properties.GetAll</literal> is called
with a valid interface name which contains no properties, an empty array
should be returned. If it is called with a valid interface name for
which some properties are not accessible to the caller (for example, due
to per-property access control implemented in the service), those
properties should be silently omitted from the result array.
If <literal>org.freedesktop.DBus.Properties.Get</literal> is called for
any such properties, an appropriate access control error should be
returned.
</para>
<para>
If one or more properties change on an object, the
<literal>org.freedesktop.DBus.Properties.PropertiesChanged</literal>