create repository from web
This commit is contained in:
parent
3b8657d917
commit
f7826d4ed7
5 changed files with 74 additions and 7 deletions
|
@ -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)
|
||||
|
|
|
@ -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}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue