mirror of
https://github.com/andwati/zitadel.git
synced 2026-11-07 14:52:15 +00:00
feat: features (#1427)
* features * features * features * fix json tags * add features handler to auth * mocks for tests * add setup step * fixes * add featurelist to auth api * grandfather state and typos * typo * merge new-eventstore * fix login policy tests * label policy in features * audit log retention
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
package command
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/caos/zitadel/internal/domain"
|
||||
"github.com/caos/zitadel/internal/eventstore"
|
||||
"github.com/caos/zitadel/internal/repository/features"
|
||||
)
|
||||
|
||||
type FeaturesWriteModel struct {
|
||||
eventstore.WriteModel
|
||||
|
||||
TierName string
|
||||
TierDescription string
|
||||
State domain.FeaturesState
|
||||
StateDescription string
|
||||
AuditLogRetention time.Duration
|
||||
LoginPolicyFactors bool
|
||||
LoginPolicyIDP bool
|
||||
LoginPolicyPasswordless bool
|
||||
LoginPolicyRegistration bool
|
||||
LoginPolicyUsernameLogin bool
|
||||
PasswordComplexityPolicy bool
|
||||
LabelPolicy bool
|
||||
}
|
||||
|
||||
func (wm *FeaturesWriteModel) Reduce() error {
|
||||
for _, event := range wm.Events {
|
||||
switch e := event.(type) {
|
||||
case *features.FeaturesSetEvent:
|
||||
if e.TierName != nil {
|
||||
wm.TierName = *e.TierName
|
||||
}
|
||||
if e.TierDescription != nil {
|
||||
wm.TierDescription = *e.TierDescription
|
||||
}
|
||||
wm.State = domain.FeaturesStateActive
|
||||
if e.State != nil {
|
||||
wm.State = *e.State
|
||||
}
|
||||
if e.StateDescription != nil {
|
||||
wm.StateDescription = *e.StateDescription
|
||||
}
|
||||
if e.AuditLogRetention != nil {
|
||||
wm.AuditLogRetention = *e.AuditLogRetention
|
||||
}
|
||||
if e.LoginPolicyFactors != nil {
|
||||
wm.LoginPolicyFactors = *e.LoginPolicyFactors
|
||||
}
|
||||
if e.LoginPolicyIDP != nil {
|
||||
wm.LoginPolicyIDP = *e.LoginPolicyIDP
|
||||
}
|
||||
if e.LoginPolicyPasswordless != nil {
|
||||
wm.LoginPolicyPasswordless = *e.LoginPolicyPasswordless
|
||||
}
|
||||
if e.LoginPolicyRegistration != nil {
|
||||
wm.LoginPolicyRegistration = *e.LoginPolicyRegistration
|
||||
}
|
||||
if e.LoginPolicyUsernameLogin != nil {
|
||||
wm.LoginPolicyUsernameLogin = *e.LoginPolicyUsernameLogin
|
||||
}
|
||||
if e.PasswordComplexityPolicy != nil {
|
||||
wm.PasswordComplexityPolicy = *e.PasswordComplexityPolicy
|
||||
}
|
||||
if e.LabelPolicy != nil {
|
||||
wm.LabelPolicy = *e.LabelPolicy
|
||||
}
|
||||
case *features.FeaturesRemovedEvent:
|
||||
wm.State = domain.FeaturesStateRemoved
|
||||
}
|
||||
}
|
||||
return wm.WriteModel.Reduce()
|
||||
}
|
||||
Reference in New Issue
Block a user