mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
add ssh supports(unfinished)
This commit is contained in:
@@ -17,7 +17,7 @@ import (
|
||||
|
||||
var (
|
||||
orm *xorm.Engine
|
||||
repoRootPath string
|
||||
RepoRootPath string
|
||||
)
|
||||
|
||||
type Members struct {
|
||||
@@ -71,5 +71,9 @@ func setEngine() {
|
||||
|
||||
func init() {
|
||||
setEngine()
|
||||
orm.Sync(new(User))
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
@@ -29,15 +29,22 @@ type Repo struct {
|
||||
// check if repository is exist
|
||||
func IsRepositoryExist(user *User, reposName string) (bool, error) {
|
||||
repo := Repo{OwnerId: user.Id}
|
||||
// TODO: get repository by nocase name
|
||||
return orm.Where("lower_name = ?", strings.ToLower(reposName)).Get(&repo)
|
||||
has, err := orm.Where("lower_name = ?", strings.ToLower(reposName)).Get(&repo)
|
||||
if err != nil {
|
||||
return has, err
|
||||
}
|
||||
s, err := os.Stat(filepath.Join(RepoRootPath, user.Name, reposName))
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
return s.IsDir(), nil
|
||||
}
|
||||
|
||||
//
|
||||
// create a repository for a user or orgnaziation
|
||||
//
|
||||
func CreateRepository(user *User, reposName string) (*Repo, error) {
|
||||
p := filepath.Join(repoRootPath, user.Name)
|
||||
p := filepath.Join(RepoRootPath, user.Name)
|
||||
os.MkdirAll(p, os.ModePerm)
|
||||
f := filepath.Join(p, reposName+".git")
|
||||
_, err := git.InitRepository(f, false)
|
||||
@@ -108,7 +115,7 @@ func DeleteRepository(user *User, reposName string) (err error) {
|
||||
session.Rollback()
|
||||
return err
|
||||
}
|
||||
if err = os.RemoveAll(filepath.Join(repoRootPath, user.Name, reposName+".git")); err != nil {
|
||||
if err = os.RemoveAll(filepath.Join(RepoRootPath, user.Name, reposName+".git")); err != nil {
|
||||
// TODO: log and delete manully
|
||||
return err
|
||||
}
|
||||
|
@@ -123,6 +123,19 @@ func (user *User) EncodePasswd() error {
|
||||
return err
|
||||
}
|
||||
|
||||
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)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !has {
|
||||
err = errors.New("not exist key owner")
|
||||
return nil, err
|
||||
}
|
||||
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}
|
||||
|
Reference in New Issue
Block a user