Fix bug on transfer repo
This commit is contained in:
		
							parent
							
								
									57d48fb6a2
								
							
						
					
					
						commit
						f69761563b
					
				| 
						 | 
					@ -39,3 +39,6 @@ __pycache__
 | 
				
			||||||
output*
 | 
					output*
 | 
				
			||||||
config.codekit
 | 
					config.codekit
 | 
				
			||||||
.brackets.json
 | 
					.brackets.json
 | 
				
			||||||
 | 
					docker/fig.yml
 | 
				
			||||||
 | 
					docker/docker/Dockerfile
 | 
				
			||||||
 | 
					docker/docker/init_gogs.sh
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -190,7 +190,8 @@ func runWeb(*cli.Context) {
 | 
				
			||||||
		r.Get("/logout", user.SignOut)
 | 
							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.
 | 
						// Gravatar service.
 | 
				
			||||||
	avt := avatar.CacheServer("public/img/avatar/", "public/img/avatar_default.jpg")
 | 
						avt := avatar.CacheServer("public/img/avatar/", "public/img/avatar_default.jpg")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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>
 | 
					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>
 | 
					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>
 | 
					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]
 | 
					[tool]
 | 
				
			||||||
ago = ago
 | 
					ago = ago
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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>
 | 
					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>
 | 
					create_issue = 创建了工单 <a href="%s/%s/issues/%s">%s#%s</a>
 | 
				
			||||||
comment_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]
 | 
					[tool]
 | 
				
			||||||
