|
|
|
@ -379,9 +379,9 @@ func (g *groupServer) InviteUserToGroup(ctx context.Context, req *pbgroup.Invite
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var groupMember *model.GroupMember
|
|
|
|
|
var opUserID string
|
|
|
|
|
opUserID := mcontext.GetOpUserID(ctx)
|
|
|
|
|
|
|
|
|
|
if !authverify.IsAdmin(ctx) {
|
|
|
|
|
opUserID = mcontext.GetOpUserID(ctx)
|
|
|
|
|
var err error
|
|
|
|
|
groupMember, err = g.db.TakeGroupMember(ctx, req.GroupID, opUserID)
|
|
|
|
|
if err != nil {
|
|
|
|
@ -390,8 +390,6 @@ func (g *groupServer) InviteUserToGroup(ctx context.Context, req *pbgroup.Invite
|
|
|
|
|
if err := g.PopulateGroupMember(ctx, groupMember); err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
opUserID = mcontext.GetOpUserID(ctx)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if err := g.webhookBeforeInviteUserToGroup(ctx, &g.config.WebhooksConfig.BeforeInviteUserToGroup, req); err != nil && err != servererrs.ErrCallbackContinue {
|
|
|
|
@ -450,10 +448,7 @@ func (g *groupServer) InviteUserToGroup(ctx context.Context, req *pbgroup.Invite
|
|
|
|
|
|
|
|
|
|
const singleQuantity = 50
|
|
|
|
|
for start := 0; start < len(groupMembers); start += singleQuantity {
|
|
|
|
|
end := start + singleQuantity
|
|
|
|
|
if end > len(groupMembers) {
|
|
|
|
|
end = len(groupMembers)
|
|
|
|
|
}
|
|
|
|
|
end := min(start+singleQuantity, len(groupMembers))
|
|
|
|
|
currentMembers := groupMembers[start:end]
|
|
|
|
|
|
|
|
|
|
if err := g.db.CreateGroup(ctx, nil, currentMembers); err != nil {
|
|
|
|
@ -464,8 +459,8 @@ func (g *groupServer) InviteUserToGroup(ctx context.Context, req *pbgroup.Invite
|
|
|
|
|
return e.UserID
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
if err = g.notification.GroupApplicationAgreeMemberEnterNotification(ctx, req.GroupID, req.SendMessage, opUserID, userIDs...); err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
if len(userIDs) != 0 {
|
|
|
|
|
g.notification.GroupApplicationAgreeMemberEnterNotification(ctx, req.GroupID, req.SendMessage, opUserID, userIDs...)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return &pbgroup.InviteUserToGroupResp{}, nil
|
|
|
|
@ -1308,6 +1303,9 @@ func (g *groupServer) GetGroups(ctx context.Context, req *pbgroup.GetGroupsReq)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (g *groupServer) GetGroupMembersCMS(ctx context.Context, req *pbgroup.GetGroupMembersCMSReq) (*pbgroup.GetGroupMembersCMSResp, error) {
|
|
|
|
|
if err := g.checkAdminOrInGroup(ctx, req.GroupID); err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
total, members, err := g.db.SearchGroupMember(ctx, req.UserName, req.GroupID, req.Pagination)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
@ -1717,6 +1715,9 @@ func (g *groupServer) GetUserInGroupMembers(ctx context.Context, req *pbgroup.Ge
|
|
|
|
|
if len(req.GroupIDs) == 0 {
|
|
|
|
|
return nil, errs.ErrArgs.WrapMsg("groupIDs empty")
|
|
|
|
|
}
|
|
|
|
|
if err := authverify.CheckAccess(ctx, req.UserID); err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
members, err := g.db.FindGroupMemberUser(ctx, req.GroupIDs, req.UserID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
@ -1748,6 +1749,9 @@ func (g *groupServer) GetGroupMemberRoleLevel(ctx context.Context, req *pbgroup.
|
|
|
|
|
if len(req.RoleLevels) == 0 {
|
|
|
|
|
return nil, errs.ErrArgs.WrapMsg("RoleLevels empty")
|
|
|
|
|
}
|
|
|
|
|
if err := g.checkAdminOrInGroup(ctx, req.GroupID); err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
members, err := g.db.FindGroupMemberRoleLevels(ctx, req.GroupID, req.RoleLevels)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|