25 lines
786 B
Go
25 lines
786 B
Go
|
|
package member
|
||
|
|
|
||
|
|
import (
|
||
|
|
memberenum "gateway/internal/model/member/domain/enum"
|
||
|
|
domusecase "gateway/internal/model/member/domain/usecase"
|
||
|
|
)
|
||
|
|
|
||
|
|
func ensurePlatformNativePassword(member *domusecase.MemberDTO) error {
|
||
|
|
if member == nil {
|
||
|
|
return errb.ResNotFound("member", "")
|
||
|
|
}
|
||
|
|
switch member.Origin {
|
||
|
|
case memberenum.MemberOriginPlatformNative:
|
||
|
|
return nil
|
||
|
|
case memberenum.MemberOriginOIDC:
|
||
|
|
return errb.AuthForbidden("social login accounts cannot change password here")
|
||
|
|
case memberenum.MemberOriginLDAP:
|
||
|
|
return errb.AuthForbidden("ldap accounts cannot change password here")
|
||
|
|
case memberenum.MemberOriginSCIM:
|
||
|
|
return errb.AuthForbidden("scim provisioned accounts cannot change password here")
|
||
|
|
default:
|
||
|
|
return errb.AuthForbidden("account cannot change password here")
|
||
|
|
}
|
||
|
|
}
|