mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
PLT-5813 support SAML sync via LDAP (#7668)
* PLT-5813 support SAML sync via LDAP * Cleaning up based on review
This commit is contained in:
@@ -13,7 +13,8 @@ import (
|
||||
|
||||
func (a *App) SyncLdap() {
|
||||
a.Go(func() {
|
||||
if utils.IsLicensed() && *utils.License().Features.LDAP && *a.Config().LdapSettings.Enable {
|
||||
|
||||
if utils.IsLicensed() && *utils.License().Features.LDAP && *a.Config().LdapSettings.EnableSync {
|
||||
if ldapI := a.Ldap; ldapI != nil {
|
||||
ldapI.StartSynchronizeJob(false)
|
||||
} else {
|
||||
|
||||
@@ -223,6 +223,7 @@
|
||||
},
|
||||
"LdapSettings": {
|
||||
"Enable": false,
|
||||
"EnableSync": false,
|
||||
"LdapServer": "",
|
||||
"LdapPort": 389,
|
||||
"ConnectionSecurity": "",
|
||||
|
||||
@@ -21,5 +21,5 @@ type LdapInterface interface {
|
||||
GetAllLdapUsers() ([]*model.User, *model.AppError)
|
||||
UserFromLdapUser(ldapUser *ldap.Entry) *model.User
|
||||
UserHasUpdateFromLdap(existingUser *model.User, currentLdapUser *model.User) bool
|
||||
UpdateLdapUser(existingUser *model.User, currentLdapUser *model.User) *model.User
|
||||
UpdateLocalLdapUser(existingUser *model.User, currentLdapUser *model.User) *model.User
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ func (workers *Workers) Start() *Workers {
|
||||
go workers.ElasticsearchAggregation.Run()
|
||||
}
|
||||
|
||||
if workers.LdapSync != nil && *workers.Config().LdapSettings.Enable {
|
||||
if workers.LdapSync != nil && *workers.Config().LdapSettings.EnableSync {
|
||||
go workers.LdapSync.Run()
|
||||
}
|
||||
|
||||
@@ -103,9 +103,9 @@ func (workers *Workers) handleConfigChange(oldConfig *model.Config, newConfig *m
|
||||
}
|
||||
|
||||
if workers.LdapSync != nil {
|
||||
if !*oldConfig.LdapSettings.Enable && *newConfig.LdapSettings.Enable {
|
||||
if !*oldConfig.LdapSettings.EnableSync && *newConfig.LdapSettings.EnableSync {
|
||||
go workers.LdapSync.Run()
|
||||
} else if *oldConfig.LdapSettings.Enable && !*newConfig.LdapSettings.Enable {
|
||||
} else if *oldConfig.LdapSettings.EnableSync && !*newConfig.LdapSettings.EnableSync {
|
||||
workers.LdapSync.Stop()
|
||||
}
|
||||
}
|
||||
@@ -128,7 +128,7 @@ func (workers *Workers) Stop() *Workers {
|
||||
workers.ElasticsearchAggregation.Stop()
|
||||
}
|
||||
|
||||
if workers.LdapSync != nil && *workers.Config().LdapSettings.Enable {
|
||||
if workers.LdapSync != nil && *workers.Config().LdapSettings.EnableSync {
|
||||
workers.LdapSync.Stop()
|
||||
}
|
||||
|
||||
|
||||
@@ -394,6 +394,7 @@ type ClientRequirements struct {
|
||||
type LdapSettings struct {
|
||||
// Basic
|
||||
Enable *bool
|
||||
EnableSync *bool
|
||||
LdapServer *string
|
||||
LdapPort *int
|
||||
ConnectionSecurity *string
|
||||
@@ -439,7 +440,9 @@ type LocalizationSettings struct {
|
||||
|
||||
type SamlSettings struct {
|
||||
// Basic
|
||||
Enable *bool
|
||||
Enable *bool
|
||||
EnableSyncWithLdap *bool
|
||||
|
||||
Verify *bool
|
||||
Encrypt *bool
|
||||
|
||||
@@ -987,6 +990,12 @@ func (o *Config) SetDefaults() {
|
||||
o.LdapSettings.Enable = NewBool(false)
|
||||
}
|
||||
|
||||
// When unset should default to LDAP Enabled
|
||||
if o.LdapSettings.EnableSync == nil {
|
||||
o.LdapSettings.EnableSync = new(bool)
|
||||
*o.LdapSettings.EnableSync = *o.LdapSettings.Enable
|
||||
}
|
||||
|
||||
if o.LdapSettings.LdapServer == nil {
|
||||
o.LdapSettings.LdapServer = NewString("")
|
||||
}
|
||||
@@ -1209,6 +1218,11 @@ func (o *Config) SetDefaults() {
|
||||
o.SamlSettings.Enable = NewBool(false)
|
||||
}
|
||||
|
||||
if o.SamlSettings.EnableSyncWithLdap == nil {
|
||||
o.SamlSettings.EnableSyncWithLdap = new(bool)
|
||||
*o.SamlSettings.EnableSyncWithLdap = false
|
||||
}
|
||||
|
||||
if o.SamlSettings.Verify == nil {
|
||||
o.SamlSettings.Verify = NewBool(true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user