示例#1
0
    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
示例#2
0
    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,))
示例#3
0
 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