mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-18 13:57:32 +00:00
81 lines
3.1 KiB
Go
81 lines
3.1 KiB
Go
package features
|
|
|
|
import (
|
|
"google.golang.org/protobuf/types/known/durationpb"
|
|
|
|
object_grpc "github.com/caos/zitadel/internal/api/grpc/object"
|
|
"github.com/caos/zitadel/internal/domain"
|
|
"github.com/caos/zitadel/internal/query"
|
|
features_pb "github.com/caos/zitadel/pkg/grpc/features"
|
|
)
|
|
|
|
func ModelFeaturesToPb(features *query.Features) *features_pb.Features {
|
|
return &features_pb.Features{
|
|
IsDefault: features.IsDefault,
|
|
Tier: FeatureTierToPb(features.TierName, features.TierDescription, features.State, features.StateDescription),
|
|
AuditLogRetention: durationpb.New(features.AuditLogRetention),
|
|
LoginPolicyFactors: features.LoginPolicyFactors,
|
|
LoginPolicyIdp: features.LoginPolicyIDP,
|
|
LoginPolicyPasswordless: features.LoginPolicyPasswordless,
|
|
LoginPolicyRegistration: features.LoginPolicyRegistration,
|
|
LoginPolicyUsernameLogin: features.LoginPolicyUsernameLogin,
|
|
LoginPolicyPasswordReset: features.LoginPolicyPasswordReset,
|
|
PasswordComplexityPolicy: features.PasswordComplexityPolicy,
|
|
LabelPolicy: features.LabelPolicyPrivateLabel,
|
|
CustomDomain: features.CustomDomain,
|
|
LabelPolicyPrivateLabel: features.LabelPolicyPrivateLabel,
|
|
LabelPolicyWatermark: features.LabelPolicyWatermark,
|
|
PrivacyPolicy: features.PrivacyPolicy,
|
|
CustomText: features.CustomTextMessage,
|
|
CustomTextMessage: features.CustomTextMessage,
|
|
CustomTextLogin: features.CustomTextLogin,
|
|
MetadataUser: features.MetadataUser,
|
|
LockoutPolicy: features.LockoutPolicy,
|
|
Actions: features.Actions,
|
|
Details: object_grpc.ChangeToDetailsPb(
|
|
features.Sequence,
|
|
features.ChangeDate,
|
|
features.AggregateID,
|
|
),
|
|
}
|
|
}
|
|
|
|
func FeatureTierToPb(name, description string, status domain.FeaturesState, statusDescription string) *features_pb.FeatureTier {
|
|
return &features_pb.FeatureTier{
|
|
Name: name,
|
|
Description: description,
|
|
State: FeaturesStateToPb(status),
|
|
StatusInfo: statusDescription,
|
|
}
|
|
}
|
|
|
|
func FeaturesStateToPb(status domain.FeaturesState) features_pb.FeaturesState {
|
|
switch status {
|
|
case domain.FeaturesStateActive:
|
|
return features_pb.FeaturesState_FEATURES_STATE_ACTIVE
|
|
case domain.FeaturesStateActionRequired:
|
|
return features_pb.FeaturesState_FEATURES_STATE_ACTION_REQUIRED
|
|
case domain.FeaturesStateCanceled:
|
|
return features_pb.FeaturesState_FEATURES_STATE_CANCELED
|
|
case domain.FeaturesStateGrandfathered:
|
|
return features_pb.FeaturesState_FEATURES_STATE_GRANDFATHERED
|
|
default:
|
|
return features_pb.FeaturesState_FEATURES_STATE_ACTIVE
|
|
}
|
|
}
|
|
|
|
func FeaturesStateToDomain(status features_pb.FeaturesState) domain.FeaturesState {
|
|
switch status {
|
|
case features_pb.FeaturesState_FEATURES_STATE_ACTIVE:
|
|
return domain.FeaturesStateActive
|
|
case features_pb.FeaturesState_FEATURES_STATE_ACTION_REQUIRED:
|
|
return domain.FeaturesStateActionRequired
|
|
case features_pb.FeaturesState_FEATURES_STATE_CANCELED:
|
|
return domain.FeaturesStateCanceled
|
|
case features_pb.FeaturesState_FEATURES_STATE_GRANDFATHERED:
|
|
return domain.FeaturesStateGrandfathered
|
|
default:
|
|
return -1
|
|
}
|
|
}
|