mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 07:21:36 +01:00 
			
		
		
		
	Mention organisation users when organisation gets mentioned
This commit is contained in:
		
							parent
							
								
									3db84c8893
								
							
						
					
					
						commit
						cbcd08aa17
					
				| @ -562,3 +562,45 @@ func UnFollowUser(userId int64, unFollowId int64) (err error) { | ||||
| 	} | ||||
| 	return session.Commit() | ||||
| } | ||||
| 
 | ||||
| func UpdateMentions(userNames []string, issueId int64) error { | ||||
| 	users := make([]*User, 0, len(userNames)) | ||||
| 
 | ||||
| 	if err := x.Where("name IN (?)", strings.Join(userNames, "\",\"")).OrderBy("name ASC").Find(&users); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	ids := make([]int64, 0, len(userNames)) | ||||
| 
 | ||||
| 	for _, user := range users { | ||||
| 		ids = append(ids, user.Id) | ||||
| 
 | ||||
| 		if user.Type == INDIVIDUAL { | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		if user.NumMembers == 0 { | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		tempIds := make([]int64, 0, user.NumMembers) | ||||
| 
 | ||||
| 		orgUsers, err := GetOrgUsersByOrgId(user.Id) | ||||
| 
 | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 
 | ||||
| 		for _, orgUser := range orgUsers { | ||||
| 			tempIds = append(tempIds, orgUser.Id) | ||||
| 		} | ||||
| 
 | ||||
| 		ids = append(ids, tempIds...) | ||||
| 	} | ||||
| 
 | ||||
| 	if err := UpdateIssueUserPairsByMentions(ids, issueId); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| @ -234,9 +234,8 @@ func CreateIssuePost(ctx *middleware.Context, params martini.Params, form auth.C | ||||
| 			ms[i] = ms[i][1:] | ||||
| 		} | ||||
| 
 | ||||
| 		ids := models.GetUserIdsByNames(ms) | ||||
| 		if err := models.UpdateIssueUserPairsByMentions(ids, issue.Id); err != nil { | ||||
| 			ctx.Handle(500, "issue.CreateIssue(UpdateIssueUserPairsByMentions)", err) | ||||
| 		if err := models.UpdateMentions(ms, issue.Id); err != nil { | ||||
| 			ctx.Handle(500, "issue.CreateIssue(UpdateMentions)", err) | ||||
| 			return | ||||
| 		} | ||||
| 	} | ||||
| @ -682,9 +681,8 @@ func Comment(ctx *middleware.Context, params martini.Params) { | ||||
| 					ms[i] = ms[i][1:] | ||||
| 				} | ||||
| 
 | ||||
| 				ids := models.GetUserIdsByNames(ms) | ||||
| 				if err := models.UpdateIssueUserPairsByMentions(ids, issue.Id); err != nil { | ||||
| 					ctx.Handle(500, "issue.CreateIssue(UpdateIssueUserPairsByMentions)", err) | ||||
| 				if err := models.UpdateMentions(ms, issue.Id); err != nil { | ||||
| 					ctx.Handle(500, "issue.CreateIssue(UpdateMentions)", err) | ||||
| 					return | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user