From 02c71e9b79a65cb6ac1411154e3c93aee6905232 Mon Sep 17 00:00:00 2001 From: hongming Date: Thu, 30 Jul 2020 00:23:29 +0800 Subject: [PATCH] fix request info resource scope Signed-off-by: hongming --- pkg/apiserver/request/requestinfo.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/pkg/apiserver/request/requestinfo.go b/pkg/apiserver/request/requestinfo.go index e5139341f..00f224014 100644 --- a/pkg/apiserver/request/requestinfo.go +++ b/pkg/apiserver/request/requestinfo.go @@ -265,15 +265,6 @@ func (r *RequestInfoFactory) NewRequestInfo(req *http.Request) (*RequestInfo, er requestInfo.Verb = "list" } - // URL forms: /api/v1/watch/namespaces?labelSelector=kubesphere.io/workspace=system-workspace - if requestInfo.Verb == "watch" { - selector := req.URL.Query().Get("labelSelector") - if strings.HasPrefix(selector, workspaceSelectorPrefix) { - workspace := strings.TrimPrefix(selector, workspaceSelectorPrefix) - requestInfo.Workspace = workspace - } - } - if opts.FieldSelector != nil { if name, ok := opts.FieldSelector.RequiresExactMatch("metadata.name"); ok { if len(path.IsValidPathSegmentName(name)) == 0 { @@ -282,6 +273,17 @@ func (r *RequestInfoFactory) NewRequestInfo(req *http.Request) (*RequestInfo, er } } } + + // URL forms: /api/v1/watch/namespaces?labelSelector=kubesphere.io/workspace=system-workspace + if requestInfo.Verb == "watch" { + selector := req.URL.Query().Get("labelSelector") + if strings.HasPrefix(selector, workspaceSelectorPrefix) { + workspace := strings.TrimPrefix(selector, workspaceSelectorPrefix) + requestInfo.Workspace = workspace + requestInfo.ResourceScope = WorkspaceScope + } + } + // if there's no name on the request and we thought it was a delete before, then the actual verb is deletecollection if len(requestInfo.Name) == 0 && requestInfo.Verb == "delete" { requestInfo.Verb = "deletecollection"