Exemple #1
0
 def test_remove_keys(self):
     all_keys = [KeyMaster.PUB_KEY, KeyMaster.SIG_KEY, KeyMaster.TIME_KEY]
     signed = KeyMaster.sign(self.payload, self.private_key)
     for key in all_keys:
         self.assertIn(key, signed)
     cleaned = KeyMaster.remove_keys(signed)
     for key in all_keys:
         self.assertNotIn(key, cleaned)
Exemple #2
0
def manage_logs():
    payload = dict(request.values.items())
    if '_public_key' not in payload:
        abort(400)
    stream = db.Stream.find_one({'public_key': payload['_public_key']})
    if not KeyMaster.check(payload, stream['private_key']):
        abort(400)
    log_data = KeyMaster.remove_keys(payload)
    if request.method == 'GET':
        resp = u'[' + ', '.join([log.to_json() for log in 
            db[stream['log_collection']].Log.find(log_data)]) + ']'
    elif request.method == 'POST':
        log = db[stream['log_collection']].Log()
        for key, value in log_data.items():
            log[key] = value
        try:
            log.save()
            resp = json.dumps({'status': 'success'})
        except:
            resp = json.dumps({'status': 'error'})
    else:
        abort(400)
    return Response(resp, status='200', mimetype='application/json')