mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-22 12:54:53 -05:00
Mention organisation users when organisation gets mentioned
This commit is contained in:
parent
3db84c8893
commit
cbcd08aa17
2 changed files with 46 additions and 6 deletions
|
@ -562,3 +562,45 @@ func UnFollowUser(userId int64, unFollowId int64) (err error) {
|
||||||
}
|
}
|
||||||
return session.Commit()
|
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:]
|
ms[i] = ms[i][1:]
|
||||||
}
|
}
|
||||||
|
|
||||||
ids := models.GetUserIdsByNames(ms)
|
if err := models.UpdateMentions(ms, issue.Id); err != nil {
|
||||||
if err := models.UpdateIssueUserPairsByMentions(ids, issue.Id); err != nil {
|
ctx.Handle(500, "issue.CreateIssue(UpdateMentions)", err)
|
||||||
ctx.Handle(500, "issue.CreateIssue(UpdateIssueUserPairsByMentions)", err)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -682,9 +681,8 @@ func Comment(ctx *middleware.Context, params martini.Params) {
|
||||||
ms[i] = ms[i][1:]
|
ms[i] = ms[i][1:]
|
||||||
}
|
}
|
||||||
|
|
||||||
ids := models.GetUserIdsByNames(ms)
|
if err := models.UpdateMentions(ms, issue.Id); err != nil {
|
||||||
if err := models.UpdateIssueUserPairsByMentions(ids, issue.Id); err != nil {
|
ctx.Handle(500, "issue.CreateIssue(UpdateMentions)", err)
|
||||||
ctx.Handle(500, "issue.CreateIssue(UpdateIssueUserPairsByMentions)", err)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue