Fix pagination of public repos, make more efficient and add test
This commit is contained in:
parent
bf34916b26
commit
4a2acac5dc
3 changed files with 39 additions and 17 deletions
|
@ -256,11 +256,12 @@ def get_visible_repositories(username, namespace=None, include_public=False):
|
|||
query = (Repository
|
||||
.select(Repository.name, Repository.id.alias('rid'),
|
||||
Repository.description, Namespace.username, Repository.visibility)
|
||||
.distinct()
|
||||
.switch(Repository)
|
||||
.join(Namespace, on=(Repository.namespace_user == Namespace.id))
|
||||
.switch(Repository)
|
||||
.join(RepositoryPermission, JOIN_LEFT_OUTER))
|
||||
.join(Namespace, on=(Repository.namespace_user == Namespace.id)))
|
||||
|
||||
if username:
|
||||
# Note: We only need the permissions table if we will filter based on a user's permissions.
|
||||
query = query.switch(Repository).distinct().join(RepositoryPermission, JOIN_LEFT_OUTER)
|
||||
|
||||
query = _basequery.filter_to_repos_for_user(query, username, namespace, include_public)
|
||||
return query
|
||||
|
|
Reference in a new issue