better fork permission check
This commit is contained in:
		
							parent
							
								
									9db4acc62e
								
							
						
					
					
						commit
						e3bdfd51ff
					
				| 
						 | 
				
			
			@ -1421,6 +1421,13 @@ func IsStaring(uid, repoId int64) bool {
 | 
			
		|||
//  \___  / \____/|__|  |__|_ \
 | 
			
		||||
//      \/                   \/
 | 
			
		||||
 | 
			
		||||
// HasForkedRepo checks if given user has already forked a repository with given ID.
 | 
			
		||||
func HasForkedRepo(ownerID, repoID int64) (*Repository, bool) {
 | 
			
		||||
	repo := new(Repository)
 | 
			
		||||
	has, _ := x.Where("owner_id=? AND fork_id=?", ownerID, repoID).Get(repo)
 | 
			
		||||
	return repo, has
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ForkRepository(u *User, oldRepo *Repository, name, desc string) (_ *Repository, err error) {
 | 
			
		||||
	repo := &Repository{
 | 
			
		||||
		OwnerId:     u.Id,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -78,6 +78,12 @@ func ForkPost(ctx *middleware.Context, form auth.CreateRepoForm) {
 | 
			
		|||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	repo, has := models.HasForkedRepo(ctxUser.Id, forkRepo.Id)
 | 
			
		||||
	if has {
 | 
			
		||||
		ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + repo.Name)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Check ownership of organization.
 | 
			
		||||
	if ctxUser.IsOrganization() {
 | 
			
		||||
		if !ctxUser.IsOwnedBy(ctx.User.Id) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,11 +24,13 @@
 | 
			
		|||
	            		{{.SignedUser.Name}}
 | 
			
		||||
			        	</div>
 | 
			
		||||
			        	{{range .Orgs}}
 | 
			
		||||
			        	{{if .IsOwnedBy $.SignedUser.Id}}
 | 
			
		||||
			        	<div class="item" data-value="{{.Id}}">
 | 
			
		||||
				        	<img class="ui mini avatar image" src="{{.AvatarLink}}">
 | 
			
		||||
	            		{{.Name}}
 | 
			
		||||
			        	</div>
 | 
			
		||||
			        	{{end}}
 | 
			
		||||
			        	{{end}}
 | 
			
		||||
			        </div>
 | 
			
		||||
			      </div>
 | 
			
		||||
		      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue