Support cred manager for organization.MasterPassword

This commit is contained in:
Yang Luo
2021-12-22 20:56:22 +08:00
parent d6c2d0f3e8
commit b95f107a60
2 changed files with 13 additions and 2 deletions

View File

@ -107,8 +107,10 @@ func CheckPassword(user *User, password string) string {
credManager := cred.GetCredManager(organization.PasswordType)
if credManager != nil {
if organization.MasterPassword != "" && organization.MasterPassword == password {
return ""
if organization.MasterPassword != "" {
if credManager.IsPasswordCorrect(password, organization.MasterPassword, "", organization.PasswordSalt) {
return ""
}
}
if credManager.IsPasswordCorrect(password, user.Password, user.PasswordSalt, organization.PasswordSalt) {

View File

@ -15,6 +15,7 @@
package object
import (
"github.com/casbin/casdoor/cred"
"github.com/casbin/casdoor/util"
"xorm.io/core"
)
@ -111,6 +112,14 @@ func UpdateOrganization(id string, organization *Organization) bool {
return false
}
if organization.MasterPassword != "" {
credManager := cred.GetCredManager(organization.PasswordType)
if credManager != nil {
hashedPassword := credManager.GetHashedPassword(organization.MasterPassword, "", organization.PasswordSalt)
organization.MasterPassword = hashedPassword
}
}
affected, err := adapter.Engine.ID(core.PK{owner, name}).AllCols().Update(organization)
if err != nil {
panic(err)