1.1 --- a/imiptools/handlers/person.py Sat Jan 24 23:55:24 2015 +0100
1.2 +++ b/imiptools/handlers/person.py Sun Jan 25 00:18:48 2015 +0100
1.3 @@ -45,11 +45,6 @@
1.4
1.5 (organiser, organiser_attr), attendees = organiser_item, attendees = oa
1.6
1.7 - # Validate the organiser or attendee, ignoring spoofed requests.
1.8 -
1.9 - if not self.validate_identities(from_organiser and [organiser_item] or attendees.items()):
1.10 - return False
1.11 -
1.12 # Handle notifications and invitations.
1.13
1.14 if from_organiser:
1.15 @@ -61,6 +56,16 @@
1.16 if not self.have_new_object(attendee, objtype):
1.17 continue
1.18
1.19 + # Record other party free/busy information.
1.20 +
1.21 + if organiser != attendee:
1.22 + freebusy = self.store.get_freebusy_for_other(attendee, organiser)
1.23 +
1.24 + if organiser_attr.get("PARTSTAT") != "DECLINED":
1.25 + self.update_freebusy_for_other(freebusy, attendee, organiser, self.get_periods())
1.26 + else:
1.27 + self.remove_from_freebusy_for_other(freebusy, attendee, organiser)
1.28 +
1.29 # Store the object and queue any request.
1.30
1.31 self.store.set_event(attendee, self.uid, to_node(
1.32 @@ -89,7 +94,15 @@
1.33
1.34 attendee_map[attendee] = attendee_attr
1.35
1.36 - # NOTE: Record other attendee free/busy information.
1.37 + # Record other party free/busy information.
1.38 +
1.39 + if organiser != attendee:
1.40 + freebusy = self.store.get_freebusy_for_other(organiser, attendee)
1.41 +
1.42 + if attendee_attr.get("PARTSTAT") != "DECLINED":
1.43 + self.update_freebusy_for_other(freebusy, organiser, attendee, self.get_periods())
1.44 + else:
1.45 + self.remove_from_freebusy_for_other(freebusy, organiser, attendee)
1.46
1.47 # Set the new details and store the object.
1.48