mirror of
https://github.com/mattermost/mattermost.git
synced 2026-09-01 15:00:08 +08:00
Exclude deactivated users from recently active team list
Co-authored-by: Nick Misasi <nick13misasi@gmail.com>
This commit is contained in:
@@ -539,6 +539,20 @@ func TestRestrictedViewMembers(t *testing.T) {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
t.Run("deactivated users are excluded", func(t *testing.T) {
|
||||
deactivatedUser, appErr := th.App.UpdateActive(th.Context, user2, false)
|
||||
require.Nil(t, appErr)
|
||||
t.Cleanup(func() {
|
||||
_, reactivatedErr := th.App.UpdateActive(th.Context, deactivatedUser, true)
|
||||
require.Nil(t, reactivatedErr)
|
||||
})
|
||||
|
||||
results, appErr := th.App.GetRecentlyActiveUsersForTeamPage(th.Context, team1.Id, 0, 1, false, nil)
|
||||
require.Nil(t, appErr)
|
||||
require.Len(t, results, 1)
|
||||
assert.NotEqual(t, user2.Id, results[0].Id)
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("GetUsers", func(t *testing.T) {
|
||||
|
||||
@@ -1075,6 +1075,7 @@ func (us SqlUserStore) GetRecentlyActiveUsersForTeam(teamId string, offset, limi
|
||||
Column("s.LastActivityAt").
|
||||
Join("TeamMembers tm ON (tm.UserId = Users.Id AND tm.TeamId = ?)", teamId).
|
||||
Join("Status s ON (s.UserId = Users.Id)").
|
||||
Where("Users.DeleteAt = 0").
|
||||
OrderBy("s.LastActivityAt DESC").
|
||||
OrderBy("Users.Username ASC").
|
||||
Offset(uint64(offset)).Limit(uint64(limit))
|
||||
|
||||
@@ -2673,7 +2673,17 @@ func testUserStoreGetRecentlyActiveUsersForTeam(t *testing.T, rctx request.CTX,
|
||||
u3.IsBot = true
|
||||
defer func() { require.NoError(t, ss.Bot().PermanentDelete(u3.Id)) }()
|
||||
|
||||
u4, err := ss.User().Save(rctx, &model.User{
|
||||
Email: MakeEmail(),
|
||||
Username: "u4" + model.NewId(),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
defer func() { require.NoError(t, ss.User().PermanentDelete(rctx, u4.Id)) }()
|
||||
_, nErr = ss.Team().SaveMember(rctx, &model.TeamMember{TeamId: teamID, UserId: u4.Id}, -1)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
millis := model.GetMillis()
|
||||
u4.LastActivityAt = millis + 1
|
||||
u3.LastActivityAt = millis
|
||||
u2.LastActivityAt = millis - 1
|
||||
u1.LastActivityAt = millis - 1
|
||||
@@ -2681,6 +2691,11 @@ func testUserStoreGetRecentlyActiveUsersForTeam(t *testing.T, rctx request.CTX,
|
||||
require.NoError(t, ss.Status().SaveOrUpdate(&model.Status{UserId: u1.Id, Status: model.StatusOnline, Manual: false, LastActivityAt: u1.LastActivityAt, ActiveChannel: ""}))
|
||||
require.NoError(t, ss.Status().SaveOrUpdate(&model.Status{UserId: u2.Id, Status: model.StatusOnline, Manual: false, LastActivityAt: u2.LastActivityAt, ActiveChannel: ""}))
|
||||
require.NoError(t, ss.Status().SaveOrUpdate(&model.Status{UserId: u3.Id, Status: model.StatusOnline, Manual: false, LastActivityAt: u3.LastActivityAt, ActiveChannel: ""}))
|
||||
require.NoError(t, ss.Status().SaveOrUpdate(&model.Status{UserId: u4.Id, Status: model.StatusOnline, Manual: false, LastActivityAt: u4.LastActivityAt, ActiveChannel: ""}))
|
||||
|
||||
u4.DeleteAt = model.GetMillis()
|
||||
_, err = ss.User().Update(rctx, u4, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
t.Run("get team 1, offset 0, limit 100", func(t *testing.T) {
|
||||
users, err := ss.User().GetRecentlyActiveUsersForTeam(teamID, 0, 100, nil)
|
||||
@@ -2707,6 +2722,18 @@ func testUserStoreGetRecentlyActiveUsersForTeam(t *testing.T, rctx request.CTX,
|
||||
sanitized(u2),
|
||||
}, users)
|
||||
})
|
||||
|
||||
t.Run("deactivated users are excluded", func(t *testing.T) {
|
||||
users, err := ss.User().GetRecentlyActiveUsersForTeam(teamID, 0, 100, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
ids := []string{}
|
||||
for _, user := range users {
|
||||
ids = append(ids, user.Id)
|
||||
}
|
||||
|
||||
assert.NotContains(t, ids, u4.Id)
|
||||
})
|
||||
}
|
||||
|
||||
func testUserStoreGetNewUsersForTeam(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
Reference in New Issue
Block a user