Exemplo n.º 1
0
 def remove_write_permission(self, email):
     service = get_service()
     for rule in self.all_rules():
         if rule['scope']['type'] == 'user' and rule['scope'][
                 'value'] == email:
             service.acl().delete(calendarId=self.gcal_id,
                                  ruleId=rule['id'])
Exemplo n.º 2
0
 def delete_cal(self):
     if self.cal_made():
         #print('DELETING', self.name)
         service = get_service()
         calendar_id = self.gcal_id
         service.calendars().delete(calendarId=calendar_id).execute()
         self.gcal_id = NO_CAL_SIGNAL
         self.save()
         return True
     return False
Exemplo n.º 3
0
 def grant_write_permission(self, email):
     service = get_service()
     rule = {
         'scope': {
             'type': 'user',
             'value': email,
         },
         'role': 'writer',
     }
     return service.acl().insert(calendarId=self.gcal_id,
                                 body=rule).execute()['id']
Exemplo n.º 4
0
 def all_rules(self):
     service = get_service()
     page_token = None
     while True:
         resp = service.acl().list(
             calendarId=self.gcal_id,
             pageToken=page_token,
         ).execute()
         yield from resp['items']
         page_token = resp.get('nextPageToken')
         if not page_token:
             break
Exemplo n.º 5
0
 def events_within(self, starttime, endtime=None):
     if endtime is None:
         endtime = starttime + datetime.timedelta(hours=24)
     service = get_service()
     page_token = None
     while True:
         resp = service.events().list(
             calendarId=self.gcal_id,
             pageToken=page_token,
             timeMin=starttime.isoformat(),
             timeMax=endtime.isoformat(),
             singleEvents=True,
         ).execute()
         yield from resp['items']
         page_token = resp.get('nextPageToken')
         if not page_token:
             break
Exemplo n.º 6
0
    def make_cal(self, cal_timezone=settings.TIME_ZONE):
        if self.cal_made():
            print("found cal ", self.gcal_id)
            return False
        else:
            calendar = {'summary': self.name, 'timeZone': cal_timezone}
            service = get_service()
            created_calendar = service.calendars().insert(
                body=calendar).execute()

            self.gcal_id = created_calendar['id']
            self.save()

            rule = {
                'scope': {
                    'type': 'default',
                },
                'role': 'reader'
            }

            created_rule = service.acl().insert(calendarId=self.gcal_id,
                                                body=rule).execute()

            return True