|  | @@ -27,11 +27,23 @@ func Dashboard(ctx *middleware.Context) {
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	ctx.Data["MyRepos"] = repos
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	feeds, err := models.GetFeeds(ctx.User.Id, 0, false)
 | 
	
		
			
				|  |  | +	actions, err := models.GetFeeds(ctx.User.Id, 0, false)
 | 
	
		
			
				|  |  |  	if err != nil {
 | 
	
		
			
				|  |  |  		ctx.Handle(500, "user.Dashboard", err)
 | 
	
		
			
				|  |  |  		return
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	feeds := make([]*models.Action, 0, len(actions))
 | 
	
		
			
				|  |  | +	for _, act := range actions {
 | 
	
		
			
				|  |  | +		if act.IsPrivate {
 | 
	
		
			
				|  |  | +			if has, _ := models.HasAccess(ctx.User.Name, act.RepoUserName+"/"+act.RepoName,
 | 
	
		
			
				|  |  | +				models.AU_READABLE); !has {
 | 
	
		
			
				|  |  | +				continue
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		feeds = append(feeds, act)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	ctx.Data["Feeds"] = feeds
 | 
	
		
			
				|  |  |  	ctx.HTML(200, "user/dashboard")
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -39,7 +51,6 @@ func Dashboard(ctx *middleware.Context) {
 | 
	
		
			
				|  |  |  func Profile(ctx *middleware.Context, params martini.Params) {
 | 
	
		
			
				|  |  |  	ctx.Data["Title"] = "Profile"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	// TODO: Need to check view self or others.
 | 
	
		
			
				|  |  |  	user, err := models.GetUserByName(params["username"])
 | 
	
		
			
				|  |  |  	if err != nil {
 | 
	
		
			
				|  |  |  		ctx.Handle(500, "user.Profile", err)
 | 
	
	
		
			
				|  | @@ -95,12 +106,19 @@ func Feeds(ctx *middleware.Context, form auth.FeedsForm) {
 | 
	
		
			
				|  |  |  	actions, err := models.GetFeeds(form.UserId, form.Page*20, false)
 | 
	
		
			
				|  |  |  	if err != nil {
 | 
	
		
			
				|  |  |  		ctx.JSON(500, err)
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	feeds := make([]string, len(actions))
 | 
	
		
			
				|  |  | -	for i := range actions {
 | 
	
		
			
				|  |  | -		feeds[i] = fmt.Sprintf(TPL_FEED, base.ActionIcon(actions[i].OpType),
 | 
	
		
			
				|  |  | -			base.TimeSince(actions[i].Created), base.ActionDesc(actions[i]))
 | 
	
		
			
				|  |  | +	feeds := make([]string, 0, len(actions))
 | 
	
		
			
				|  |  | +	for _, act := range actions {
 | 
	
		
			
				|  |  | +		if act.IsPrivate {
 | 
	
		
			
				|  |  | +			if has, _ := models.HasAccess(ctx.User.Name, act.RepoUserName+"/"+act.RepoName,
 | 
	
		
			
				|  |  | +				models.AU_READABLE); !has {
 | 
	
		
			
				|  |  | +				continue
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		feeds = append(feeds, fmt.Sprintf(TPL_FEED, base.ActionIcon(act.OpType),
 | 
	
		
			
				|  |  | +			base.TimeSince(act.Created), base.ActionDesc(act)))
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	ctx.JSON(200, &feeds)
 | 
	
		
			
				|  |  |  }
 |