[sugar] Initial Security Patches
Dan Williams
dcbw
Tue Jul 31 22:42:35 EDT 2007
On Tue, 2007-07-31 at 14:20 +0100, Simon McVittie wrote:
> On Mon, 30 Jul 2007 at 16:21:36 -0400, Michael Stone wrote:
> > @dbus.service.signal(_DBUS_OWNER_IFACE, signature="s")
> > def CurrentActivityChanged(self, activity_id):
> > - pass
> > + if os.path.exists('/etc/olpc-security'):
> > + self.rainbow.activity_changed(activity_id)
>
> Minor: It's conventional for D-Bus methods to be named in CamelCase.
>
> More major: This looks like an example of the same method/signal
> naming inversion we have in Telepathy's streamed media interfaces (which we
> consider to be a bug). Methods should be verbs, like ChangeActivity;
> signals should be events, like ActivityChanged. Can't Rainbow just
> listen for _DBUS_OWNER_IFACE::CurrentActivityChanged? If you're implementing
> Rainbow in Python, that's spelt:
>
> bus = dbus.SessionBus()
> bus.add_signal_receiver(some_callback, 'CurrentActivityChanged',
> _DBUS_OWNER_IFACE)
>
> If you only want to respond to CurrentActivityChanged from the process
> or object that ought to be emitting it, you can also specify a bus name
> or object path, or you can use connect_to_signal() on a proxy for that
> object.
>
> If you must use a method call for some technical reason, it'd be less
> astonishing if it was called something like ChangeCurrentActivity.
I think I suggested this particular approach because we don't really
want a Sugar DBus signal for activity switches. Activities are already
notified correctly when they are active/inactive, we don't really want a
global CurrentActivityChanged signal.
Dan
> > + system_bus = dbus.SystemBus()
> > + factory = system_bus.get_object(_RAINBOW_SERVICE_NAME,
> > + _RAINBOW_ACTIVITY_FACTORY_PATH)
>
> Proxy objects trigger an Introspect() call every time they're created,
> so you may want to cache this proxy object for use in future launches.
>
> > + factory.create_activity(self._service_name,
>
> Again, this would conventionally be called CreateActivity. It's an
> appropriate use for a method this time, though.
>
> Simon
> _______________________________________________
> Sugar mailing list
> Sugar at lists.laptop.org
> http://lists.laptop.org/listinfo/sugar
More information about the Sugar-devel
mailing list