From 0e54c4df875af10dc7a5d99bed2ffb8954cb74d7 Mon Sep 17 00:00:00 2001 From: hongming Date: Fri, 1 Jun 2018 23:58:48 +0800 Subject: [PATCH] bug fixed --- pkg/apis/v1alpha/iam/iam_handler.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/apis/v1alpha/iam/iam_handler.go b/pkg/apis/v1alpha/iam/iam_handler.go index 2705c1d37..6063fe159 100644 --- a/pkg/apis/v1alpha/iam/iam_handler.go +++ b/pkg/apis/v1alpha/iam/iam_handler.go @@ -25,6 +25,7 @@ import ( "strings" "kubesphere.io/kubesphere/pkg/constants" "k8s.io/api/rbac/v1" + "k8s.io/kubernetes/pkg/util/slice" ) func Register(ws *restful.WebService) { @@ -86,7 +87,9 @@ func roleUsersHandler(req *restful.Request, resp *restful.Response) { for _, roleBinding := range roleBindings { for _, subject := range roleBinding.Subjects { - if subject.Kind == v1.UserKind { + if subject.Kind == v1.UserKind && + !strings.HasPrefix(subject.Name, "system") && + !slice.ContainsString(users, subject.Name, nil) { users = append(users, subject.Name) } } @@ -110,7 +113,8 @@ func clusterRoleUsersHandler(req *restful.Request, resp *restful.Response) { for _, roleBinding := range roleBindings { for _, subject := range roleBinding.Subjects { - if subject.Kind == v1.UserKind && !strings.HasPrefix(subject.Name, "system") { + if subject.Kind == v1.UserKind && !strings.HasPrefix(subject.Name, "system") && + !slice.ContainsString(users, subject.Name, nil) { users = append(users, subject.Name) } }