MM-41211: Replaces SessionLength*InDays with SessionLength*InHours. (#19838)
* MM-41211: Replaces SessionLength[Web|Mobile|SSO]InDays with SessionLength[Web|Mobile|SSO]InHours. * MM-41211: Clear the value of the old config settings.
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
4bc2ed3973
Коммит
cb3d8f0a1c
@@ -24,12 +24,12 @@ type AccessData struct {
|
||||
}
|
||||
|
||||
type AccessResponse struct {
|
||||
AccessToken string `json:"access_token"`
|
||||
TokenType string `json:"token_type"`
|
||||
ExpiresIn int32 `json:"expires_in"`
|
||||
Scope string `json:"scope"`
|
||||
RefreshToken string `json:"refresh_token"`
|
||||
IdToken string `json:"id_token"`
|
||||
AccessToken string `json:"access_token"`
|
||||
TokenType string `json:"token_type"`
|
||||
ExpiresInSeconds int32 `json:"expires_in"`
|
||||
Scope string `json:"scope"`
|
||||
RefreshToken string `json:"refresh_token"`
|
||||
IdToken string `json:"id_token"`
|
||||
}
|
||||
|
||||
// IsValid validates the AccessData and returns an error if it isn't configured
|
||||
|
||||
181
model/config.go
181
model/config.go
@@ -285,72 +285,80 @@ type ServiceSettings struct {
|
||||
TLSMinVer *string `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
TLSStrictTransport *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
// In seconds.
|
||||
TLSStrictTransportMaxAge *int64 `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
TLSOverwriteCiphers []string `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
UseLetsEncrypt *bool `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
LetsEncryptCertificateCacheFile *string `access:"environment_web_server,write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
Forward80To443 *bool `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
TrustedProxyIPHeader []string `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
ReadTimeout *int `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
WriteTimeout *int `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
IdleTimeout *int `access:"write_restrictable,cloud_restrictable"`
|
||||
MaximumLoginAttempts *int `access:"authentication_password,write_restrictable,cloud_restrictable"`
|
||||
GoroutineHealthThreshold *int `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
EnableOAuthServiceProvider *bool `access:"integrations_integration_management"`
|
||||
EnableIncomingWebhooks *bool `access:"integrations_integration_management"`
|
||||
EnableOutgoingWebhooks *bool `access:"integrations_integration_management"`
|
||||
EnableCommands *bool `access:"integrations_integration_management"`
|
||||
EnablePostUsernameOverride *bool `access:"integrations_integration_management"`
|
||||
EnablePostIconOverride *bool `access:"integrations_integration_management"`
|
||||
GoogleDeveloperKey *string `access:"site_posts,write_restrictable,cloud_restrictable"`
|
||||
EnableLinkPreviews *bool `access:"site_posts"`
|
||||
EnablePermalinkPreviews *bool `access:"site_posts"`
|
||||
RestrictLinkPreviews *string `access:"site_posts"`
|
||||
EnableTesting *bool `access:"environment_developer,write_restrictable,cloud_restrictable"`
|
||||
EnableDeveloper *bool `access:"environment_developer,write_restrictable,cloud_restrictable"`
|
||||
DeveloperFlags *string `access:"environment_developer"`
|
||||
EnableClientPerformanceDebugging *bool `access:"environment_developer,write_restrictable,cloud_restrictable"`
|
||||
EnableOpenTracing *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
EnableSecurityFixAlert *bool `access:"environment_smtp,write_restrictable,cloud_restrictable"`
|
||||
EnableInsecureOutgoingConnections *bool `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
AllowedUntrustedInternalConnections *string `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
EnableMultifactorAuthentication *bool `access:"authentication_mfa"`
|
||||
EnforceMultifactorAuthentication *bool `access:"authentication_mfa"`
|
||||
EnableUserAccessTokens *bool `access:"integrations_integration_management"`
|
||||
AllowCorsFrom *string `access:"integrations_cors,write_restrictable,cloud_restrictable"`
|
||||
CorsExposedHeaders *string `access:"integrations_cors,write_restrictable,cloud_restrictable"`
|
||||
CorsAllowCredentials *bool `access:"integrations_cors,write_restrictable,cloud_restrictable"`
|
||||
CorsDebug *bool `access:"integrations_cors,write_restrictable,cloud_restrictable"`
|
||||
AllowCookiesForSubdomains *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
ExtendSessionLengthWithActivity *bool `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
SessionLengthWebInDays *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
SessionLengthMobileInDays *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
SessionLengthSSOInDays *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
SessionCacheInMinutes *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
SessionIdleTimeoutInMinutes *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
WebsocketSecurePort *int `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
WebsocketPort *int `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
WebserverMode *string `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
EnableGifPicker *bool `access:"integrations_gif"`
|
||||
GfycatAPIKey *string `access:"integrations_gif"`
|
||||
GfycatAPISecret *string `access:"integrations_gif"`
|
||||
EnableCustomEmoji *bool `access:"site_emoji"`
|
||||
EnableEmojiPicker *bool `access:"site_emoji"`
|
||||
PostEditTimeLimit *int `access:"user_management_permissions"`
|
||||
TimeBetweenUserTypingUpdatesMilliseconds *int64 `access:"experimental_features,write_restrictable,cloud_restrictable"`
|
||||
EnablePostSearch *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
EnableFileSearch *bool `access:"write_restrictable"`
|
||||
MinimumHashtagLength *int `access:"environment_database,write_restrictable,cloud_restrictable"`
|
||||
EnableUserTypingMessages *bool `access:"experimental_features,write_restrictable,cloud_restrictable"`
|
||||
EnableChannelViewedMessages *bool `access:"experimental_features,write_restrictable,cloud_restrictable"`
|
||||
EnableUserStatuses *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
ExperimentalEnableAuthenticationTransfer *bool `access:"experimental_features,write_restrictable,cloud_restrictable"`
|
||||
ClusterLogTimeoutMilliseconds *int `access:"write_restrictable,cloud_restrictable"`
|
||||
EnablePreviewFeatures *bool `access:"experimental_features"`
|
||||
EnableTutorial *bool `access:"experimental_features"`
|
||||
EnableOnboardingFlow *bool `access:"experimental_features"`
|
||||
ExperimentalEnableDefaultChannelLeaveJoinMessages *bool `access:"experimental_features"`
|
||||
ExperimentalGroupUnreadChannels *string `access:"experimental_features"`
|
||||
TLSStrictTransportMaxAge *int64 `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
TLSOverwriteCiphers []string `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
UseLetsEncrypt *bool `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
LetsEncryptCertificateCacheFile *string `access:"environment_web_server,write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
Forward80To443 *bool `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
TrustedProxyIPHeader []string `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
ReadTimeout *int `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
WriteTimeout *int `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
IdleTimeout *int `access:"write_restrictable,cloud_restrictable"`
|
||||
MaximumLoginAttempts *int `access:"authentication_password,write_restrictable,cloud_restrictable"`
|
||||
GoroutineHealthThreshold *int `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
EnableOAuthServiceProvider *bool `access:"integrations_integration_management"`
|
||||
EnableIncomingWebhooks *bool `access:"integrations_integration_management"`
|
||||
EnableOutgoingWebhooks *bool `access:"integrations_integration_management"`
|
||||
EnableCommands *bool `access:"integrations_integration_management"`
|
||||
EnablePostUsernameOverride *bool `access:"integrations_integration_management"`
|
||||
EnablePostIconOverride *bool `access:"integrations_integration_management"`
|
||||
GoogleDeveloperKey *string `access:"site_posts,write_restrictable,cloud_restrictable"`
|
||||
EnableLinkPreviews *bool `access:"site_posts"`
|
||||
EnablePermalinkPreviews *bool `access:"site_posts"`
|
||||
RestrictLinkPreviews *string `access:"site_posts"`
|
||||
EnableTesting *bool `access:"environment_developer,write_restrictable,cloud_restrictable"`
|
||||
EnableDeveloper *bool `access:"environment_developer,write_restrictable,cloud_restrictable"`
|
||||
DeveloperFlags *string `access:"environment_developer"`
|
||||
EnableClientPerformanceDebugging *bool `access:"environment_developer,write_restrictable,cloud_restrictable"`
|
||||
EnableOpenTracing *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
EnableSecurityFixAlert *bool `access:"environment_smtp,write_restrictable,cloud_restrictable"`
|
||||
EnableInsecureOutgoingConnections *bool `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
AllowedUntrustedInternalConnections *string `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
EnableMultifactorAuthentication *bool `access:"authentication_mfa"`
|
||||
EnforceMultifactorAuthentication *bool `access:"authentication_mfa"`
|
||||
EnableUserAccessTokens *bool `access:"integrations_integration_management"`
|
||||
AllowCorsFrom *string `access:"integrations_cors,write_restrictable,cloud_restrictable"`
|
||||
CorsExposedHeaders *string `access:"integrations_cors,write_restrictable,cloud_restrictable"`
|
||||
CorsAllowCredentials *bool `access:"integrations_cors,write_restrictable,cloud_restrictable"`
|
||||
CorsDebug *bool `access:"integrations_cors,write_restrictable,cloud_restrictable"`
|
||||
AllowCookiesForSubdomains *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
ExtendSessionLengthWithActivity *bool `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
|
||||
// Deprecated
|
||||
SessionLengthWebInDays *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
SessionLengthWebInHours *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
// Deprecated
|
||||
SessionLengthMobileInDays *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
SessionLengthMobileInHours *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
// Deprecated
|
||||
SessionLengthSSOInDays *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
SessionLengthSSOInHours *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
|
||||
SessionCacheInMinutes *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
SessionIdleTimeoutInMinutes *int `access:"environment_session_lengths,write_restrictable,cloud_restrictable"`
|
||||
WebsocketSecurePort *int `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
WebsocketPort *int `access:"write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
WebserverMode *string `access:"environment_web_server,write_restrictable,cloud_restrictable"`
|
||||
EnableGifPicker *bool `access:"integrations_gif"`
|
||||
GfycatAPIKey *string `access:"integrations_gif"`
|
||||
GfycatAPISecret *string `access:"integrations_gif"`
|
||||
EnableCustomEmoji *bool `access:"site_emoji"`
|
||||
EnableEmojiPicker *bool `access:"site_emoji"`
|
||||
PostEditTimeLimit *int `access:"user_management_permissions"`
|
||||
TimeBetweenUserTypingUpdatesMilliseconds *int64 `access:"experimental_features,write_restrictable,cloud_restrictable"`
|
||||
EnablePostSearch *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
EnableFileSearch *bool `access:"write_restrictable"`
|
||||
MinimumHashtagLength *int `access:"environment_database,write_restrictable,cloud_restrictable"`
|
||||
EnableUserTypingMessages *bool `access:"experimental_features,write_restrictable,cloud_restrictable"`
|
||||
EnableChannelViewedMessages *bool `access:"experimental_features,write_restrictable,cloud_restrictable"`
|
||||
EnableUserStatuses *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
ExperimentalEnableAuthenticationTransfer *bool `access:"experimental_features,write_restrictable,cloud_restrictable"`
|
||||
ClusterLogTimeoutMilliseconds *int `access:"write_restrictable,cloud_restrictable"`
|
||||
EnablePreviewFeatures *bool `access:"experimental_features"`
|
||||
EnableTutorial *bool `access:"experimental_features"`
|
||||
EnableOnboardingFlow *bool `access:"experimental_features"`
|
||||
ExperimentalEnableDefaultChannelLeaveJoinMessages *bool `access:"experimental_features"`
|
||||
ExperimentalGroupUnreadChannels *string `access:"experimental_features"`
|
||||
EnableAPITeamDeletion *bool
|
||||
EnableAPIUserDeletion *bool
|
||||
ExperimentalEnableHardenedMode *bool `access:"experimental_features"`
|
||||
@@ -591,25 +599,46 @@ func (s *ServiceSettings) SetDefaults(isUpdate bool) {
|
||||
s.ExtendSessionLengthWithActivity = NewBool(!isUpdate)
|
||||
}
|
||||
|
||||
if s.SessionLengthWebInDays == nil {
|
||||
if isUpdate {
|
||||
s.SessionLengthWebInDays = NewInt(180)
|
||||
if s.SessionLengthWebInHours == nil {
|
||||
var webTTLDays int
|
||||
if s.SessionLengthWebInDays == nil {
|
||||
if isUpdate {
|
||||
webTTLDays = 180
|
||||
} else {
|
||||
webTTLDays = 30
|
||||
}
|
||||
} else {
|
||||
s.SessionLengthWebInDays = NewInt(30)
|
||||
webTTLDays = *s.SessionLengthWebInDays
|
||||
}
|
||||
s.SessionLengthWebInHours = NewInt(webTTLDays * 24)
|
||||
}
|
||||
s.SessionLengthWebInDays = NewInt(-1)
|
||||
|
||||
if s.SessionLengthMobileInDays == nil {
|
||||
if isUpdate {
|
||||
s.SessionLengthMobileInDays = NewInt(180)
|
||||
if s.SessionLengthMobileInHours == nil {
|
||||
var mobileTTLDays int
|
||||
if s.SessionLengthMobileInDays == nil {
|
||||
if isUpdate {
|
||||
mobileTTLDays = 180
|
||||
} else {
|
||||
mobileTTLDays = 30
|
||||
}
|
||||
} else {
|
||||
s.SessionLengthMobileInDays = NewInt(30)
|
||||
mobileTTLDays = *s.SessionLengthMobileInDays
|
||||
}
|
||||
s.SessionLengthMobileInHours = NewInt(mobileTTLDays * 24)
|
||||
}
|
||||
s.SessionLengthMobileInDays = NewInt(-1)
|
||||
|
||||
if s.SessionLengthSSOInDays == nil {
|
||||
s.SessionLengthSSOInDays = NewInt(30)
|
||||
if s.SessionLengthSSOInHours == nil {
|
||||
var ssoTTLDays int
|
||||
if s.SessionLengthSSOInDays == nil {
|
||||
ssoTTLDays = 30
|
||||
} else {
|
||||
ssoTTLDays = *s.SessionLengthSSOInDays
|
||||
}
|
||||
s.SessionLengthSSOInHours = NewInt(ssoTTLDays * 24)
|
||||
}
|
||||
s.SessionLengthSSOInDays = NewInt(-1)
|
||||
|
||||
if s.SessionCacheInMinutes == nil {
|
||||
s.SessionCacheInMinutes = NewInt(10)
|
||||
|
||||
@@ -12,26 +12,26 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
SessionCookieToken = "MMAUTHTOKEN"
|
||||
SessionCookieUser = "MMUSERID"
|
||||
SessionCookieCsrf = "MMCSRF"
|
||||
SessionCookieCloudUrl = "MMCLOUDURL"
|
||||
SessionCacheSize = 35000
|
||||
SessionPropPlatform = "platform"
|
||||
SessionPropOs = "os"
|
||||
SessionPropBrowser = "browser"
|
||||
SessionPropType = "type"
|
||||
SessionPropUserAccessTokenId = "user_access_token_id"
|
||||
SessionPropIsBot = "is_bot"
|
||||
SessionPropIsBotValue = "true"
|
||||
SessionPropOAuthAppID = "oauth_app_id"
|
||||
SessionPropMattermostAppID = "mattermost_app_id"
|
||||
SessionTypeUserAccessToken = "UserAccessToken"
|
||||
SessionTypeCloudKey = "CloudKey"
|
||||
SessionTypeRemoteclusterToken = "RemoteClusterToken"
|
||||
SessionPropIsGuest = "is_guest"
|
||||
SessionActivityTimeout = 1000 * 60 * 5 // 5 minutes
|
||||
SessionUserAccessTokenExpiry = 100 * 365 // 100 years
|
||||
SessionCookieToken = "MMAUTHTOKEN"
|
||||
SessionCookieUser = "MMUSERID"
|
||||
SessionCookieCsrf = "MMCSRF"
|
||||
SessionCookieCloudUrl = "MMCLOUDURL"
|
||||
SessionCacheSize = 35000
|
||||
SessionPropPlatform = "platform"
|
||||
SessionPropOs = "os"
|
||||
SessionPropBrowser = "browser"
|
||||
SessionPropType = "type"
|
||||
SessionPropUserAccessTokenId = "user_access_token_id"
|
||||
SessionPropIsBot = "is_bot"
|
||||
SessionPropIsBotValue = "true"
|
||||
SessionPropOAuthAppID = "oauth_app_id"
|
||||
SessionPropMattermostAppID = "mattermost_app_id"
|
||||
SessionTypeUserAccessToken = "UserAccessToken"
|
||||
SessionTypeCloudKey = "CloudKey"
|
||||
SessionTypeRemoteclusterToken = "RemoteClusterToken"
|
||||
SessionPropIsGuest = "is_guest"
|
||||
SessionActivityTimeout = 1000 * 60 * 5 // 5 minutes
|
||||
SessionUserAccessTokenExpiryHours = 100 * 365 * 24 // 100 years
|
||||
)
|
||||
|
||||
//msgp StringMap
|
||||
|
||||
Ссылка в новой задаче
Block a user