def post(self, identifier, *args, **kwargs): self.get_objects(identifier) if not self.permission in ['owner','editor']: self.abort(403) self.response.headers['Content-Type'] = 'application/json' log.info('Creating a new share') try: email = self.request.get('inputEmail', '') permission = self.request.get('inputPermission', '') share = BoardShare(email=email, permission=permission, parent=self.board) share.put() log.info('Created a new share: %d' % (share.key().id(),)) self.response.write(dumps({ 'id': share.key().id(), 'delete_url': self.uri_for('board-share-delete', identifier=identifier, share_id=unicode(share.key().id())), 'email': email, 'permission': permission})) memcache.delete('%s:boards' % (email,)) return except Exception, e: log.exception('Error creating a share') self.response.write(dumps({'error': unicode(e)})) return
def get(self, identifier, share_id, *args, **kwargs): self.get_objects(identifier) if not self.permission in ['owner','editor']: self.abort(403) return self.response.headers['Content-Type'] = 'application/json' log.info('Deleting a share') share = BoardShare.get_by_id(int(share_id), parent=self.board) if share is None: self.abort(404) return share.delete() self.response.write(dumps({'deleted': share_id})) memcache.delete('%s:boards' % (share.email,))
def get_context_data(self, **kwargs): context = super(BoardSharesHandler, self).get_context_data(**kwargs) context['board_shares'] = BoardShare.all().ancestor(self.board) context['can_edit'] = context['permission'] in ['owner','editor'] return context