From 1cb92b50035571ad14762d329bfa7359a1ebd7ec Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Fri, 26 Jul 2019 21:28:33 +0800 Subject: [PATCH] feature: allow keystone reset sysadmin password at boot --- pkg/keystone/models/users.go | 13 +++++++++++++ pkg/keystone/options/options.go | 1 + 2 files changed, 14 insertions(+) diff --git a/pkg/keystone/models/users.go b/pkg/keystone/models/users.go index 67a4ccbe58..7eb0ee90ac 100644 --- a/pkg/keystone/models/users.go +++ b/pkg/keystone/models/users.go @@ -178,6 +178,19 @@ func (manager *SUserManager) initSysUser() error { return errors.Wrap(err, "query") } if cnt == 1 { + // if ResetAdminUserPassword is true, reset sysadmin password + if options.Options.ResetAdminUserPassword { + usr := SUser{} + usr.SetModelManager(manager, &usr) + err = q.First(&usr) + if err != nil { + return errors.Wrap(err, "ResetAdminUserPassword Query user") + } + err = usr.initLocalData(options.Options.BootstrapAdminUserPassword) + if err != nil { + return errors.Wrap(err, "initLocalData") + } + } return nil } if cnt > 2 { diff --git a/pkg/keystone/options/options.go b/pkg/keystone/options/options.go index 5710ea4d27..121354d50b 100644 --- a/pkg/keystone/options/options.go +++ b/pkg/keystone/options/options.go @@ -31,6 +31,7 @@ type SKeystoneOptions struct { // SetupStateKey bool `help:"setup standalone fernet keys for openid state" token:"setup_state_key"` BootstrapAdminUserPassword string `help:"bootstreap sysadmin user password" default:"sysadmin"` + ResetAdminUserPassword bool `help:"reset sysadmin password if exists and this option is true"` AutoSyncIntervalSeconds int `help:"frequency to check auto sync tasks" default:"30"`