Mirror fix on transfer repo
This commit is contained in:
		
							parent
							
								
									977779cdcf
								
							
						
					
					
						commit
						ad52b2d791
					
				|  | @ -350,10 +350,18 @@ 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: newUser.Name, | ||||
| 		RepoName:  repo.Name, | ||||
| 		IsPrivate: repo.IsPrivate}); err != nil { | ||||
| 	action := &Action{ | ||||
| 		ActUserId:    u.Id, | ||||
| 		ActUserName:  u.Name, | ||||
| 		ActEmail:     u.Email, | ||||
| 		OpType:       TRANSFER_REPO, | ||||
| 		RepoId:       repo.Id, | ||||
| 		RepoUserName: newUser.Name, | ||||
| 		RepoName:     repo.Name, | ||||
| 		IsPrivate:    repo.IsPrivate, | ||||
| 		Content:      path.Join(repo.Owner.LowerName, repo.LowerName), | ||||
| 	} | ||||
| 	if err = NotifyWatchers(action); err != nil { | ||||
| 		log.Error(4, "NotifyWatchers: %d/%s", u.Id, repo.Name) | ||||
| 		return err | ||||
| 	} | ||||
|  |  | |||
|  | @ -669,22 +669,23 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error { | |||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	curRepoLink := path.Join(u.LowerName, repo.LowerName) | ||||
| 	owner := repo.Owner | ||||
| 	oldRepoLink := path.Join(owner.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 { | ||||
| 	if owner.IsOrganization() { | ||||
| 		if _, err = sess.Where("repo_name=?", oldRepoLink).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). | ||||
| 		if _, err = sess.Where("repo_name=?", oldRepoLink).And("user_name=?", owner.LowerName). | ||||
| 			Update(&Access{UserName: newUser.LowerName}); err != nil { | ||||
| 			sess.Rollback() | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if _, err = sess.Where("repo_name=?", curRepoLink). | ||||
| 	if _, err = sess.Where("repo_name=?", oldRepoLink). | ||||
| 		Update(&Access{RepoName: path.Join(newUser.LowerName, repo.LowerName)}); err != nil { | ||||
| 		sess.Rollback() | ||||
| 		return err | ||||
|  | @ -703,7 +704,7 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error { | |||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	if _, err = sess.Exec("UPDATE `user` SET num_repos = num_repos - 1 WHERE id = ?", u.Id); err != nil { | ||||
| 	if _, err = sess.Exec("UPDATE `user` SET num_repos = num_repos - 1 WHERE id = ?", owner.Id); err != nil { | ||||
| 		sess.Rollback() | ||||
| 		return err | ||||
| 	} | ||||
|  | @ -758,7 +759,7 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error { | |||
| 	} | ||||
| 
 | ||||
| 	// Change repository directory name.
 | ||||
| 	if err = os.Rename(RepoPath(u.Name, repo.Name), RepoPath(newUser.Name, repo.Name)); err != nil { | ||||
| 	if err = os.Rename(RepoPath(owner.Name, repo.Name), RepoPath(newUser.Name, repo.Name)); err != nil { | ||||
| 		sess.Rollback() | ||||
| 		return err | ||||
| 	} | ||||
|  | @ -767,14 +768,8 @@ func TransferOwnership(u *User, newOwner string, repo *Repository) error { | |||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	// Add watch of new owner to repository.
 | ||||
| 	if !newUser.IsOrganization() { | ||||
| 		if err = WatchRepo(newUser.Id, repo.Id, true); err != nil { | ||||
| 			log.Error(4, "WatchRepo", err) | ||||
| 		} | ||||
| 	} | ||||
| 	if err = WatchRepo(u.Id, repo.Id, false); err != nil { | ||||
| 		log.Error(4, "WatchRepo2", err) | ||||
| 	if err = WatchRepo(newUser.Id, repo.Id, true); err != nil { | ||||
| 		log.Error(4, "WatchRepo", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if err = TransferRepoAction(u, newUser, repo); err != nil { | ||||
|  |  | |||
|  | @ -112,7 +112,7 @@ func SettingsPost(ctx *middleware.Context, form auth.RepoSettingForm) { | |||
| 		} else if !isExist { | ||||
| 			ctx.RenderWithErr(ctx.Tr("form.enterred_invalid_owner_name"), SETTINGS_OPTIONS, nil) | ||||
| 			return | ||||
| 		} else if err = models.TransferOwnership(ctx.Repo.Owner, newOwner, ctx.Repo.Repository); err != nil { | ||||
| 		} else if err = models.TransferOwnership(ctx.User, newOwner, ctx.Repo.Repository); err != nil { | ||||
| 			if err == models.ErrRepoAlreadyExist { | ||||
| 				ctx.RenderWithErr(ctx.Tr("repo.settings.new_owner_has_same_repo"), SETTINGS_OPTIONS, nil) | ||||
| 			} else { | ||||
|  |  | |||
|  | @ -5,48 +5,7 @@ | |||
|     <div id="dashboard" class="container"> | ||||
|         {{template "ng/base/alert" .}} | ||||
|         <div id="dashboard-news" class="left grid-2-3"> | ||||
|             {{range .Feeds}} | ||||
|             <div class="news clear"> | ||||
|                 <div class="avatar left"> | ||||
|                     <img class="avatar-30" src="{{AvatarLink .GetActEmail}}" alt=""> | ||||
|                 </div> | ||||
|                 <div class="content left {{if eq .GetOpType 5}}push-news{{end}} grid-4-5"> | ||||
|                     <p class="text-bold"> | ||||
|                         <a href="{{AppSubUrl}}/{{.GetActUserName}}">{{.GetActUserName}}</a> | ||||
|                         {{if eq .GetOpType 1}} | ||||
|                         {{$.i18n.Tr "action.create_repo" AppSubUrl .GetRepoLink .GetRepoLink | Str2html}} | ||||
|                         {{else if eq .GetOpType 5}} | ||||
|                         {{$.i18n.Tr "action.commit_repo" AppSubUrl .GetRepoLink .GetBranch .GetBranch AppSubUrl .GetRepoLink .GetRepoLink | Str2html}} | ||||
|                         {{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}} | ||||
|                         {{end}} | ||||
|                     </p> | ||||
|                     {{if eq .GetOpType 5}} | ||||
|                     <div class="news-content content"> | ||||
|                         <ul class="list-no-style"> | ||||
|                             {{ $push := ActionContent2Commits .}} | ||||
|                             {{ $repoLink := .GetRepoLink}} | ||||
|                             {{range $push.Commits}} | ||||
|                             <li><img class="avatar-16" src="{{AvatarLink .AuthorEmail}}?s=16"> <a href="{{AppSubUrl}}/{{$repoLink}}/commit/{{.Sha1}}">{{ShortSha .Sha1}}</a> <span class="text-truncate grid-4-5">{{.Message}}</span></li> | ||||
|                             {{end}} | ||||
|                         </ul> | ||||
|                     </div> | ||||
|                     {{else if eq .GetOpType 6}} | ||||
|                     <p class="news-content comment-news">{{index .GetIssueInfos 1}}</p> | ||||
|                     {{else if eq .GetOpType 10}} | ||||
|                     <p class="news-content comment-news">{{index .GetIssueInfos 1}}</p> | ||||
|                     {{end}} | ||||
|                     <p class="news-time text-italic">{{TimeSince .GetCreate $.i18n.Lang}}</p> | ||||
|                 </div> | ||||
|                 <i class="mega-octicon octicon-{{ActionIcon .GetOpType}} right"></i> | ||||
|             </div> | ||||
|             {{end}} | ||||
|             {{template "user/dashboard/feeds" .}} | ||||
|         </div> | ||||
|         <div class="right grid-1-3" id="dashboard-sidebar"> | ||||
|             <ul id="dashboard-sidebar-menu" class="menu menu-line"> | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ | |||
|             {{ $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}} | ||||
|             {{$.i18n.Tr "action.transfer_repo" .GetContent 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 New Issue