Beispiel #1
0
    def test_check_block(self):
        site = get_site_by_token(self.token)
        ip = '192.168.1.11'
        block(site, ip)

        self.assertTrue(check_block(site.id, ip))
        rds.delete(config.BLOCK_PREFIX.format(sid = site.id, ip = ip))
        self.assertTrue(check_block(site.id, ip))
        self.assertFalse(check_block(site.id, '192.168.1.12'))
Beispiel #2
0
    def on_put(self, req, resp, token):
        site = self.get_site(token)
        msg = json.load(req.stream)

        tid = msg.get('tid', 0)
        fid = msg.get('fid', 0)
        uid = msg.get('uid', 0)
        ip = msg.get('ip', 0)
        content = msg.get('content', None)

        if not tid or not uid or not ip or not content:
            raise falcon.HTTPBadRequest(config.HTTP_400, 'invalid params')

        if check_block(site.id, ip):
            logger.info('IP %s deny' % ip)
            raise falcon.HTTPForbidden(config.HTTP_403, 'ip %s deny' % ip)

        try:
            comment = create(site, tid, fid, uid, ip, content)
        except Exception:
            logger.exception('create comment')
            raise falcon.HTTPInternalServerError(config.HTTP_500, 'create comment failed')

        resp.status = falcon.HTTP_201
        resp.stream = ijson.dump({'id': comment.id})