mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-22 21:34:00 +01:00
Add code of delete user
This commit is contained in:
parent
be0ba9ea88
commit
4b92a6c2df
6 changed files with 35 additions and 25 deletions
4
bee.json
4
bee.json
|
@ -14,6 +14,8 @@
|
|||
"utils"
|
||||
]
|
||||
},
|
||||
"cmd_args": [],
|
||||
"cmd_args": [
|
||||
"web"
|
||||
],
|
||||
"envs": []
|
||||
}
|
|
@ -10,3 +10,4 @@ HOST =
|
|||
NAME = gogs
|
||||
USER = root
|
||||
PASSWD =
|
||||
PASSWD_jiahua = root
|
||||
|
|
21
gogs.go
21
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???")
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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})
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue