From 7185ab0e9bc773f7c7051d414ae0af578060a583 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 25 Nov 2009 22:00:11 -0600 Subject: [PATCH] Adding support for changing the callback number by setting the user's alias --- src/aliasing.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/aliasing.py b/src/aliasing.py index 02a483e..4d6c3a3 100644 --- a/src/aliasing.py +++ b/src/aliasing.py @@ -99,8 +99,26 @@ class AliasingMixin(telepathy.server.ConnectionInterfaceAliasing): @gtk_toolbox.log_exception(_moduleLogger) def SetAliases(self, aliases): - # @todo Look into setting callback number through this mechanism - raise telepathy.PermissionDenied("No user customizable aliases") + _moduleLogger.debug("Called SetAliases") + + # first validate that no other handle types are included + userHandleAndAlias = None + for handleId, alias in aliases.iteritems(): + h = self.handle(telepathy.HANDLE_TYPE_CONTACT, handleId) + if not isinstance(h, handle.ConnectionHandle): + raise telepathy.PermissionDenied("No user customizable aliases") + userHandleAndAlias = h, alias + if userHandleAndAlias is None: + _moduleLogger.debug("No user handle") + return + + # Update callback + uglyNumber = handle.strip_number(userHandleAndAlias[1]) + self.session.backend.set_callback_number(uglyNumber) + + # Inform of change + changedAliases = (userHandleAndAlias, ) + self.AliasesChanged(changedAliases) def _get_alias(self, handleId): h = self.handle(telepathy.HANDLE_TYPE_CONTACT, handleId) -- 1.7.9.5