Add MasterPassword to organization.

This commit is contained in:
Gucheng Wang
2021-11-06 21:14:53 +08:00
parent 4d71725bf5
commit 467d709b8e
6 changed files with 39 additions and 5 deletions

View File

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

View File

@ -31,6 +31,7 @@ type Organization struct {
PasswordSalt string `xorm:"varchar(100)" json:"passwordSalt"`
PhonePrefix string `xorm:"varchar(10)" json:"phonePrefix"`
DefaultAvatar string `xorm:"varchar(100)" json:"defaultAvatar"`
MasterPassword string `xorm:"varchar(100)" json:"masterPassword"`
EnableSoftDeletion bool `json:"enableSoftDeletion"`
}
@ -86,6 +87,24 @@ func GetOrganization(id string) *Organization {
return getOrganization(owner, name)
}
func GetMaskedOrganization(organization *Organization) *Organization {
if organization == nil {
return nil
}
if organization.MasterPassword != "" {
organization.MasterPassword = "***"
}
return organization
}
func GetMaskedOrganizations(organizations []*Organization) []*Organization {
for _, organization := range organizations {
organization = GetMaskedOrganization(organization)
}
return organizations
}
func UpdateOrganization(id string, organization *Organization) bool {
owner, name := util.GetOwnerAndNameFromId(id)
if getOrganization(owner, name) == nil {