summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-02-19 13:04:31 -0500
committerUnknown <joe2010xtmf@163.com>2014-02-19 13:04:31 -0500
commit4b92a6c2df28054ad766bc262f308db9f6066596 (patch)
tree6768e8c09350111f9a8ec802a07d4fd75e663415
parentbe0ba9ea88aff8a658d0495d36accf944b74888d (diff)
downloadgitea-4b92a6c2df28054ad766bc262f308db9f6066596.tar.gz
gitea-4b92a6c2df28054ad766bc262f308db9f6066596.zip
Add code of delete user
-rw-r--r--bee.json4
-rw-r--r--conf/app.ini1
-rw-r--r--gogs.go21
-rw-r--r--models/models.go20
-rw-r--r--models/repo.go2
-rw-r--r--models/user.go12
6 files changed, 35 insertions, 25 deletions
diff --git a/bee.json b/bee.json
index ce39670600..40050dd581 100644
--- a/bee.json
+++ b/bee.json
@@ -14,6 +14,8 @@
"utils"
]
},
- "cmd_args": [],
+ "cmd_args": [
+ "web"
+ ],
"envs": []
} \ No newline at end of file
diff --git a/conf/app.ini b/conf/app.ini
index c8fba31d7c..c8953cc5f2 100644
--- a/conf/app.ini
+++ b/conf/app.ini
@@ -10,3 +10,4 @@ HOST =
NAME = gogs
USER = root
PASSWD =
+PASSWD_jiahua = root
diff --git a/gogs.go b/gogs.go
index a0ed460d90..63ad3318c7 100644
--- a/gogs.go
+++ b/gogs.go
@@ -1,16 +1,6 @@
-// Copyright 2013-2014 gogs authors.
-//
-// 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.
+// Copyright 2014 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
// gogs(Go Git Service) is a Go clone of Github.
package main
@@ -27,7 +17,7 @@ import (
// Test that go1.1 tag above is included in builds. main.go refers to this definition.
const go11tag = true
-const APP_VER = "0.0.0.0218"
+const APP_VER = "0.0.0.0219"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
@@ -35,7 +25,7 @@ func init() {
func main() {
app := cli.NewApp()
- app.Name = "gogs"
+ app.Name = "Gogs"
app.Usage = "Go Git Service"
app.Version = APP_VER
app.Commands = []cli.Command{
@@ -46,4 +36,5 @@ func main() {
cli.BoolFlag{"noterm", "disable color output"},
}...)
app.Run(os.Args)
+ println("wo cao???")
}
diff --git a/models/models.go b/models/models.go
index 55e441c530..8341f99616 100644
--- a/models/models.go
+++ b/models/models.go
@@ -7,6 +7,7 @@ package models
import (
"fmt"
"os"
+ "os/user"
_ "github.com/go-sql-driver/mysql"
"github.com/lunny/xorm"
@@ -47,18 +48,27 @@ func setEngine() {
dbUser := utils.Cfg.MustValue("database", "USER")
dbPwd := utils.Cfg.MustValue("database", "PASSWD")
- var err error
+ uname, err := user.Current()
+ if err != nil {
+ fmt.Printf("models.init -> fail to get user: %s\n", err)
+ os.Exit(2)
+ }
+
+ if uname.Username == "jiahuachen" {
+ dbPwd = utils.Cfg.MustValue("database", "PASSWD_jiahua")
+ }
+
switch dbType {
case "mysql":
orm, err = xorm.NewEngine("mysql", fmt.Sprintf("%v:%v@%v/%v?charset=utf8",
dbUser, dbPwd, dbHost, dbName))
default:
- log.Critical("Unknown database type: %s", dbType)
+ fmt.Printf("Unknown database type: %s\n", dbType)
os.Exit(2)
}
if err != nil {
- log.Critical("models.init -> Conntect database: %s", dbType)
+ fmt.Printf("models.init -> fail to conntect database: %s\n", dbType)
os.Exit(2)
}
@@ -73,7 +83,7 @@ func init() {
setEngine()
err := orm.Sync(new(User), new(PublicKey), new(Repo), new(Access))
if err != nil {
- log.Error("sync database struct error: %s", err)
- os.Exit(1)
+ fmt.Printf("sync database struct error: %s\n", err)
+ os.Exit(2)
}
}
diff --git a/models/repo.go b/models/repo.go
index 1eeeaa63ff..d48c9a9787 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -77,7 +77,7 @@ func CreateRepository(user *User, reposName string) (*Repo, error) {
return &repo, nil
}
-// list one user's repository
+// GetRepositories returns the list of repositories of given user.
func GetRepositories(user *User) ([]Repo, error) {
repos := make([]Repo, 0)
err := orm.Find(&repos, &Repo{OwnerId: user.Id})
diff --git a/models/user.go b/models/user.go
index 6cf7f67464..2527a19774 100644
--- a/models/user.go
+++ b/models/user.go
@@ -74,6 +74,7 @@ type Action struct {
}
var (
+ ErrUserOwnRepos = errors.New("User still have ownership of repositories")
ErrUserAlreadyExist = errors.New("User already exist")
ErrUserNotExist = errors.New("User does not exist")
)
@@ -95,7 +96,6 @@ func RegisterUser(user *User) (err error) {
user.LowerName = strings.ToLower(user.Name)
user.Avatar = utils.EncodeMd5(user.Email)
- user.Created = time.Now()
user.Updated = time.Now()
user.EncodePasswd()
_, err = orm.Insert(user)
@@ -110,8 +110,14 @@ func UpdateUser(user *User) (err error) {
// DeleteUser completely deletes everything of the user.
func DeleteUser(user *User) error {
- // TODO: check if has ownership of any repository.
- _, err := orm.Delete(user)
+ repos, err := GetRepositories(user)
+ if err != nil {
+ return errors.New("modesl.GetRepositories: " + err.Error())
+ } else if len(repos) > 0 {
+ return ErrUserOwnRepos
+ }
+
+ _, err = orm.Delete(user)
// TODO: delete and update follower information.
return err
}