mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 02:37:24 +08:00
fix: keystone user password history check should skip system account
This commit is contained in:
@@ -112,12 +112,12 @@ func validatePasswordComplexity(password string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (manager *SPasswordManager) validatePassword(localUserId int, password string) error {
|
||||
func (manager *SPasswordManager) validatePassword(localUserId int, password string, skipHistoryCheck bool) error {
|
||||
err := validatePasswordComplexity(password)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "validatePasswordComplexity")
|
||||
}
|
||||
if o.Options.PasswordUniqueHistoryCheck > 0 {
|
||||
if !skipHistoryCheck && o.Options.PasswordUniqueHistoryCheck > 0 {
|
||||
shaPass := shaPassword(password)
|
||||
histPasses, err := manager.fetchByLocaluserId(localUserId)
|
||||
if err != nil {
|
||||
|
||||
@@ -468,7 +468,11 @@ func (user *SUser) ValidateUpdateData(ctx context.Context, userCred mcclient.Tok
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "UserManager.FetchUserExtended")
|
||||
}
|
||||
err = PasswordManager.validatePassword(usrExt.LocalId, passwd)
|
||||
skipHistoryCheck := false
|
||||
if user.IsSystemAccount.Bool() {
|
||||
skipHistoryCheck = true
|
||||
}
|
||||
err = PasswordManager.validatePassword(usrExt.LocalId, passwd, skipHistoryCheck)
|
||||
if err != nil {
|
||||
return nil, httperrors.NewInputParameterError("invalid password: %s", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user