From 1223d37915cb351e0cde995edb95609204d4b0c5 Mon Sep 17 00:00:00 2001
From: kunw <kunw@vmware.com>
Date: Mon, 11 Apr 2016 16:43:13 +0800
Subject: [PATCH] add some missing files.

---
 .gitignore |  1 +
 ui/main.go | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 ui/main.go

diff --git a/.gitignore b/.gitignore
index 5a3024f87..afe16e226 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ Deploy/config/ui/app.conf
 Deploy/config/db/env
 Deploy/harbor.cfg
 .DS_Store
+ui/ui
diff --git a/ui/main.go b/ui/main.go
new file mode 100644
index 000000000..573815e83
--- /dev/null
+++ b/ui/main.go
@@ -0,0 +1,75 @@
+/*
+   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 main
+
+import (
+	"fmt"
+
+	log "github.com/vmware/harbor/utils/log"
+
+	"os"
+
+	_ "github.com/vmware/harbor/auth/db"
+	_ "github.com/vmware/harbor/auth/ldap"
+	"github.com/vmware/harbor/dao"
+	"github.com/vmware/harbor/models"
+
+	"github.com/astaxie/beego"
+)
+
+const (
+	adminUserID = 1
+)
+
+func updateInitPassword(userID int, password string) error {
+	queryUser := models.User{UserID: userID}
+	user, err := dao.GetUser(queryUser)
+	if err != nil {
+		return fmt.Errorf("Failed to get user, userID: %d %v", userID, err)
+	}
+	if user == nil {
+		return fmt.Errorf("User id: %d does not exist.", userID)
+	}
+	if user.Salt == "" {
+		salt, err := dao.GenerateRandomString()
+		if err != nil {
+			return fmt.Errorf("Failed to generate salt for encrypting password, %v", err)
+		}
+
+		user.Salt = salt
+		user.Password = password
+		err = dao.ChangeUserPassword(*user)
+		if err != nil {
+			return fmt.Errorf("Failed to update user encrypted password, userID: %d, err: %v", userID, err)
+		}
+
+		log.Infof("User id: %d updated its encypted password successfully.", userID)
+	} else {
+		log.Infof("User id: %d already has its encrypted password.", userID)
+	}
+	return nil
+}
+
+func main() {
+
+	beego.BConfig.WebConfig.Session.SessionOn = true
+	dao.InitDB()
+	if err := updateInitPassword(adminUserID, os.Getenv("HARBOR_ADMIN_PASSWORD")); err != nil {
+		log.Error(err)
+	}
+	initRouters()
+	beego.Run()
+}