コード例 #1
0
def testDangerousParamsRestRequestLogging(server, admin, freshLog,
                                          requestParams, logParams):
    server.request('/folder', params=requestParams)

    records = Record().find()
    assert records.count() == 1
    details = records[0]['details']
    assert details['params'] == logParams
コード例 #2
0
def testDocumentCreationLogging(server, freshLog):
    user = User().createUser('admin', 'password', 'first', 'last', '*****@*****.**')
    records = Record().find(sort=[('when', 1)])
    assert records.count() == 3

    assert records[0]['details']['collection'] == 'user'
    assert records[0]['details']['id'] == user['_id']
    assert records[1]['details']['collection'] == 'folder'
    assert records[2]['details']['collection'] == 'folder'
コード例 #3
0
def testFailedRestRequestLogging(server, freshLog):
    server.request('/folder',
                   method='POST',
                   params={
                       'name': 'Foo',
                       'parentId': 'foo'
                   })
    records = Record().find()

    assert records.count() == 1
    details = records[0]['details']

    assert details['method'] == 'POST'
    assert details['status'] == 401
    assert details['route'] == ['folder']
    assert details['params'] == {'name': 'Foo', 'parentId': 'foo'}
コード例 #4
0
def testAnonymousRestRequestLogging(server, freshLog):
    Record().collection.delete_many({})  # Clear existing records
    server.request('/user/me')

    records = Record().find()
    assert records.count() == 1
    record = records[0]

    assert record['ip'] == '127.0.0.1'
    assert record['type'] == 'rest.request'
    assert record['userId'] is None
    assert isinstance(record['when'], datetime.datetime)
    assert record['details']['method'] == 'GET'
    assert record['details']['status'] == 200
    assert record['details']['route'] == ['user', 'me']
    assert record['details']['params'] == {}
コード例 #5
0
def freshLog():
    Record().collection.drop()  # Clear existing records

    yield auditLogger

    for handler in auditLogger.handlers:
        auditLogger.removeHandler(handler)
コード例 #6
0
ファイル: cleanup.py プロジェクト: ziqiangxu/girder
def cleanup(days, types):
    filter = {'when': {'$lt': datetime.datetime.utcnow() - datetime.timedelta(days=days)}}

    if types:
        filter['type'] = {'$in': types.split(',')}

    click.echo('Deleted %d log entries.' % Record().collection.delete_many(filter).deleted_count)
コード例 #7
0
def testDisableLoggingOnNotificationEndpoints(server, user, freshLog):
    server.request('/user/me')
    server.request('/notification', user=user)
    server.request('/notification/stream',
                   params={'timeout': 0},
                   user=user,
                   isJson=False)
    assert Record().find().count() == 1
コード例 #8
0
def testDownloadLogging(server, admin, fsAssetstore, freshLog):
    folder = Folder().find({'parentId': admin['_id'], 'name': 'Public'})[0]
    file = Upload().uploadFromFile(io.BytesIO(b'hello'),
                                   size=5,
                                   name='test',
                                   parentType='folder',
                                   parent=folder,
                                   user=admin,
                                   assetstore=fsAssetstore)

    Record().collection.remove({})  # Clear existing records

    File().download(file, headers=False, offset=2, endByte=4)

    records = Record().find()

    assert records.count() == 1
    record = records[0]
    assert record['ip'] == '127.0.0.1'
    assert record['type'] == 'file.download'
    assert record['details']['fileId'] == file['_id']
    assert record['details']['startByte'] == 2
    assert record['details']['endByte'] == 4
    assert isinstance(record['when'], datetime.datetime)
コード例 #9
0
ファイル: report.py プロジェクト: mtg137/mindlogger-backend
def get_file_download_records(files, start=None, end=None):
    query = {
        'type': 'file.download',
        'details.fileId': {
            '$in': files,
        },
        'details.startByte': 0
    }
    if (start is not None) or (end is not None):
        whenClause = {'when': {}}
        if start is not None:
            whenClause['when']['$gte'] = dateutil.parser.parse(start)
        if end is not None:
            whenClause['when']['$lt'] = dateutil.parser.parse(end)
        query.update(whenClause)
    return Record().find(query)
コード例 #10
0
def testAuthenticatedRestRequestLogging(server, admin, freshLog):
    server.request('/user/me', user=admin)
    records = Record().find()
    assert records.count() == 1
    record = records[0]
    assert record['userId'] == admin['_id']
コード例 #11
0
def recordModel():
    yield Record()