mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-20 23:07:33 +00:00
ed80a8bb1e
* feat(actions): begin api * feat(actions): begin api * api and projections * fix: handle multiple statements for a single event in projections * export func type * fix test * update to new reduce interface * flows in login * feat: jwt idp * feat: command side * feat: add tests * actions and flows * fill idp views with jwt idps and return apis * add jwtEndpoint to jwt idp * begin jwt request handling * add feature * merge * merge * handle jwt idp * cleanup * bug fixes * autoregister * get token from specific header name * fix: proto * fixes * i18n * begin tests * fix and log http proxy * remove docker cache * fixes * usergrants in actions api * tests adn cleanup * cleanup * fix add user grant * set login context * i18n Co-authored-by: fabi <fabienne.gerschwiler@gmail.com>
122 lines
2.9 KiB
Go
122 lines
2.9 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/caos/zitadel/internal/domain"
|
|
)
|
|
|
|
type FeaturesView struct {
|
|
AggregateID string
|
|
CreationDate time.Time
|
|
ChangeDate time.Time
|
|
Sequence uint64
|
|
Default bool
|
|
|
|
TierName string
|
|
TierDescription string
|
|
State domain.FeaturesState
|
|
StateDescription string
|
|
AuditLogRetention time.Duration
|
|
LoginPolicyFactors bool
|
|
LoginPolicyIDP bool
|
|
LoginPolicyPasswordless bool
|
|
LoginPolicyRegistration bool
|
|
LoginPolicyUsernameLogin bool
|
|
LoginPolicyPasswordReset bool
|
|
PasswordComplexityPolicy bool
|
|
LabelPolicyPrivateLabel bool
|
|
LabelPolicyWatermark bool
|
|
CustomDomain bool
|
|
PrivacyPolicy bool
|
|
MetadataUser bool
|
|
CustomTextMessage bool
|
|
CustomTextLogin bool
|
|
LockoutPolicy bool
|
|
Actions bool
|
|
}
|
|
|
|
func (f *FeaturesView) FeatureList() []string {
|
|
list := make([]string, 0)
|
|
if f.LoginPolicyFactors {
|
|
list = append(list, domain.FeatureLoginPolicyFactors)
|
|
}
|
|
if f.LoginPolicyIDP {
|
|
list = append(list, domain.FeatureLoginPolicyIDP)
|
|
}
|
|
if f.LoginPolicyPasswordless {
|
|
list = append(list, domain.FeatureLoginPolicyPasswordless)
|
|
}
|
|
if f.LoginPolicyRegistration {
|
|
list = append(list, domain.FeatureLoginPolicyRegistration)
|
|
}
|
|
if f.LoginPolicyUsernameLogin {
|
|
list = append(list, domain.FeatureLoginPolicyUsernameLogin)
|
|
}
|
|
if f.LoginPolicyPasswordReset {
|
|
list = append(list, domain.FeatureLoginPolicyPasswordReset)
|
|
}
|
|
if f.PasswordComplexityPolicy {
|
|
list = append(list, domain.FeaturePasswordComplexityPolicy)
|
|
}
|
|
if f.LabelPolicyPrivateLabel {
|
|
list = append(list, domain.FeatureLabelPolicyPrivateLabel)
|
|
}
|
|
if f.LabelPolicyWatermark {
|
|
list = append(list, domain.FeatureLabelPolicyWatermark)
|
|
}
|
|
if f.CustomDomain {
|
|
list = append(list, domain.FeatureCustomDomain)
|
|
}
|
|
if f.PrivacyPolicy {
|
|
list = append(list, domain.FeaturePrivacyPolicy)
|
|
}
|
|
if f.MetadataUser {
|
|
list = append(list, domain.FeatureMetadataUser)
|
|
}
|
|
if f.CustomTextMessage {
|
|
list = append(list, domain.FeatureCustomTextMessage)
|
|
}
|
|
if f.CustomTextLogin {
|
|
list = append(list, domain.FeatureCustomTextLogin)
|
|
}
|
|
if f.LockoutPolicy {
|
|
list = append(list, domain.FeatureLockoutPolicy)
|
|
}
|
|
if f.Actions {
|
|
list = append(list, domain.FeatureActions)
|
|
}
|
|
return list
|
|
}
|
|
|
|
type FeaturesSearchRequest struct {
|
|
Offset uint64
|
|
Limit uint64
|
|
SortingColumn FeaturesSearchKey
|
|
Asc bool
|
|
Queries []*FeaturesSearchQuery
|
|
}
|
|
|
|
type FeaturesSearchKey int32
|
|
|
|
const (
|
|
FeaturesSearchKeyUnspecified FeaturesSearchKey = iota
|
|
FeaturesSearchKeyAggregateID
|
|
FeaturesSearchKeyDefault
|
|
)
|
|
|
|
type FeaturesSearchQuery struct {
|
|
Key FeaturesSearchKey
|
|
Method domain.SearchMethod
|
|
Value interface{}
|
|
}
|
|
|
|
type FeaturesSearchResult struct {
|
|
Offset uint64
|
|
Limit uint64
|
|
TotalResult uint64
|
|
Result []*FeaturesView
|
|
Sequence uint64
|
|
Timestamp time.Time
|
|
}
|