| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -141,6 +141,10 @@ func CreateIssuePost(ctx *middleware.Context, params martini.Params, form auth.C | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return | 
					 | 
					 | 
					 | 
							return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						// Only collaborators can assign.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						if !ctx.Repo.IsOwner { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							form.AssigneeId = 0 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						issue := &models.Issue{ | 
					 | 
					 | 
					 | 
						issue := &models.Issue{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Index:       int64(ctx.Repo.Repository.NumIssues) + 1, | 
					 | 
					 | 
					 | 
							Index:       int64(ctx.Repo.Repository.NumIssues) + 1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Name:        form.IssueName, | 
					 | 
					 | 
					 | 
							Name:        form.IssueName, | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -220,12 +224,27 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						issue, err := models.GetIssueByIndex(ctx.Repo.Repository.Id, idx) | 
					 | 
					 | 
					 | 
						issue, err := models.GetIssueByIndex(ctx.Repo.Repository.Id, idx) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if err != nil { | 
					 | 
					 | 
					 | 
						if err != nil { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if err == models.ErrIssueNotExist { | 
					 | 
					 | 
					 | 
							if err == models.ErrIssueNotExist { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								ctx.Handle(404, "issue.ViewIssue", err) | 
					 | 
					 | 
					 | 
								ctx.Handle(404, "issue.ViewIssue(GetIssueByIndex)", err) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} else { | 
					 | 
					 | 
					 | 
							} else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								ctx.Handle(200, "issue.ViewIssue", err) | 
					 | 
					 | 
					 | 
								ctx.Handle(500, "issue.ViewIssue(GetIssueByIndex)", err) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						// Update assignee.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						if ctx.Repo.IsOwner { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							aid, _ := base.StrTo(ctx.Query("assignneid")).Int64() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							if aid > 0 { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								// Not check for invalid assignne id and give responsibility to owners.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								issue.AssigneeId = aid | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								if err = models.UpdateIssueUserPairByAssignee(aid, issue.Id); err != nil { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									ctx.Handle(500, "issue.ViewIssue(UpdateIssueUserPairByAssignee): %v", err) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									return | 
					 | 
					 | 
					 | 
									return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								} | 
					 | 
					 | 
					 | 
								} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issue.Index)) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						// Update issue-user.
 | 
					 | 
					 | 
					 | 
						// Update issue-user.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if err = models.UpdateIssueUserPairByRead(ctx.User.Id, issue.Id); err != nil { | 
					 | 
					 | 
					 | 
						if err = models.UpdateIssueUserPairByRead(ctx.User.Id, issue.Id); err != nil { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -254,7 +273,7 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						for i := range comments { | 
					 | 
					 | 
					 | 
						for i := range comments { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							u, err := models.GetUserById(comments[i].PosterId) | 
					 | 
					 | 
					 | 
							u, err := models.GetUserById(comments[i].PosterId) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if err != nil { | 
					 | 
					 | 
					 | 
							if err != nil { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								ctx.Handle(500, "issue.ViewIssue(get poster of comment): %v", err) | 
					 | 
					 | 
					 | 
								ctx.Handle(500, "issue.ViewIssue(GetUserById.2): %v", err) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return | 
					 | 
					 | 
					 | 
								return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							comments[i].Poster = u | 
					 | 
					 | 
					 | 
							comments[i].Poster = u | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |