1.1 --- a/imiptools/client.py Sat Sep 12 18:13:10 2015 +0200
1.2 +++ b/imiptools/client.py Sat Sep 12 18:15:26 2015 +0200
1.3 @@ -39,6 +39,13 @@
1.4 default_window_size = 100
1.5
1.6 def __init__(self, user, messenger=None, store=None, publisher=None, preferences_dir=None):
1.7 +
1.8 + """
1.9 + Initialise a calendar client with the current 'user', plus any
1.10 + 'messenger', 'store' and 'publisher' objects, indicating any specific
1.11 + 'preferences_dir'.
1.12 + """
1.13 +
1.14 self.user = user
1.15 self.messenger = messenger
1.16 self.store = store or imip_store.FileStore()
1.17 @@ -90,6 +97,10 @@
1.18 prefs = self.get_preferences()
1.19 return prefs and prefs.get("event_refreshing") == "always" or False
1.20
1.21 + def allow_organiser_replacement(self):
1.22 + prefs = self.get_preferences()
1.23 + return prefs and prefs.get("organiser_replacement", "attendee") or False
1.24 +
1.25 def have_manager(self):
1.26 return MANAGER_INTERFACE
1.27
1.28 @@ -337,6 +348,36 @@
1.29
1.30 # Object-related tests.
1.31
1.32 + def is_recognised_organiser(self, organiser):
1.33 +
1.34 + """
1.35 + Return whether the given 'organiser' is recognised from
1.36 + previously-received details. If no stored details exist, True is
1.37 + returned.
1.38 + """
1.39 +
1.40 + obj = self.get_stored_object_version()
1.41 + if obj:
1.42 + stored_organiser = get_uri(obj.get_value("ORGANIZER"))
1.43 + return stored_organiser == organiser
1.44 + else:
1.45 + return True
1.46 +
1.47 + def is_recognised_attendee(self, attendee):
1.48 +
1.49 + """
1.50 + Return whether the given 'attendee' is recognised from
1.51 + previously-received details. If no stored details exist, True is
1.52 + returned.
1.53 + """
1.54 +
1.55 + obj = self.get_stored_object_version()
1.56 + if obj:
1.57 + stored_attendees = uri_dict(obj.get_value_map("ATTENDEE"))
1.58 + return stored_attendees.has_key(attendee)
1.59 + else:
1.60 + return True
1.61 +
1.62 def get_attendance(self, user=None, obj=None):
1.63
1.64 """