ago = 之前
 | 
					ago = 之前
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								gogs.go
								
								
								
								
							
							
						
						
									
										2
									
								
								gogs.go
								
								
								
								
							| 
						 | 
					@ -17,7 +17,7 @@ import (
 | 
				
			||||||
	"github.com/gogits/gogs/modules/setting"
 | 
						"github.com/gogits/gogs/modules/setting"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const APP_VER = "0.5.4.0924 Beta"
 | 
					const APP_VER = "0.5.4.0925 Beta"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	runtime.GOMAXPROCS(runtime.NumCPU())
 | 
						runtime.GOMAXPROCS(runtime.NumCPU())
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -351,8 +351,8 @@ func NewRepoAction(u *User, repo *Repository) (err error) {
 | 
				
			||||||
// TransferRepoAction adds new action for transfering repository.
 | 
					// TransferRepoAction adds new action for transfering repository.
 | 
				
			||||||
func TransferRepoAction(u, newUser *User, repo *Repository) (err error) {
 | 
					func TransferRepoAction(u, newUser *User, repo *Repository) (err error) {
 | 
				
			||||||
	if err = NotifyWatchers(&Action{ActUserId: u.Id, ActUserName: u.Name, ActEmail: u.Email,
 | 
						if err = NotifyWatchers(&Action{ActUserId: u.Id, ActUserName: u.Name, ActEmail: u.Email,
 | 
				
			||||||
		OpType: TRANSFER_REPO, RepoId: repo.Id, RepoUserName: repo.Owner.Name,
 | 
							OpType: TRANSFER_REPO, RepoId: repo.Id, RepoUserName: newUser.Name,
 | 
				
			||||||
		RepoName: repo.Name, Content: newUser.Name,
 | 
							RepoName:  repo.Name,
 | 
				
			||||||
		IsPrivate: repo.IsPrivate}); err != nil {
 | 
							IsPrivate: repo.IsPrivate}); err != nil {
 | 
				
			||||||
		log.Error(4, "NotifyWatchers: %d/%s", u.Id, repo.Name)
 | 
							log.Error(4, "NotifyWatchers: %d/%s", u.Id, repo.Name)
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -669,15 +669,23 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if _, err = sess.Where("repo_name = ?", u.LowerName+"/"+repo.LowerName).
 | 
						curRepoLink := path.Join(u.LowerName, repo.LowerName)
 | 
				
			||||||
		And("user_name = ?", u.LowerName).Update(&Access{UserName: newUser.LowerName}); err != nil {
 | 
						// Delete all access first if current owner is an organization.
 | 
				
			||||||
		sess.Rollback()
 | 
						if u.IsOrganization() {
 | 
				
			||||||
		return err
 | 
							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{
 | 
						if _, err = sess.Where("repo_name=?", curRepoLink).
 | 
				
			||||||
		RepoName: newUser.LowerName + "/" + repo.LowerName,
 | 
							Update(&Access{RepoName: path.Join(newUser.LowerName, repo.LowerName)}); err != nil {
 | 
				
			||||||
	}); err != nil {
 | 
					 | 
				
			||||||
		sess.Rollback()
 | 
							sess.Rollback()
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -700,12 +708,12 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mode := WRITABLE
 | 
				
			||||||
 | 
						if repo.IsMirror {
 | 
				
			||||||
 | 
							mode = READABLE
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	// New owner is organization.
 | 
						// New owner is organization.
 | 
				
			||||||
	if newUser.IsOrganization() {
 | 
						if newUser.IsOrganization() {
 | 
				
			||||||
		mode := WRITABLE
 | 
					 | 
				
			||||||
		if repo.IsMirror {
 | 
					 | 
				
			||||||
			mode = READABLE
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		access := &Access{
 | 
							access := &Access{
 | 
				
			||||||
			RepoName: path.Join(newUser.LowerName, repo.LowerName),
 | 
								RepoName: path.Join(newUser.LowerName, repo.LowerName),
 | 
				
			||||||
			Mode:     mode,
 | 
								Mode:     mode,
 | 
				
			||||||
| 
						 | 
					@ -737,6 +745,16 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error {
 | 
				
			||||||
			sess.Rollback()
 | 
								sess.Rollback()
 | 
				
			||||||
			return err
 | 
								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.
 | 
						// Change repository directory name.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -149,14 +149,12 @@ type Actioner interface {
 | 
				
			||||||
// and returns a icon class name.
 | 
					// and returns a icon class name.
 | 
				
			||||||
func ActionIcon(opType int) string {
 | 
					func ActionIcon(opType int) string {
 | 
				
			||||||
	switch opType {
 | 
						switch opType {
 | 
				
			||||||
	case 1: // Create repository.
 | 
						case 1, 8: // Create, transfer repository.
 | 
				
			||||||
		return "repo"
 | 
							return "repo"
 | 
				
			||||||
	case 5, 9: // Commit repository.
 | 
						case 5, 9: // Commit repository.
 | 
				
			||||||
		return "git-commit"
 | 
							return "git-commit"
 | 
				
			||||||
	case 6: // Create issue.
 | 
						case 6: // Create issue.
 | 
				
			||||||
		return "issue-opened"
 | 
							return "issue-opened"
 | 
				
			||||||
	case 8: // Transfer repository.
 | 
					 | 
				
			||||||
		return "share"
 | 
					 | 
				
			||||||
	case 10: // Comment issue.
 | 
						case 10: // Comment issue.
 | 
				
			||||||
		return "comment"
 | 
							return "comment"
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
| 
						 | 
					@ -164,7 +162,7 @@ func ActionIcon(opType int) string {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: Legacy
 | 
					// FIXME: Legacy
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
	TPL_CREATE_REPO    = `<a href="%s/user/%s">%s</a> created repository <a href="%s">%s</a>`
 | 
						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`
 | 
						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
 | 
						return push
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: Legacy
 | 
					// FIXME: Legacy
 | 
				
			||||||
// ActionDesc accepts int that represents action operation type
 | 
					// ActionDesc accepts int that represents action operation type
 | 
				
			||||||
// and returns the description.
 | 
					// and returns the description.
 | 
				
			||||||
func ActionDesc(act Actioner) string {
 | 
					func ActionDesc(act Actioner) string {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1 +1 @@
 | 
				
			||||||
0.5.4.0924 Beta
 | 
					0.5.4.0925 Beta
 | 
				
			||||||
| 
						 | 
					@ -20,6 +20,8 @@
 | 
				
			||||||
                        {{else if eq .GetOpType 6}}
 | 
					                        {{else if eq .GetOpType 6}}
 | 
				
			||||||
                        {{ $index := index .GetIssueInfos 0}}
 | 
					                        {{ $index := index .GetIssueInfos 0}}
 | 
				
			||||||
                        {{$.i18n.Tr "action.create_issue" AppSubUrl .GetRepoLink $index .GetRepoLink $index | Str2html}}
 | 
					                        {{$.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}}
 | 
					                        {{else if eq .GetOpType 10}}
 | 
				
			||||||
                        {{ $index := index .GetIssueInfos 0}}
 | 
					                        {{ $index := index .GetIssueInfos 0}}
 | 
				
			||||||
                        {{$.i18n.Tr "action.comment_issue" AppSubUrl .GetRepoLink $index .GetRepoLink $index | Str2html}}
 | 
					                        {{$.i18n.Tr "action.comment_issue" AppSubUrl .GetRepoLink $index .GetRepoLink $index | Str2html}}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue