From: Ed Page Date: Thu, 26 Nov 2009 04:00:11 +0000 (-0600) Subject: Adding support for changing the callback number by setting the user's alias X-Git-Url: http://git.maemo.org/git/?p=theonering;a=commitdiff_plain;h=7185ab0e9bc773f7c7051d414ae0af578060a583;ds=sidebyside Adding support for changing the callback number by setting the user's alias --- 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)