Fix bug on transfer repo
This commit is contained in:
		
							parent
							
								
									57d48fb6a2
								
							
						
					
					
						commit
						f69761563b
					
				
					 10 changed files with 45 additions and 21 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -39,3 +39,6 @@ __pycache__ | |||
| output* | ||||
| config.codekit | ||||
| .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) | ||||
| 	}) | ||||
| 
 | ||||
| 	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") | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 = 之前 | ||||
|  |  | |||
							
								
								
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								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()) | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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.
 | ||||
|  |  | |||
|  | @ -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 { | ||||
|  |  | |||
|  | @ -1 +1 @@ | |||
| 0.5.4.0924 Beta | ||||
| 0.5.4.0925 Beta | ||||
|  | @ -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}} | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue