diff options
author | Dan Williams <dcbw@redhat.com> | 2006-06-17 03:32:50 (GMT) |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2006-06-17 03:32:50 (GMT) |
commit | d353bd5ed1c3940f5459dc45d51dfc49921a71b4 (patch) | |
tree | 9f932d89f21e4c2080d079a2963c7c1fef2ff3ba /sugar/presence/Buddy.py | |
parent | 0871ca9f3d94862590e6acd6b894f5715506f846 (diff) |
Validate service type and check for uid-based services first
Diffstat (limited to 'sugar/presence/Buddy.py')
-rw-r--r-- | sugar/presence/Buddy.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sugar/presence/Buddy.py b/sugar/presence/Buddy.py index de311f4..8172ccc 100644 --- a/sugar/presence/Buddy.py +++ b/sugar/presence/Buddy.py @@ -99,15 +99,20 @@ class Buddy(gobject.GObject): short_stype = stype if not short_stype: raise RuntimeError("Need to specify a service type.") + # Ensure we're only passed short service types + (dec_uid, dec_stype) = Service._decompose_service_type(short_stype) + if dec_uid: + raise RuntimeError("Use plain service types please!") + uid = None if activity: uid = activity.get_id() - if self._services.has_key(short_stype): - return self._services[short_stype] - elif uid: + if uid is not None: for service in self._services.values(): if service.get_type() == short_stype and service.get_activity_uid() == uid: return service + if self._services.has_key(short_stype): + return self._services[short_stype] return None def is_valid(self): |