diff options
author | Riccardo (C10uD) <c10ud.dev@gmail.com> | 2011-09-01 12:48:07 +0200 |
---|---|---|
committer | Riccardo (C10uD) <c10ud.dev@gmail.com> | 2011-09-01 12:48:07 +0200 |
commit | f70c885a9f79824b35b787d40f967860d86ab5fb (patch) | |
tree | 5d890939fae339272009e2f166e7ebdc611de4a0 | |
parent | 5e7b247ac9b6ff1eeaad619af43b49d6bf8639db (diff) |
address book: handle case when contact is our Profile or an email-only member
-rw-r--r-- | papyon/service/AddressBook/address_book.py | 17 |
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: |