def authz_filter(q): return add_filter(q, { "or": [ {"terms": {"$sources": list(authz.sources(authz.READ))}}, {"terms": {"$collections": list(authz.collections(authz.READ))}} ] })
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))
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))
def authz_filter(q): return add_filter( q, { "or": [{ "terms": { "$sources": list(authz.sources(authz.READ)) } }, { "terms": { "$collections": list(authz.collections(authz.READ)) } }] })
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