| Index: appengine/config_service/api.py
|
| diff --git a/appengine/config_service/api.py b/appengine/config_service/api.py
|
| index 4b628f5b683c4d4a7504b7fab530c1d42e0205c1..ed2a37ae7d16e1fe9ffc346ead7206e233a332b5 100644
|
| --- a/appengine/config_service/api.py
|
| +++ b/appengine/config_service/api.py
|
| @@ -55,8 +55,7 @@ class ConfigApi(remote.Service):
|
|
|
| def can_read_config_set(self, config_set):
|
| try:
|
| - return acl.can_read_config_set(
|
| - config_set, headers=self.request_state.headers)
|
| + return acl.can_read_config_set(config_set)
|
| except ValueError:
|
| raise endpoints.BadRequestException('Invalid config set: %s' % config_set)
|
|
|
| @@ -185,9 +184,9 @@ class ConfigApi(remote.Service):
|
|
|
| The project list is stored in services/luci-config:projects.cfg.
|
| """
|
| - if not acl.can_read_project_list():
|
| - raise endpoints.ForbiddenException()
|
| - return self.GetProjectsResponseMessage(projects=get_projects())
|
| + return self.GetProjectsResponseMessage(
|
| + projects=[p for p in get_projects() if acl.has_project_access(p.id)],
|
| + )
|
|
|
| ##############################################################################
|
| # endpoint: get_refs
|
| @@ -207,7 +206,7 @@ class ConfigApi(remote.Service):
|
| path='projects/{project_id}/refs')
|
| def get_refs(self, request):
|
| """Gets list of refs of a project."""
|
| - if not acl.can_read_project_config(request.project_id):
|
| + if not acl.has_project_access(request.project_id):
|
| raise endpoints.NotFoundException()
|
| ref_names = get_ref_names(request.project_id)
|
| if ref_names is None:
|
| @@ -304,10 +303,8 @@ def get_config_multi(config_sets, path, hashes_only):
|
|
|
| Returns empty config list if requester does not have project access.
|
| """
|
| - if not acl.has_project_access():
|
| - raise endpoints.ForbiddenException()
|
| -
|
| res = GetConfigMultiResponseMessage()
|
| + config_sets = filter(acl.can_read_config_set, config_sets)
|
| configs = storage.get_latest_multi_async(
|
| config_sets, path, hashes_only).get_result()
|
| for config in configs:
|
|
|