78 строки
1.9 KiB
Go
78 строки
1.9 KiB
Go
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
package commands
|
|
|
|
import (
|
|
"github.com/mattermost/mattermost-server/model"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var LdapCmd = &cobra.Command{
|
|
Use: "ldap",
|
|
Short: "LDAP related utilities",
|
|
}
|
|
|
|
var LdapSyncCmd = &cobra.Command{
|
|
Use: "sync",
|
|
Short: "Synchronize now",
|
|
Long: "Synchronize all LDAP users now.",
|
|
Example: " ldap sync",
|
|
RunE: ldapSyncCmdF,
|
|
}
|
|
|
|
var LdapIdMigrate = &cobra.Command{
|
|
Use: "idmigrate",
|
|
Short: "Migrate LDAP IdAttribute to new value",
|
|
Long: "Migrate LDAP IdAttribute to new value. Run this utility then change the IdAttribute to the new value.",
|
|
Example: " ldap idmigrate objectGUID",
|
|
Args: cobra.ExactArgs(1),
|
|
RunE: ldapIdMigrateCmdF,
|
|
}
|
|
|
|
func init() {
|
|
LdapCmd.AddCommand(
|
|
LdapSyncCmd,
|
|
LdapIdMigrate,
|
|
)
|
|
RootCmd.AddCommand(LdapCmd)
|
|
}
|
|
|
|
func ldapSyncCmdF(command *cobra.Command, args []string) error {
|
|
a, err := InitDBCommandContextCobra(command)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer a.Shutdown()
|
|
|
|
if ldapI := a.Ldap; ldapI != nil {
|
|
job, err := ldapI.StartSynchronizeJob(true)
|
|
if err != nil || job.Status == model.JOB_STATUS_ERROR || job.Status == model.JOB_STATUS_CANCELED {
|
|
CommandPrintErrorln("ERROR: AD/LDAP Synchronization please check the server logs")
|
|
} else {
|
|
CommandPrettyPrintln("SUCCESS: AD/LDAP Synchronization Complete")
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func ldapIdMigrateCmdF(command *cobra.Command, args []string) error {
|
|
a, err := InitDBCommandContextCobra(command)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer a.Shutdown()
|
|
|
|
toAttribute := args[0]
|
|
if ldapI := a.Ldap; ldapI != nil {
|
|
if err := ldapI.MigrateIDAttribute(toAttribute); err != nil {
|
|
CommandPrintErrorln("ERROR: AD/LDAP IdAttribute migration failed! Error: " + err.Error())
|
|
} else {
|
|
CommandPrettyPrintln("SUCCESS: AD/LDAP IdAttribute migration complete. You can now change your IdAttribute to: " + toAttribute)
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|