diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2014-02-20 14:53:56 +0800 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2014-02-20 14:53:56 +0800 |
commit | b1b6def5bcb016d555e8078af404e8e2fa948748 (patch) | |
tree | a45ee3b4130597ba02cc5f45a6251ad16e7b3495 /models/user.go | |
parent | d4728fafafdd1d9a54d9337c7bddac086d58579c (diff) | |
download | gitea-b1b6def5bcb016d555e8078af404e8e2fa948748.tar.gz gitea-b1b6def5bcb016d555e8078af404e8e2fa948748.zip |
improved ssh supports
Diffstat (limited to 'models/user.go')
-rw-r--r-- | models/user.go | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/models/user.go b/models/user.go index 2527a19774..4618273b3d 100644 --- a/models/user.go +++ b/models/user.go @@ -7,12 +7,15 @@ package models import ( "errors" "fmt" + "os" + "path/filepath" "strings" "time" "github.com/dchest/scrypt" "github.com/gogits/gogs/utils" + "github.com/gogits/gogs/utils/log" ) // User types. @@ -96,10 +99,22 @@ func RegisterUser(user *User) (err error) { user.LowerName = strings.ToLower(user.Name) user.Avatar = utils.EncodeMd5(user.Email) - user.Updated = time.Now() user.EncodePasswd() _, err = orm.Insert(user) - return err + if err != nil { + return err + } + + err = os.MkdirAll(UserPath(user.Name), os.ModePerm) + if err != nil { + _, err2 := orm.Id(user.Id).Delete(&User{}) + if err2 != nil { + log.Error("create userpath %s failed and delete table record faild", + user.Name) + } + return err + } + return nil } // UpdateUser updates user's information. @@ -129,6 +144,10 @@ func (user *User) EncodePasswd() error { return err } +func UserPath(userName string) string { + return filepath.Join(RepoRootPath, userName) +} + func GetUserByKeyId(keyId int64) (*User, error) { user := new(User) has, err := orm.Sql("select a.* from user as a, public_key as b where a.id = b.owner_id and b.id=?", keyId).Get(user) |