1.1 --- a/imiptools/client.py Fri Oct 16 16:19:05 2015 +0200
1.2 +++ b/imiptools/client.py Fri Oct 16 18:45:36 2015 +0200
1.3 @@ -194,6 +194,23 @@
1.4
1.5 # Common operations on calendar data.
1.6
1.7 + def update_senders(self, obj=None):
1.8 +
1.9 + """
1.10 + Update sender details in 'obj', or the current object if not indicated,
1.11 + removing SENT-BY attributes for attendees other than the current user if
1.12 + those attributes give the URI of the calendar system.
1.13 + """
1.14 +
1.15 + obj = obj or self.obj
1.16 + calendar_uri = get_uri(self.messenger.sender)
1.17 + for attendee, attendee_attr in uri_items(obj.get_items("ATTENDEE")):
1.18 + if attendee != self.user:
1.19 + if attendee_attr.get("SENT-BY") == calendar_uri:
1.20 + del attendee_attr["SENT-BY"]
1.21 + else:
1.22 + attendee_attr["SENT-BY"] = calendar_uri
1.23 +
1.24 def update_sender(self, attr):
1.25
1.26 "Update the SENT-BY attribute of the 'attr' sender metadata."
1.27 @@ -205,7 +222,7 @@
1.28
1.29 "Return the attendee who sent the current object."
1.30
1.31 - calendar_uri = get_uri(config.MESSAGE_SENDER)
1.32 + calendar_uri = get_uri(self.messenger.sender)
1.33 for attendee, attendee_attr in uri_items(self.obj.get_items("ATTENDEE")):
1.34 if attendee_attr.get("SENT-BY") == calendar_uri:
1.35 return get_uri(attendee)
2.1 --- a/imiptools/data.py Fri Oct 16 16:19:05 2015 +0200
2.2 +++ b/imiptools/data.py Fri Oct 16 18:45:36 2015 +0200
2.3 @@ -442,14 +442,6 @@
2.4 self["SEQUENCE"] = [(str(int(sequence) + (increment and 1 or 0)), {})]
2.5 return sequence
2.6
2.7 - def update_senders(self, user=None):
2.8 -
2.9 - "Remove SENT-BY attributes from properties."
2.10 -
2.11 - for identity, attr in self.get_items("ATTENDEE") or []:
2.12 - if attr.has_key("SENT-BY") and (not user or get_uri(identity) != user):
2.13 - del attr["SENT-BY"]
2.14 -
2.15 def update_exceptions(self, excluded):
2.16
2.17 """
3.1 --- a/imipweb/resource.py Fri Oct 16 16:19:05 2015 +0200
3.2 +++ b/imipweb/resource.py Fri Oct 16 18:45:36 2015 +0200
3.3 @@ -289,7 +289,7 @@
3.4 return False
3.5
3.6 method = "DECLINECOUNTER"
3.7 - obj.update_senders()
3.8 + self.update_senders(obj=obj)
3.9 obj.update_dtstamp()
3.10 obj.update_sequence(False)
3.11 self._send_message(get_address(self.user), [get_address(attendee)], parts=[obj.to_part(method)])
3.12 @@ -314,7 +314,7 @@
3.13 if not changed:
3.14 self.obj["ATTENDEE"] = [(self.user, attendee_attr)]
3.15 else:
3.16 - self.obj.update_senders(self.user)
3.17 + self.update_senders()
3.18
3.19 self.update_dtstamp()
3.20 self.update_sequence(False)
3.21 @@ -339,7 +339,7 @@
3.22 organiser, organiser_attr = uri_item(self.obj.get_item("ORGANIZER"))
3.23
3.24 self.update_sender(organiser_attr)
3.25 - self.obj.update_senders()
3.26 + self.update_senders()
3.27 self.update_dtstamp()
3.28 self.update_sequence(True)
3.29