MM-35332 honour config setting when extending session expiry (#17581)

Honour `ServiceSettings.ExtendSessionLengthWithActivity` config setting when extending session expiry on activity.
Этот коммит содержится в:
Doug Lauder
2021-05-07 14:43:41 -04:00
коммит произвёл GitHub
родитель 77d42568f9
Коммит a668479992
2 изменённых файлов: 21 добавлений и 5 удалений

Просмотреть файл

@@ -320,15 +320,22 @@ func TestApp_ExtendExpiryIfNeeded(t *testing.T) {
})
var tests = []struct {
enabled bool
name string
session *model.Session
}{
{name: "mobile", session: &model.Session{UserId: model.NewId(), DeviceId: model.NewId(), Token: model.NewId()}},
{name: "SSO", session: &model.Session{UserId: model.NewId(), IsOAuth: true, Token: model.NewId()}},
{name: "web/LDAP", session: &model.Session{UserId: model.NewId(), Token: model.NewId()}},
{enabled: true, name: "mobile", session: &model.Session{UserId: model.NewId(), DeviceId: model.NewId(), Token: model.NewId()}},
{enabled: true, name: "SSO", session: &model.Session{UserId: model.NewId(), IsOAuth: true, Token: model.NewId()}},
{enabled: true, name: "web/LDAP", session: &model.Session{UserId: model.NewId(), Token: model.NewId()}},
{enabled: false, name: "mobile", session: &model.Session{UserId: model.NewId(), DeviceId: model.NewId(), Token: model.NewId()}},
{enabled: false, name: "SSO", session: &model.Session{UserId: model.NewId(), IsOAuth: true, Token: model.NewId()}},
{enabled: false, name: "web/LDAP", session: &model.Session{UserId: model.NewId(), Token: model.NewId()}},
}
for _, test := range tests {
t.Run(fmt.Sprintf("%s session beyond threshold should update ExpiresAt", test.name), func(t *testing.T) {
t.Run(fmt.Sprintf("%s session beyond threshold should update ExpiresAt based on feature enabled", test.name), func(t *testing.T) {
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.ExtendSessionLengthWithActivity = test.enabled })
session, err := th.App.CreateSession(test.session)
require.Nil(t, err)
@@ -337,6 +344,12 @@ func TestApp_ExtendExpiryIfNeeded(t *testing.T) {
ok := th.App.ExtendSessionExpiryIfNeeded(session)
if !test.enabled {
require.False(t, ok)
require.Equal(t, expires, session.ExpiresAt)
return
}
require.True(t, ok)
require.Greater(t, session.ExpiresAt, expires)
require.False(t, session.IsExpired())
@@ -353,7 +366,6 @@ func TestApp_ExtendExpiryIfNeeded(t *testing.T) {
require.Equal(t, session.ExpiresAt, storedSession.ExpiresAt)
})
}
}
const (