diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2014-02-25 15:11:54 +0800 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2014-02-25 15:11:54 +0800 |
commit | f7826d4ed780c29058a0825a9d821523980777de (patch) | |
tree | 161b43aca41ebbb12039f47967fb275eb6102491 /models | |
parent | 3b8657d9177ad2f3dca5ecf0e1f8f62c20e776f7 (diff) | |
download | gitea-f7826d4ed780c29058a0825a9d821523980777de.tar.gz gitea-f7826d4ed780c29058a0825a9d821523980777de.zip |
create repository from web
Diffstat (limited to 'models')
-rw-r--r-- | models/repo.go | 17 | ||||
-rw-r--r-- | models/user.go | 12 |
2 files changed, 27 insertions, 2 deletions
diff --git a/models/repo.go b/models/repo.go index 6a0071ef9f..70e2673d34 100644 --- a/models/repo.go +++ b/models/repo.go @@ -46,12 +46,12 @@ func IsRepositoryExist(user *User, reposName string) (bool, error) { // func CreateRepository(user *User, reposName string) (*Repo, error) { f := RepoPath(user.Name, reposName) - _, err := git.InitRepository(f, false) + _, err := git.InitRepository(f, true) if err != nil { return nil, err } - repo := Repo{OwnerId: user.Id, Name: reposName} + repo := Repo{OwnerId: user.Id, Name: reposName, LowerName: strings.ToLower(reposName)} session := orm.NewSession() defer session.Close() session.Begin() @@ -64,6 +64,19 @@ func CreateRepository(user *User, reposName string) (*Repo, error) { session.Rollback() return nil, err } + access := Access{UserName: user.Name, + RepoName: repo.Name, + Mode: AU_WRITABLE, + } + _, err = session.Insert(&access) + if err != nil { + err2 := os.RemoveAll(f) + if err2 != nil { + log.Error("delete repo directory %s/%s failed", user.Name, reposName) + } + session.Rollback() + return nil, err + } _, err = session.Exec("update user set num_repos = num_repos + 1 where id = ?", user.Id) if err != nil { err2 := os.RemoveAll(f) diff --git a/models/user.go b/models/user.go index 4618273b3d..c5208f0313 100644 --- a/models/user.go +++ b/models/user.go @@ -161,6 +161,18 @@ func GetUserByKeyId(keyId int64) (*User, error) { return user, nil } +func GetUserById(id int64) (*User, error) { + user := new(User) + has, err := orm.Id(id).Get(user) + if err != nil { + return nil, err + } + if !has { + return nil, ErrUserNotExist + } + return user, nil +} + // LoginUserPlain validates user by raw user name and password. func LoginUserPlain(name, passwd string) (*User, error) { user := User{Name: name, Passwd: passwd} |