Add support for docker search, now that auth is fixed
This commit is contained in:
parent
7be345f59b
commit
80435d9c0b
1 changed files with 28 additions and 1 deletions
|
@ -413,8 +413,35 @@ def put_repository_auth(namespace, repository):
|
||||||
|
|
||||||
|
|
||||||
@index.route('/search', methods=['GET'])
|
@index.route('/search', methods=['GET'])
|
||||||
|
@process_auth
|
||||||
def get_search():
|
def get_search():
|
||||||
abort(501, 'Not Implemented', issue='not-implemented')
|
def result_view(repo):
|
||||||
|
return {
|
||||||
|
"name": repo.namespace + '/' + repo.name,
|
||||||
|
"description": repo.description
|
||||||
|
}
|
||||||
|
|
||||||
|
query = request.args.get('q')
|
||||||
|
|
||||||
|
username = None
|
||||||
|
user = get_authenticated_user()
|
||||||
|
if user is not None:
|
||||||
|
username = user.username
|
||||||
|
|
||||||
|
matching = model.get_matching_repositories(query, username)
|
||||||
|
results = [result_view(repo) for repo in matching
|
||||||
|
if (repo.visibility.name == 'public' or
|
||||||
|
ReadRepositoryPermission(repo.namespace, repo.name).can())]
|
||||||
|
|
||||||
|
data = {
|
||||||
|
"query": query,
|
||||||
|
"num_results": len(results),
|
||||||
|
"results" : results
|
||||||
|
}
|
||||||
|
|
||||||
|
resp = make_response(json.dumps(data), 200)
|
||||||
|
resp.mimetype = 'application/json'
|
||||||
|
return resp
|
||||||
|
|
||||||
|
|
||||||
@index.route('/_ping')
|
@index.route('/_ping')
|
||||||
|
|
Reference in a new issue