summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknwon <joe2010xtmf@163.com>2014-09-25 16:36:19 -0400
committerUnknwon <joe2010xtmf@163.com>2014-09-25 16:36:19 -0400
commitf69761563b7a4fe9ace2a1643391cbcf9b92b372 (patch)
tree23d5bf522788895c4659c55f1e8275d9b9ab9e0b
parent57d48fb6a2fb34f5da1aa702c33bc9c268e29f71 (diff)
downloadgitea-f69761563b7a4fe9ace2a1643391cbcf9b92b372.tar.gz
gitea-f69761563b7a4fe9ace2a1643391cbcf9b92b372.zip
Fix bug on transfer repo
-rw-r--r--.gitignore3
-rw-r--r--cmd/web.go3
-rw-r--r--conf/locale/locale_en-US.ini1
-rw-r--r--conf/locale/locale_zh-CN.ini1
-rw-r--r--gogs.go2
-rw-r--r--models/action.go4
-rw-r--r--models/repo.go40
-rw-r--r--modules/base/template.go8
-rw-r--r--templates/.VERSION2
-rw-r--r--templates/user/dashboard/dashboard.tmpl2
10 files changed, 45 insertions, 21 deletions
diff --git a/.gitignore b/.gitignore
index 57d1493b06..3f7608d7ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,3 +39,6 @@ __pycache__
output*
config.codekit
.brackets.json
+docker/fig.yml
+docker/docker/Dockerfile
+docker/docker/init_gogs.sh
diff --git a/cmd/web.go b/cmd/web.go
index 2376fd2126..8a87f86bb1 100644
--- a/cmd/web.go
+++ b/cmd/web.go
@@ -190,7 +190,8 @@ func runWeb(*cli.Context) {
r.Get("/logout", user.SignOut)
})
- m.Get("/user/:username", ignSignIn, user.Profile) // TODO: Legacy
+ // FIXME: Legacy
+ m.Get("/user/:username", ignSignIn, user.Profile)
// Gravatar service.
avt := avatar.CacheServer("public/img/avatar/", "public/img/avatar_default.jpg")
diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini
index 15d8028c4f..13be2fbd00 100644
--- a/conf/locale/locale_en-US.ini
+++ b/conf/locale/locale_en-US.ini
@@ -565,6 +565,7 @@ create_repo = created repository <a href="%s/%s">%s</a>
commit_repo = pushed to <a href="%s/%s/src/%s">%s</a> at <a href="%s/%s">%s</a>
create_issue = opened issue <a href="%s/%s/issues/%s">%s#%s</a>
comment_issue = commented on issue <a href="%s/%s/issues/%s">%s#%s</a>
+transfer_repo = transfered repository <code>%s</code> to <a href="%s%s">%s</a>
[tool]
ago = ago
diff --git a/conf/locale/locale_zh-CN.ini b/conf/locale/locale_zh-CN.ini
index e479f5cdf7..7d65abd30b 100644
--- a/conf/locale/locale_zh-CN.ini
+++ b/conf/locale/locale_zh-CN.ini
@@ -563,6 +563,7 @@ create_repo = 创建了仓库 <a href="%s/%s">%s</a>
commit_repo = 推送了 <a href="%s/%s/src/%s">%s</a> 分支的代码到 <a href="%s/%s">%s</a>
create_issue = 创建了工单 <a href="%s/%s/issues/%s">%s#%s</a>
comment_issue = 评论了工单 <a href="%s/%s/issues/%s">%s#%s</a>
+transfer_repo = 将仓库 <code>%s</code> 转移至 <a href="%s%s">%s</a>
[tool]
ago = 之前
diff --git a/gogs.go b/gogs.go
index 6956b9f50a..2f5b24176e 100644
--- a/gogs.go
+++ b/gogs.go
@@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)
-const APP_VER = "0.5.4.0924 Beta"
+const APP_VER = "0.5.4.0925 Beta"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
diff --git a/models/action.go b/models/action.go
index 18c956bda1..46500a9260 100644
--- a/models/action.go
+++ b/models/action.go
@@ -351,8 +351,8 @@ func NewRepoAction(u *User, repo *Repository) (err error) {
// TransferRepoAction adds new action for transfering repository.
func TransferRepoAction(u, newUser *User, repo *Repository) (err error) {
if err = NotifyWatchers(&Action{ActUserId: u.Id, ActUserName: u.Name, ActEmail: u.Email,
- OpType: TRANSFER_REPO, RepoId: repo.Id, RepoUserName: repo.Owner.Name,
- RepoName: repo.Name, Content: newUser.Name,
+ OpType: TRANSFER_REPO, RepoId: repo.Id, RepoUserName: newUser.Name,
+ RepoName: repo.Name,
IsPrivate: repo.IsPrivate}); err != nil {
log.Error(4, "NotifyWatchers: %d/%s", u.Id, repo.Name)
return err
diff --git a/models/repo.go b/models/repo.go
index c0a581b9a2..093e3b7f57 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -669,15 +669,23 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error {
return err
}
- if _, err = sess.Where("repo_name = ?", u.LowerName+"/"+repo.LowerName).
- And("user_name = ?", u.LowerName).Update(&Access{UserName: newUser.LowerName}); err != nil {
- sess.Rollback()
- return err
+ curRepoLink := path.Join(u.LowerName, repo.LowerName)
+ // Delete all access first if current owner is an organization.
+ if u.IsOrganization() {
+ if _, err = sess.Where("repo_name=?", curRepoLink).Delete(new(Access)); err != nil {
+ sess.Rollback()
+ return fmt.Errorf("fail to delete current accesses: %v", err)
+ }
+ } else {
+ if _, err = sess.Where("repo_name=?", curRepoLink).And("user_name=?", u.LowerName).
+ Update(&Access{UserName: newUser.LowerName}); err != nil {
+ sess.Rollback()
+ return err
+ }
}
- if _, err = sess.Where("repo_name = ?", u.LowerName+"/"+repo.LowerName).Update(&Access{
- RepoName: newUser.LowerName + "/" + repo.LowerName,
- }); err != nil {
+ if _, err = sess.Where("repo_name=?", curRepoLink).
+ Update(&Access{RepoName: path.Join(newUser.LowerName, repo.LowerName)}); err != nil {
sess.Rollback()
return err
}
@@ -700,12 +708,12 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error {
return err
}
+ mode := WRITABLE
+ if repo.IsMirror {
+ mode = READABLE
+ }
// New owner is organization.
if newUser.IsOrganization() {
- mode := WRITABLE
- if repo.IsMirror {
- mode = READABLE
- }
access := &Access{
RepoName: path.Join(newUser.LowerName, repo.LowerName),
Mode: mode,
@@ -737,6 +745,16 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error {
sess.Rollback()
return err
}
+ } else {
+ access := &Access{
+ RepoName: path.Join(newUser.LowerName, repo.LowerName),
+ UserName: newUser.LowerName,
+ Mode: mode,
+ }
+ if _, err = sess.Insert(access); err != nil {
+ sess.Rollback()
+ return err
+ }
}
// Change repository directory name.
diff --git a/modules/base/template.go b/modules/base/template.go
index ec41914937..b1c8c161d3 100644
--- a/modules/base/template.go
+++ b/modules/base/template.go
@@ -149,14 +149,12 @@ type Actioner interface {
// and returns a icon class name.
func ActionIcon(opType int) string {
switch opType {
- case 1: // Create repository.
+ case 1, 8: // Create, transfer repository.
return "repo"
case 5, 9: // Commit repository.
return "git-commit"
case 6: // Create issue.
return "issue-opened"
- case 8: // Transfer repository.
- return "share"
case 10: // Comment issue.
return "comment"
default:
@@ -164,7 +162,7 @@ func ActionIcon(opType int) string {
}
}
-// TODO: Legacy
+// FIXME: Legacy
const (
TPL_CREATE_REPO = `<a href="%s/user/%s">%s</a> created repository <a href="%s">%s</a>`
TPL_COMMIT_REPO = `<a href="%s/user/%s">%s</a> pushed to <a href="%s/src/%s">%s</a> at <a href="%s">%s</a>%s`
@@ -197,7 +195,7 @@ func ActionContent2Commits(act Actioner) *PushCommits {
return push
}
-// TODO: Legacy
+// FIXME: Legacy
// ActionDesc accepts int that represents action operation type
// and returns the description.
func ActionDesc(act Actioner) string {
diff --git a/templates/.VERSION b/templates/.VERSION
index 49d86b406c..87b06b8162 100644
--- a/templates/.VERSION
+++ b/templates/.VERSION
@@ -1 +1 @@
-0.5.4.0924 Beta \ No newline at end of file
+0.5.4.0925 Beta \ No newline at end of file
diff --git a/templates/user/dashboard/dashboard.tmpl b/templates/user/dashboard/dashboard.tmpl
index 0d728ef451..370173e473 100644
--- a/templates/user/dashboard/dashboard.tmpl
+++ b/templates/user/dashboard/dashboard.tmpl
@@ -20,6 +20,8 @@
{{else if eq .GetOpType 6}}
{{ $index := index .GetIssueInfos 0}}
{{$.i18n.Tr "action.create_issue" AppSubUrl .GetRepoLink $index .GetRepoLink $index | Str2html}}
+ {{else if eq .GetOpType 8}}
+ {{$.i18n.Tr "action.transfer_repo" .GetRepoName AppSubUrl .GetRepoLink .GetRepoLink | Str2html}}
{{else if eq .GetOpType 10}}
{{ $index := index .GetIssueInfos 0}}
{{$.i18n.Tr "action.comment_issue" AppSubUrl .GetRepoLink $index .GetRepoLink $index | Str2html}}