mirror of
https://github.com/zitadel/zitadel.git
synced 2025-04-30 02:40:48 +00:00

* feat: add login check lifetimes to login policy * feat: org features test * feat: read lifetimes from loginpolicy
56 lines
2.2 KiB
Go
56 lines
2.2 KiB
Go
package policy
|
|
|
|
import (
|
|
"github.com/caos/zitadel/internal/domain"
|
|
"github.com/caos/zitadel/internal/query"
|
|
"github.com/caos/zitadel/pkg/grpc/object"
|
|
policy_pb "github.com/caos/zitadel/pkg/grpc/policy"
|
|
"google.golang.org/protobuf/types/known/durationpb"
|
|
timestamp_pb "google.golang.org/protobuf/types/known/timestamppb"
|
|
)
|
|
|
|
func ModelLoginPolicyToPb(policy *query.LoginPolicy) *policy_pb.LoginPolicy {
|
|
return &policy_pb.LoginPolicy{
|
|
IsDefault: policy.IsDefault,
|
|
AllowUsernamePassword: policy.AllowUsernamePassword,
|
|
AllowRegister: policy.AllowRegister,
|
|
AllowExternalIdp: policy.AllowExternalIDPs,
|
|
ForceMfa: policy.ForceMFA,
|
|
PasswordlessType: ModelPasswordlessTypeToPb(policy.PasswordlessType),
|
|
HidePasswordReset: policy.HidePasswordReset,
|
|
PasswordCheckLifetime: durationpb.New(policy.PasswordCheckLifetime),
|
|
ExternalLoginCheckLifetime: durationpb.New(policy.ExternalLoginCheckLifetime),
|
|
MfaInitSkipLifetime: durationpb.New(policy.MFAInitSkipLifetime),
|
|
SecondFactorCheckLifetime: durationpb.New(policy.SecondFactorCheckLifetime),
|
|
MultiFactorCheckLifetime: durationpb.New(policy.MultiFactorCheckLifetime),
|
|
Details: &object.ObjectDetails{
|
|
Sequence: policy.Sequence,
|
|
CreationDate: timestamp_pb.New(policy.CreationDate),
|
|
ChangeDate: timestamp_pb.New(policy.ChangeDate),
|
|
ResourceOwner: policy.OrgID,
|
|
},
|
|
}
|
|
}
|
|
|
|
func PasswordlessTypeToDomain(passwordlessType policy_pb.PasswordlessType) domain.PasswordlessType {
|
|
switch passwordlessType {
|
|
case policy_pb.PasswordlessType_PASSWORDLESS_TYPE_ALLOWED:
|
|
return domain.PasswordlessTypeAllowed
|
|
case policy_pb.PasswordlessType_PASSWORDLESS_TYPE_NOT_ALLOWED:
|
|
return domain.PasswordlessTypeNotAllowed
|
|
default:
|
|
return -1
|
|
}
|
|
}
|
|
|
|
func ModelPasswordlessTypeToPb(passwordlessType domain.PasswordlessType) policy_pb.PasswordlessType {
|
|
switch passwordlessType {
|
|
case domain.PasswordlessTypeAllowed:
|
|
return policy_pb.PasswordlessType_PASSWORDLESS_TYPE_ALLOWED
|
|
case domain.PasswordlessTypeNotAllowed:
|
|
return policy_pb.PasswordlessType_PASSWORDLESS_TYPE_NOT_ALLOWED
|
|
default:
|
|
return policy_pb.PasswordlessType_PASSWORDLESS_TYPE_NOT_ALLOWED
|
|
}
|
|
}
|