summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo (C10uD) <c10ud.dev@gmail.com>2011-09-01 12:48:07 +0200
committerRiccardo (C10uD) <c10ud.dev@gmail.com>2011-09-01 12:48:07 +0200
commitf70c885a9f79824b35b787d40f967860d86ab5fb (patch)
tree5d890939fae339272009e2f166e7ebdc611de4a0
parent5e7b247ac9b6ff1eeaad619af43b49d6bf8639db (diff)
address book: handle case when contact is our Profile or an email-only member
-rw-r--r--papyon/service/AddressBook/address_book.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/papyon/service/AddressBook/address_book.py b/papyon/service/AddressBook/address_book.py
index fa4b6d6..b32a919 100644
--- a/papyon/service/AddressBook/address_book.py
+++ b/papyon/service/AddressBook/address_book.py
@@ -633,12 +633,13 @@ class AddressBook(gobject.GObject):
contact._cid = infos.CID
if infos.DisplayName:
contact._display_name = infos.DisplayName
- contact._server_infos_changed(infos.contact_infos)
- for group in self.groups:
- if group.id in infos.Groups:
- contact._add_group_ownership(group)
- if group.id in infos.DeletedGroups:
- contact._delete_group_ownership(group)
+ if not isinstance(contact, profile.Profile):
+ contact._server_infos_changed(infos.contact_infos)
+ for group in self.groups:
+ if group.id in infos.Groups:
+ contact._add_group_ownership(group)
+ if group.id in infos.DeletedGroups:
+ contact._delete_group_ownership(group)
contact.thaw_notify()
def __build_or_update_contact(self, account, network_id=NetworkID.MSN,
@@ -687,7 +688,7 @@ class AddressBook(gobject.GObject):
for group in ab_storage.groups]
members = []
for member in memberships:
- member_repr = member.PassportName
+ member_repr = member.PassportName if not isinstance(member, sharing.EmailMember) else member.Email
for role, deleted in member.Roles.items():
member_repr += ' %s-%s' % ('D' if deleted else 'A', role)
members.append(member_repr)
@@ -750,7 +751,7 @@ class AddressBook(gobject.GObject):
contact = new_contact
self.contacts.add(contact)
- if new_contact_added:
+ if new_contact_added and not isinstance(contact, profile.Profile):
if not contact.is_member(Membership.PENDING):
contact._add_membership(Membership.FORWARD)
if self.state != AddressBookState.INITIAL_SYNC: