コード例 #1
0
ファイル: common.py プロジェクト: backgroundcheck/spindle
def authz_filter(q):
    return add_filter(q, {
        "or": [
            {"terms": {"$sources": list(authz.sources(authz.READ))}},
            {"terms": {"$collections": list(authz.collections(authz.READ))}}
        ]
    })
コード例 #2
0
def index():
    collections = authz.collections(authz.READ)
    if not len(collections):
        return jsonify(Pager([]))
    q = session.query(Source)
    q = q.filter(Source.id.in_(collections))
    q = q.order_by(Source.title.asc())
    return jsonify(Pager(q))
コード例 #3
0
def index():
    collections = authz.collections(authz.READ)
    if not len(collections):
        return jsonify(Pager([]))
    q = session.query(Collection)
    q = q.filter(Collection.id.in_(collections))
    q = q.options(subqueryload('subjects'))
    q = q.order_by(Collection.title.asc())
    return jsonify(Pager(q))
コード例 #4
0
ファイル: common.py プロジェクト: occrp-attic/spindle
def authz_filter(q):
    return add_filter(
        q, {
            "or": [{
                "terms": {
                    "$sources": list(authz.sources(authz.READ))
                }
            }, {
                "terms": {
                    "$collections": list(authz.collections(authz.READ))
                }
            }]
        })
コード例 #5
0
def result_entity(entity):
    if '_source' in entity and '_id' in entity:
        entity['_source']['id'] = entity['_id']
        entity = entity['_source']
    entity['$uri'] = url_for('entities.view', id=entity.get('id'))
    colls = entity.get('$collections', [])
    entity['$collections'] = authz.collections(authz.READ).intersection(colls)
    sources = entity.get('$sources', [])
    entity['$sources'] = authz.sources(authz.READ).intersection(sources)
    entity.pop('$text', None)
    entity.pop('$latin', None)
    for k, v in entity.items():
        if isinstance(v, (set, list, tuple)) and len(v) == 0:
            entity.pop(k)
    return entity