From aab3dfee4e1f2814f15d418b3beb6ed63cfdc866 Mon Sep 17 00:00:00 2001 From: Tan Jiang Date: Fri, 18 Nov 2016 19:13:23 +0800 Subject: [PATCH 1/3] fix GetIsInsecure --- src/common/api/base.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/api/base.go b/src/common/api/base.go index 94375db43..53d916849 100644 --- a/src/common/api/base.go +++ b/src/common/api/base.go @@ -213,5 +213,5 @@ func (b *BaseAPI) GetPaginationParams() (page, pageSize int64) { // GetIsInsecure ... func GetIsInsecure() bool { - return config.VerifyRemoteCert() + return !config.VerifyRemoteCert() } From 4a603f09138233044862b0f801a1e889aa8d7e66 Mon Sep 17 00:00:00 2001 From: Tan Jiang Date: Fri, 18 Nov 2016 19:32:35 +0800 Subject: [PATCH 2/3] add a test case --- src/common/api/base_test.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/common/api/base_test.go diff --git a/src/common/api/base_test.go b/src/common/api/base_test.go new file mode 100644 index 000000000..df8486ebf --- /dev/null +++ b/src/common/api/base_test.go @@ -0,0 +1,33 @@ +/* + Copyright (c) 2016 VMware, Inc. All Rights Reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +package api + +import ( + "github.com/vmware/harbor/src/common/config" + "os" + "testing" +) + +func TestGetIsInsecure(t *testing.T) { + os.Setenv("VERIFY_REMOTE_CERT", "off") + err := config.Reload() + if err != nil { + t.Errorf("Failed to load config, error: %v", err) + } + if !GetIsInsecure() { + t.Errorf("GetIsInsecure() should be true when VERIFY_REMOTE_CERT is off, in fact: false") + } + os.Unsetenv("VERIFY_REMOTE_CERT") +} From 418d9bc2b63407f5ead420606220e9180ed65be6 Mon Sep 17 00:00:00 2001 From: Tan Jiang Date: Fri, 18 Nov 2016 19:38:36 +0800 Subject: [PATCH 3/3] handle the no session scenario in project controller --- src/ui/controllers/project.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ui/controllers/project.go b/src/ui/controllers/project.go index 165167402..71c7242b0 100644 --- a/src/ui/controllers/project.go +++ b/src/ui/controllers/project.go @@ -13,11 +13,15 @@ type ProjectController struct { // Get renders project page func (pc *ProjectController) Get() { + var err error + isSysAdmin := false uid := pc.GetSession("userId") - isSysAdmin, err := dao.IsAdminRole(uid) - if err != nil { - log.Warningf("Error in checking Admin Role for user, id: %d, error: %v", uid, err) - isSysAdmin = false + if uid != nil { + isSysAdmin, err = dao.IsAdminRole(uid) + if err != nil { + log.Warningf("Error in checking Admin Role for user, id: %d, error: %v", uid, err) + isSysAdmin = false + } } pc.Data["CanCreate"] = !config.OnlyAdminCreateProject() || isSysAdmin pc.Forward("page_title_project", "project.htm")