summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorUnknwon <joe2010xtmf@163.com>2014-09-12 18:29:58 -0400
committerUnknwon <joe2010xtmf@163.com>2014-09-12 18:29:58 -0400
commitcfed11f092580ecf47cff43274c7cdd10d07bffd (patch)
tree0fc15282e980d9e65341a3ad009f982db0a10b5a /models
parentf67c59135fe258a9e839af7f839770b445d58732 (diff)
downloadgitea-cfed11f092580ecf47cff43274c7cdd10d07bffd.tar.gz
gitea-cfed11f092580ecf47cff43274c7cdd10d07bffd.zip
Bug: Transfer repository doesn't update the count
Diffstat (limited to 'models')
-rw-r--r--models/repo.go20
1 files changed, 11 insertions, 9 deletions
diff --git a/models/repo.go b/models/repo.go
index 341e7e47a1..25876872eb 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -644,12 +644,20 @@ func RepoPath(userName, repoName string) string {
}
// TransferOwnership transfers all corresponding setting from old user to new one.
-func TransferOwnership(u *User, newOwner string, repo *Repository) (err error) {
+func TransferOwnership(u *User, newOwner string, repo *Repository) error {
newUser, err := GetUserByName(newOwner)
if err != nil {
return err
}
+ // Check if new owner has repository with same name.
+ has, err := IsRepositoryExist(u, repo.Name)
+ if err != nil {
+ return err
+ } else if has {
+ return ErrRepoAlreadyExist
+ }
+
sess := x.NewSession()
defer sess.Close()
if err = sess.Begin(); err != nil {
@@ -717,12 +725,6 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) (err error) {
}
}
- if _, err = sess.Exec(
- "UPDATE `user` SET num_repos = num_repos + 1 WHERE id = ?", u.Id); err != nil {
- sess.Rollback()
- return err
- }
-
// Update owner team info and count.
t.RepoIds += "$" + com.ToStr(repo.Id) + "|"
t.NumRepos++
@@ -933,9 +935,9 @@ func GetRepositoryByRef(ref string) (*Repository, error) {
}
// GetRepositoryByName returns the repository by given name under user if exists.
-func GetRepositoryByName(userId int64, repoName string) (*Repository, error) {
+func GetRepositoryByName(uid int64, repoName string) (*Repository, error) {
repo := &Repository{
- OwnerId: userId,
+ OwnerId: uid,
LowerName: strings.ToLower(repoName),
}
has, err := x.Get(repo)