remove license check when enforcing password requirements (#8840)

Signed-off-by: Saturnino Abril <saturnino.abril@gmail.com>
Этот коммит содержится в:
Saturnino Abril
2018-05-23 20:36:20 +08:00
коммит произвёл GitHub
родитель ce378adc97
Коммит 70a118c0fd
5 изменённых файлов: 6 добавлений и 24 удалений

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

@@ -36,10 +36,7 @@ func (tl TokenLocation) String() string {
} }
func (a *App) IsPasswordValid(password string) *model.AppError { func (a *App) IsPasswordValid(password string) *model.AppError {
if license := a.License(); license != nil && *license.Features.PasswordRequirements { return utils.IsPasswordValidWithSettings(password, &a.Config().PasswordSettings)
return utils.IsPasswordValidWithSettings(password, &a.Config().PasswordSettings)
}
return utils.IsPasswordValid(password)
} }
func (a *App) CheckPasswordAndAllCriteria(user *model.User, password string, mfaToken string) *model.AppError { func (a *App) CheckPasswordAndAllCriteria(user *model.User, password string, mfaToken string) *model.AppError {

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

@@ -49,7 +49,6 @@ type Features struct {
CustomBrand *bool `json:"custom_brand"` CustomBrand *bool `json:"custom_brand"`
MHPNS *bool `json:"mhpns"` MHPNS *bool `json:"mhpns"`
SAML *bool `json:"saml"` SAML *bool `json:"saml"`
PasswordRequirements *bool `json:"password_requirements"`
Elasticsearch *bool `json:"elastic_search"` Elasticsearch *bool `json:"elastic_search"`
Announcement *bool `json:"announcement"` Announcement *bool `json:"announcement"`
ThemeManagement *bool `json:"theme_management"` ThemeManagement *bool `json:"theme_management"`
@@ -73,7 +72,6 @@ func (f *Features) ToMap() map[string]interface{} {
"custom_brand": *f.CustomBrand, "custom_brand": *f.CustomBrand,
"mhpns": *f.MHPNS, "mhpns": *f.MHPNS,
"saml": *f.SAML, "saml": *f.SAML,
"password": *f.PasswordRequirements,
"elastic_search": *f.Elasticsearch, "elastic_search": *f.Elasticsearch,
"email_notification_contents": *f.EmailNotificationContents, "email_notification_contents": *f.EmailNotificationContents,
"data_retention": *f.DataRetention, "data_retention": *f.DataRetention,
@@ -131,10 +129,6 @@ func (f *Features) SetDefaults() {
f.SAML = NewBool(*f.FutureFeatures) f.SAML = NewBool(*f.FutureFeatures)
} }
if f.PasswordRequirements == nil {
f.PasswordRequirements = NewBool(*f.FutureFeatures)
}
if f.Elasticsearch == nil { if f.Elasticsearch == nil {
f.Elasticsearch = NewBool(*f.FutureFeatures) f.Elasticsearch = NewBool(*f.FutureFeatures)
} }

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

@@ -24,7 +24,6 @@ func TestLicenseFeaturesToMap(t *testing.T) {
CheckTrue(t, m["custom_brand"].(bool)) CheckTrue(t, m["custom_brand"].(bool))
CheckTrue(t, m["mhpns"].(bool)) CheckTrue(t, m["mhpns"].(bool))
CheckTrue(t, m["saml"].(bool)) CheckTrue(t, m["saml"].(bool))
CheckTrue(t, m["password"].(bool))
CheckTrue(t, m["elastic_search"].(bool)) CheckTrue(t, m["elastic_search"].(bool))
CheckTrue(t, m["email_notification_contents"].(bool)) CheckTrue(t, m["email_notification_contents"].(bool))
CheckTrue(t, m["data_retention"].(bool)) CheckTrue(t, m["data_retention"].(bool))
@@ -46,7 +45,6 @@ func TestLicenseFeaturesSetDefaults(t *testing.T) {
CheckTrue(t, *f.CustomBrand) CheckTrue(t, *f.CustomBrand)
CheckTrue(t, *f.MHPNS) CheckTrue(t, *f.MHPNS)
CheckTrue(t, *f.SAML) CheckTrue(t, *f.SAML)
CheckTrue(t, *f.PasswordRequirements)
CheckTrue(t, *f.Elasticsearch) CheckTrue(t, *f.Elasticsearch)
CheckTrue(t, *f.EmailNotificationContents) CheckTrue(t, *f.EmailNotificationContents)
CheckTrue(t, *f.DataRetention) CheckTrue(t, *f.DataRetention)
@@ -67,7 +65,6 @@ func TestLicenseFeaturesSetDefaults(t *testing.T) {
*f.CustomBrand = true *f.CustomBrand = true
*f.MHPNS = true *f.MHPNS = true
*f.SAML = true *f.SAML = true
*f.PasswordRequirements = true
*f.Elasticsearch = true *f.Elasticsearch = true
*f.DataRetention = true *f.DataRetention = true
*f.EmailNotificationContents = true *f.EmailNotificationContents = true
@@ -85,7 +82,6 @@ func TestLicenseFeaturesSetDefaults(t *testing.T) {
CheckTrue(t, *f.CustomBrand) CheckTrue(t, *f.CustomBrand)
CheckTrue(t, *f.MHPNS) CheckTrue(t, *f.MHPNS)
CheckTrue(t, *f.SAML) CheckTrue(t, *f.SAML)
CheckTrue(t, *f.PasswordRequirements)
CheckTrue(t, *f.Elasticsearch) CheckTrue(t, *f.Elasticsearch)
CheckTrue(t, *f.EmailNotificationContents) CheckTrue(t, *f.EmailNotificationContents)
CheckTrue(t, *f.DataRetention) CheckTrue(t, *f.DataRetention)
@@ -168,7 +164,6 @@ func TestLicenseToFromJson(t *testing.T) {
CheckBool(t, *f1.CustomBrand, *f.CustomBrand) CheckBool(t, *f1.CustomBrand, *f.CustomBrand)
CheckBool(t, *f1.MHPNS, *f.MHPNS) CheckBool(t, *f1.MHPNS, *f.MHPNS)
CheckBool(t, *f1.SAML, *f.SAML) CheckBool(t, *f1.SAML, *f.SAML)
CheckBool(t, *f1.PasswordRequirements, *f.PasswordRequirements)
CheckBool(t, *f1.Elasticsearch, *f.Elasticsearch) CheckBool(t, *f1.Elasticsearch, *f.Elasticsearch)
CheckBool(t, *f1.DataRetention, *f.DataRetention) CheckBool(t, *f1.DataRetention, *f.DataRetention)
CheckBool(t, *f1.FutureFeatures, *f.FutureFeatures) CheckBool(t, *f1.FutureFeatures, *f.FutureFeatures)

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

@@ -602,6 +602,11 @@ func GenerateClientConfig(c *model.Config, diagnosticId string, license *model.L
props["DataRetentionMessageRetentionDays"] = "0" props["DataRetentionMessageRetentionDays"] = "0"
props["DataRetentionEnableFileDeletion"] = "false" props["DataRetentionEnableFileDeletion"] = "false"
props["DataRetentionFileRetentionDays"] = "0" props["DataRetentionFileRetentionDays"] = "0"
props["PasswordMinimumLength"] = fmt.Sprintf("%v", *c.PasswordSettings.MinimumLength)
props["PasswordRequireLowercase"] = strconv.FormatBool(*c.PasswordSettings.Lowercase)
props["PasswordRequireUppercase"] = strconv.FormatBool(*c.PasswordSettings.Uppercase)
props["PasswordRequireNumber"] = strconv.FormatBool(*c.PasswordSettings.Number)
props["PasswordRequireSymbol"] = strconv.FormatBool(*c.PasswordSettings.Symbol)
if license != nil { if license != nil {
props["ExperimentalTownSquareIsReadOnly"] = strconv.FormatBool(*c.TeamSettings.ExperimentalTownSquareIsReadOnly) props["ExperimentalTownSquareIsReadOnly"] = strconv.FormatBool(*c.TeamSettings.ExperimentalTownSquareIsReadOnly)
@@ -662,14 +667,6 @@ func GenerateClientConfig(c *model.Config, diagnosticId string, license *model.L
props["EnableSignUpWithOffice365"] = strconv.FormatBool(c.Office365Settings.Enable) props["EnableSignUpWithOffice365"] = strconv.FormatBool(c.Office365Settings.Enable)
} }
if *license.Features.PasswordRequirements {
props["PasswordMinimumLength"] = fmt.Sprintf("%v", *c.PasswordSettings.MinimumLength)
props["PasswordRequireLowercase"] = strconv.FormatBool(*c.PasswordSettings.Lowercase)
props["PasswordRequireUppercase"] = strconv.FormatBool(*c.PasswordSettings.Uppercase)
props["PasswordRequireNumber"] = strconv.FormatBool(*c.PasswordSettings.Number)
props["PasswordRequireSymbol"] = strconv.FormatBool(*c.PasswordSettings.Symbol)
}
if *license.Features.Announcement { if *license.Features.Announcement {
props["EnableBanner"] = strconv.FormatBool(*c.AnnouncementSettings.EnableBanner) props["EnableBanner"] = strconv.FormatBool(*c.AnnouncementSettings.EnableBanner)
props["BannerText"] = *c.AnnouncementSettings.BannerText props["BannerText"] = *c.AnnouncementSettings.BannerText

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

@@ -139,7 +139,6 @@ func GetClientLicense(l *model.License) map[string]string {
props["Compliance"] = strconv.FormatBool(*l.Features.Compliance) props["Compliance"] = strconv.FormatBool(*l.Features.Compliance)
props["CustomBrand"] = strconv.FormatBool(*l.Features.CustomBrand) props["CustomBrand"] = strconv.FormatBool(*l.Features.CustomBrand)
props["MHPNS"] = strconv.FormatBool(*l.Features.MHPNS) props["MHPNS"] = strconv.FormatBool(*l.Features.MHPNS)
props["PasswordRequirements"] = strconv.FormatBool(*l.Features.PasswordRequirements)
props["Announcement"] = strconv.FormatBool(*l.Features.Announcement) props["Announcement"] = strconv.FormatBool(*l.Features.Announcement)
props["Elasticsearch"] = strconv.FormatBool(*l.Features.Elasticsearch) props["Elasticsearch"] = strconv.FormatBool(*l.Features.Elasticsearch)
props["DataRetention"] = strconv.FormatBool(*l.Features.DataRetention) props["DataRetention"] = strconv.FormatBool(*l.Features.DataRetention)