|  | @@ -35,9 +35,8 @@ func RepoAssignment(redirect bool, args ...bool) martini.Handler {
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		var (
 | 
	
		
			
				|  |  | -			user        *models.User
 | 
	
		
			
				|  |  | -			err         error
 | 
	
		
			
				|  |  | -			isTrueOwner bool
 | 
	
		
			
				|  |  | +			user *models.User
 | 
	
		
			
				|  |  | +			err  error
 | 
	
		
			
				|  |  |  		)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		userName := params["username"]
 | 
	
	
		
			
				|  | @@ -52,10 +51,10 @@ func RepoAssignment(redirect bool, args ...bool) martini.Handler {
 | 
	
		
			
				|  |  |  				ctx.Handle(500, "RepoAssignment(HasAccess)", err)
 | 
	
		
			
				|  |  |  				return
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | -			isTrueOwner = ctx.User.LowerName == strings.ToLower(userName)
 | 
	
		
			
				|  |  | +			ctx.Repo.IsTrueOwner = ctx.User.LowerName == strings.ToLower(userName)
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		if !isTrueOwner {
 | 
	
		
			
				|  |  | +		if !ctx.Repo.IsTrueOwner {
 | 
	
		
			
				|  |  |  			user, err = models.GetUserByName(userName)
 | 
	
		
			
				|  |  |  			if err != nil {
 | 
	
		
			
				|  |  |  				if err == models.ErrUserNotExist {
 | 
	
	
		
			
				|  | @@ -82,6 +81,11 @@ func RepoAssignment(redirect bool, args ...bool) martini.Handler {
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		ctx.Repo.Owner = user
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		// Organization owner team members are true owners as well.
 | 
	
		
			
				|  |  | +		if ctx.Repo.Owner.IsOrganization() && ctx.Repo.Owner.IsOrgOwner(ctx.User.Id) {
 | 
	
		
			
				|  |  | +			ctx.Repo.IsTrueOwner = true
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		// get repository
 | 
	
		
			
				|  |  |  		repo, err := models.GetRepositoryByName(user.Id, repoName)
 | 
	
		
			
				|  |  |  		if err != nil {
 | 
	
	
		
			
				|  | @@ -154,6 +158,7 @@ func RepoAssignment(redirect bool, args ...bool) martini.Handler {
 | 
	
		
			
				|  |  |  		ctx.Data["Owner"] = user
 | 
	
		
			
				|  |  |  		ctx.Data["RepoLink"] = ctx.Repo.RepoLink
 | 
	
		
			
				|  |  |  		ctx.Data["IsRepositoryOwner"] = ctx.Repo.IsOwner
 | 
	
		
			
				|  |  | +		ctx.Data["IsRepositoryTrueOwner"] = ctx.Repo.IsTrueOwner
 | 
	
		
			
				|  |  |  		ctx.Data["BranchName"] = ""
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		if setting.SshPort != 22 {
 | 
	
	
		
			
				|  | @@ -257,7 +262,7 @@ func RepoAssignment(redirect bool, args ...bool) martini.Handler {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func RequireOwner() martini.Handler {
 | 
	
		
			
				|  |  |  	return func(ctx *Context) {
 | 
	
		
			
				|  |  | -		if !ctx.Repo.IsOwner {
 | 
	
		
			
				|  |  | +		if !ctx.Repo.IsTrueOwner {
 | 
	
		
			
				|  |  |  			if !ctx.IsSigned {
 | 
	
		
			
				|  |  |  				ctx.SetCookie("redirect_to", "/"+url.QueryEscape(ctx.Req.RequestURI))
 | 
	
		
			
				|  |  |  				ctx.Redirect("/user/login")
 |