mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 21:37:32 +00:00
fix: rename iam to instance (#3345)
* fix: rename iam command side to instance * fix: rename iam command side to instance * fix: rename iam command side to instance * fix: rename iam command side to instance * fix: rename orgiampolicy to domain policy * fix: merge conflicts * fix: protos * fix: md files * implement deprecated org iam policy again Co-authored-by: Livio Amstutz <livio.a@gmail.com>
This commit is contained in:
@@ -8,22 +8,22 @@ import (
|
||||
iam_model "github.com/caos/zitadel/internal/iam/model"
|
||||
)
|
||||
|
||||
type OrgIAMPolicy struct {
|
||||
type DomainPolicy struct {
|
||||
es_models.ObjectRoot
|
||||
|
||||
State int32 `json:"-"`
|
||||
UserLoginMustBeDomain bool `json:"userLoginMustBeDomain"`
|
||||
}
|
||||
|
||||
func OrgIAMPolicyToModel(policy *OrgIAMPolicy) *iam_model.OrgIAMPolicy {
|
||||
return &iam_model.OrgIAMPolicy{
|
||||
func DomainPolicyToModel(policy *DomainPolicy) *iam_model.DomainPolicy {
|
||||
return &iam_model.DomainPolicy{
|
||||
ObjectRoot: policy.ObjectRoot,
|
||||
State: iam_model.PolicyState(policy.State),
|
||||
UserLoginMustBeDomain: policy.UserLoginMustBeDomain,
|
||||
}
|
||||
}
|
||||
|
||||
func (p *OrgIAMPolicy) Changes(changed *OrgIAMPolicy) map[string]interface{} {
|
||||
func (p *DomainPolicy) Changes(changed *DomainPolicy) map[string]interface{} {
|
||||
changes := make(map[string]interface{}, 1)
|
||||
|
||||
if p.UserLoginMustBeDomain != changed.UserLoginMustBeDomain {
|
||||
@@ -32,7 +32,7 @@ func (p *OrgIAMPolicy) Changes(changed *OrgIAMPolicy) map[string]interface{} {
|
||||
return changes
|
||||
}
|
||||
|
||||
func (p *OrgIAMPolicy) SetData(event *es_models.Event) error {
|
||||
func (p *DomainPolicy) SetData(event *es_models.Event) error {
|
||||
err := json.Unmarshal(event.Data, p)
|
||||
if err != nil {
|
||||
return errors.ThrowInternal(err, "EVENT-7JS9d", "unable to unmarshal data")
|
||||
|
@@ -6,8 +6,8 @@ import (
|
||||
|
||||
func TestOrgIAMPolicyChanges(t *testing.T) {
|
||||
type args struct {
|
||||
existing *OrgIAMPolicy
|
||||
new *OrgIAMPolicy
|
||||
existing *DomainPolicy
|
||||
new *DomainPolicy
|
||||
}
|
||||
type res struct {
|
||||
changesLen int
|
||||
@@ -20,8 +20,8 @@ func TestOrgIAMPolicyChanges(t *testing.T) {
|
||||
{
|
||||
name: "org iam policy all attributes change",
|
||||
args: args{
|
||||
existing: &OrgIAMPolicy{UserLoginMustBeDomain: true},
|
||||
new: &OrgIAMPolicy{UserLoginMustBeDomain: false},
|
||||
existing: &DomainPolicy{UserLoginMustBeDomain: true},
|
||||
new: &DomainPolicy{UserLoginMustBeDomain: false},
|
||||
},
|
||||
res: res{
|
||||
changesLen: 1,
|
||||
@@ -30,8 +30,8 @@ func TestOrgIAMPolicyChanges(t *testing.T) {
|
||||
{
|
||||
name: "no changes",
|
||||
args: args{
|
||||
existing: &OrgIAMPolicy{UserLoginMustBeDomain: true},
|
||||
new: &OrgIAMPolicy{UserLoginMustBeDomain: true},
|
||||
existing: &DomainPolicy{UserLoginMustBeDomain: true},
|
||||
new: &DomainPolicy{UserLoginMustBeDomain: true},
|
||||
},
|
||||
res: res{
|
||||
changesLen: 0,
|
||||
|
@@ -5,7 +5,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/caos/zitadel/internal/crypto"
|
||||
"github.com/caos/zitadel/internal/repository/iam"
|
||||
"github.com/caos/zitadel/internal/repository/instance"
|
||||
"github.com/caos/zitadel/internal/repository/org"
|
||||
|
||||
es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model"
|
||||
@@ -109,8 +109,8 @@ func (i *IDPConfigView) AppendEvent(providerType model.IDPProviderType, event *m
|
||||
err = i.SetData(event)
|
||||
case es_model.OIDCIDPConfigChanged, org_es_model.OIDCIDPConfigChanged,
|
||||
es_model.IDPConfigChanged, org_es_model.IDPConfigChanged,
|
||||
models.EventType(org.IDPJWTConfigAddedEventType), models.EventType(iam.IDPJWTConfigAddedEventType),
|
||||
models.EventType(org.IDPJWTConfigChangedEventType), models.EventType(iam.IDPJWTConfigChangedEventType):
|
||||
models.EventType(org.IDPJWTConfigAddedEventType), models.EventType(instance.IDPJWTConfigAddedEventType),
|
||||
models.EventType(org.IDPJWTConfigChangedEventType), models.EventType(instance.IDPJWTConfigChangedEventType):
|
||||
err = i.SetData(event)
|
||||
case es_model.IDPConfigDeactivated, org_es_model.IDPConfigDeactivated:
|
||||
i.IDPState = int32(model.IDPConfigStateInactive)
|
||||
|
@@ -1,159 +0,0 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"github.com/caos/zitadel/internal/domain"
|
||||
org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model"
|
||||
|
||||
es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model"
|
||||
|
||||
"github.com/caos/zitadel/internal/eventstore/v1/models"
|
||||
"github.com/caos/zitadel/internal/iam/model"
|
||||
)
|
||||
|
||||
const (
|
||||
MessageTextKeyAggregateID = "aggregate_id"
|
||||
MessageTextKeyMessageTextType = "message_text_type"
|
||||
MessageTextKeyLanguage = "language"
|
||||
)
|
||||
|
||||
type MessageTextView struct {
|
||||
AggregateID string `json:"-" gorm:"column:aggregate_id;primary_key"`
|
||||
CreationDate time.Time `json:"-" gorm:"column:creation_date"`
|
||||
ChangeDate time.Time `json:"-" gorm:"column:change_date"`
|
||||
State int32 `json:"-" gorm:"column:message_text_state"`
|
||||
|
||||
MessageTextType string `json:"-" gorm:"column:message_text_type;primary_key"`
|
||||
Language string `json:"-" gorm:"column:language;primary_key"`
|
||||
Title string `json:"-" gorm:"column:title"`
|
||||
PreHeader string `json:"-" gorm:"column:pre_header"`
|
||||
Subject string `json:"-" gorm:"column:subject"`
|
||||
Greeting string `json:"-" gorm:"column:greeting"`
|
||||
Text string `json:"-" gorm:"column:text"`
|
||||
ButtonText string `json:"-" gorm:"column:button_text"`
|
||||
FooterText string `json:"-" gorm:"column:footer_text"`
|
||||
Default bool `json:"-" gorm:"-"`
|
||||
|
||||
Sequence uint64 `json:"-" gorm:"column:sequence"`
|
||||
}
|
||||
|
||||
func MessageTextViewFromModel(template *model.MessageTextView) *MessageTextView {
|
||||
return &MessageTextView{
|
||||
AggregateID: template.AggregateID,
|
||||
Sequence: template.Sequence,
|
||||
CreationDate: template.CreationDate,
|
||||
ChangeDate: template.ChangeDate,
|
||||
MessageTextType: template.MessageTextType,
|
||||
Language: template.Language.String(),
|
||||
Title: template.Title,
|
||||
PreHeader: template.PreHeader,
|
||||
Subject: template.Subject,
|
||||
Greeting: template.Greeting,
|
||||
Text: template.Text,
|
||||
ButtonText: template.ButtonText,
|
||||
FooterText: template.FooterText,
|
||||
Default: template.Default,
|
||||
}
|
||||
}
|
||||
|
||||
func messageTextsViewToModelArr(texts []*MessageTextView, defaultIn bool) []*model.MessageTextView {
|
||||
result := make([]*model.MessageTextView, len(texts))
|
||||
for i, r := range texts {
|
||||
r.Default = defaultIn
|
||||
result[i] = MessageTextViewToModel(r)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func MessageTextViewToModel(template *MessageTextView) *model.MessageTextView {
|
||||
lang := language.Make(template.Language)
|
||||
return &model.MessageTextView{
|
||||
AggregateID: template.AggregateID,
|
||||
Sequence: template.Sequence,
|
||||
CreationDate: template.CreationDate,
|
||||
ChangeDate: template.ChangeDate,
|
||||
MessageTextType: template.MessageTextType,
|
||||
Language: lang,
|
||||
Title: template.Title,
|
||||
PreHeader: template.PreHeader,
|
||||
Subject: template.Subject,
|
||||
Greeting: template.Greeting,
|
||||
Text: template.Text,
|
||||
ButtonText: template.ButtonText,
|
||||
FooterText: template.FooterText,
|
||||
Default: template.Default,
|
||||
}
|
||||
}
|
||||
|
||||
func (i *MessageTextView) AppendEvent(event *models.Event) (err error) {
|
||||
i.Sequence = event.Sequence
|
||||
switch event.Type {
|
||||
case es_model.CustomTextSet, org_es_model.CustomTextSet:
|
||||
i.setRootData(event)
|
||||
customText := new(CustomTextView)
|
||||
err = customText.SetData(event)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if customText.Key == domain.MessageTitle {
|
||||
i.Title = customText.Text
|
||||
}
|
||||
if customText.Key == domain.MessagePreHeader {
|
||||
i.PreHeader = customText.Text
|
||||
}
|
||||
if customText.Key == domain.MessageSubject {
|
||||
i.Subject = customText.Text
|
||||
}
|
||||
if customText.Key == domain.MessageGreeting {
|
||||
i.Greeting = customText.Text
|
||||
}
|
||||
if customText.Key == domain.MessageText {
|
||||
i.Text = customText.Text
|
||||
}
|
||||
if customText.Key == domain.MessageButtonText {
|
||||
i.ButtonText = customText.Text
|
||||
}
|
||||
if customText.Key == domain.MessageFooterText {
|
||||
i.FooterText = customText.Text
|
||||
}
|
||||
i.ChangeDate = event.CreationDate
|
||||
case es_model.CustomTextRemoved, org_es_model.CustomTextRemoved:
|
||||
customText := new(CustomTextView)
|
||||
err = customText.SetData(event)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if customText.Key == domain.MessageTitle {
|
||||
i.Title = ""
|
||||
}
|
||||
if customText.Key == domain.MessagePreHeader {
|
||||
i.PreHeader = ""
|
||||
}
|
||||
if customText.Key == domain.MessageSubject {
|
||||
i.Subject = ""
|
||||
}
|
||||
if customText.Key == domain.MessageGreeting {
|
||||
i.Greeting = ""
|
||||
}
|
||||
if customText.Key == domain.MessageText {
|
||||
i.Text = ""
|
||||
}
|
||||
if customText.Key == domain.MessageButtonText {
|
||||
i.ButtonText = ""
|
||||
}
|
||||
if customText.Key == domain.MessageFooterText {
|
||||
i.FooterText = ""
|
||||
}
|
||||
i.ChangeDate = event.CreationDate
|
||||
case org_es_model.CustomTextMessageRemoved:
|
||||
i.State = int32(model.PolicyStateRemoved)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (r *MessageTextView) setRootData(event *models.Event) {
|
||||
r.AggregateID = event.AggregateID
|
||||
}
|
@@ -1,63 +0,0 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"github.com/caos/zitadel/internal/domain"
|
||||
iam_model "github.com/caos/zitadel/internal/iam/model"
|
||||
"github.com/caos/zitadel/internal/view/repository"
|
||||
)
|
||||
|
||||
type MessageTextSearchRequest iam_model.MessageTextSearchRequest
|
||||
type MessageTextSearchQuery iam_model.MessageTextSearchQuery
|
||||
type MessageTextSearchKey iam_model.MessageTextSearchKey
|
||||
|
||||
func (req MessageTextSearchRequest) GetLimit() uint64 {
|
||||
return req.Limit
|
||||
}
|
||||
|
||||
func (req MessageTextSearchRequest) GetOffset() uint64 {
|
||||
return req.Offset
|
||||
}
|
||||
|
||||
func (req MessageTextSearchRequest) GetSortingColumn() repository.ColumnKey {
|
||||
if req.SortingColumn == iam_model.MessageTextSearchKeyUnspecified {
|
||||
return nil
|
||||
}
|
||||
return MessageTextSearchKey(req.SortingColumn)
|
||||
}
|
||||
|
||||
func (req MessageTextSearchRequest) GetAsc() bool {
|
||||
return req.Asc
|
||||
}
|
||||
|
||||
func (req MessageTextSearchRequest) GetQueries() []repository.SearchQuery {
|
||||
result := make([]repository.SearchQuery, len(req.Queries))
|
||||
for i, q := range req.Queries {
|
||||
result[i] = MessageTextSearchQuery{Key: q.Key, Value: q.Value, Method: q.Method}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func (req MessageTextSearchQuery) GetKey() repository.ColumnKey {
|
||||
return MessageTextSearchKey(req.Key)
|
||||
}
|
||||
|
||||
func (req MessageTextSearchQuery) GetMethod() domain.SearchMethod {
|
||||
return req.Method
|
||||
}
|
||||
|
||||
func (req MessageTextSearchQuery) GetValue() interface{} {
|
||||
return req.Value
|
||||
}
|
||||
|
||||
func (key MessageTextSearchKey) ToColumnName() string {
|
||||
switch iam_model.MessageTextSearchKey(key) {
|
||||
case iam_model.MessageTextSearchKeyAggregateID:
|
||||
return MessageTextKeyAggregateID
|
||||
case iam_model.MessageTextSearchKeyMessageTextType:
|
||||
return MessageTextKeyMessageTextType
|
||||
case iam_model.MessageTextSearchKeyLanguage:
|
||||
return MessageTextKeyLanguage
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
@@ -1,79 +0,0 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
"github.com/caos/zitadel/internal/domain"
|
||||
usr_model "github.com/caos/zitadel/internal/user/repository/eventsourcing/model"
|
||||
|
||||
"github.com/caos/logging"
|
||||
|
||||
caos_errs "github.com/caos/zitadel/internal/errors"
|
||||
"github.com/caos/zitadel/internal/eventstore/v1/models"
|
||||
)
|
||||
|
||||
const (
|
||||
MetadataKeyAggregateID = "aggregate_id"
|
||||
MetadataKeyResourceOwner = "resource_owner"
|
||||
MetadataKeyKey = "key"
|
||||
MetadataKeyValue = "value"
|
||||
)
|
||||
|
||||
type MetadataView struct {
|
||||
AggregateID string `json:"-" gorm:"column:aggregate_id;primary_key"`
|
||||
ResourceOwner string `json:"-" gorm:"column:resource_owner"`
|
||||
CreationDate time.Time `json:"-" gorm:"column:creation_date"`
|
||||
ChangeDate time.Time `json:"-" gorm:"column:change_date"`
|
||||
|
||||
Key string `json:"key" gorm:"column:key;primary_key"`
|
||||
Value []byte `json:"value" gorm:"column:value"`
|
||||
|
||||
Sequence uint64 `json:"-" gorm:"column:sequence"`
|
||||
}
|
||||
|
||||
func MetadataViewsToDomain(texts []*MetadataView) []*domain.Metadata {
|
||||
result := make([]*domain.Metadata, len(texts))
|
||||
for i, text := range texts {
|
||||
result[i] = MetadataViewToDomain(text)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func MetadataViewToDomain(data *MetadataView) *domain.Metadata {
|
||||
return &domain.Metadata{
|
||||
ObjectRoot: models.ObjectRoot{
|
||||
AggregateID: data.AggregateID,
|
||||
Sequence: data.Sequence,
|
||||
CreationDate: data.CreationDate,
|
||||
ChangeDate: data.ChangeDate,
|
||||
},
|
||||
Key: data.Key,
|
||||
Value: data.Value,
|
||||
}
|
||||
}
|
||||
|
||||
func (md *MetadataView) AppendEvent(event *models.Event) (err error) {
|
||||
md.Sequence = event.Sequence
|
||||
switch event.Type {
|
||||
case usr_model.UserMetadataSet:
|
||||
md.setRootData(event)
|
||||
err = md.SetData(event)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (md *MetadataView) setRootData(event *models.Event) {
|
||||
md.AggregateID = event.AggregateID
|
||||
md.ResourceOwner = event.ResourceOwner
|
||||
md.ChangeDate = event.CreationDate
|
||||
md.Sequence = event.Sequence
|
||||
}
|
||||
|
||||
func (md *MetadataView) SetData(event *models.Event) error {
|
||||
if err := json.Unmarshal(event.Data, md); err != nil {
|
||||
logging.Log("MODEL-3n9fs").WithError(err).Error("could not unmarshal event data")
|
||||
return caos_errs.ThrowInternal(err, "MODEL-5CVaR", "Could not unmarshal data")
|
||||
}
|
||||
return nil
|
||||
}
|
@@ -1,64 +0,0 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"github.com/caos/zitadel/internal/domain"
|
||||
"github.com/caos/zitadel/internal/view/repository"
|
||||
)
|
||||
|
||||
type MetadataSearchRequest domain.MetadataSearchRequest
|
||||
type MetadataSearchQuery domain.MetadataSearchQuery
|
||||
type MetadataSearchKey domain.MetadataSearchKey
|
||||
|
||||
func (req MetadataSearchRequest) GetLimit() uint64 {
|
||||
return req.Limit
|
||||
}
|
||||
|
||||
func (req MetadataSearchRequest) GetOffset() uint64 {
|
||||
return req.Offset
|
||||
}
|
||||
|
||||
func (req MetadataSearchRequest) GetSortingColumn() repository.ColumnKey {
|
||||
if req.SortingColumn == domain.MetadataSearchKeyUnspecified {
|
||||
return nil
|
||||
}
|
||||
return MetadataSearchKey(req.SortingColumn)
|
||||
}
|
||||
|
||||
func (req MetadataSearchRequest) GetAsc() bool {
|
||||
return req.Asc
|
||||
}
|
||||
|
||||
func (req MetadataSearchRequest) GetQueries() []repository.SearchQuery {
|
||||
result := make([]repository.SearchQuery, len(req.Queries))
|
||||
for i, q := range req.Queries {
|
||||
result[i] = MetadataSearchQuery{Key: q.Key, Value: q.Value, Method: q.Method}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func (req MetadataSearchQuery) GetKey() repository.ColumnKey {
|
||||
return MetadataSearchKey(req.Key)
|
||||
}
|
||||
|
||||
func (req MetadataSearchQuery) GetMethod() domain.SearchMethod {
|
||||
return req.Method
|
||||
}
|
||||
|
||||
func (req MetadataSearchQuery) GetValue() interface{} {
|
||||
return req.Value
|
||||
}
|
||||
|
||||
func (key MetadataSearchKey) ToColumnName() string {
|
||||
switch domain.MetadataSearchKey(key) {
|
||||
case domain.MetadataSearchKeyAggregateID:
|
||||
return MetadataKeyAggregateID
|
||||
case domain.MetadataSearchKeyResourceOwner:
|
||||
return MetadataKeyResourceOwner
|
||||
case domain.MetadataSearchKeyKey:
|
||||
return MetadataKeyKey
|
||||
case domain.MetadataSearchKeyValue:
|
||||
return MetadataKeyValue
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
@@ -1,56 +0,0 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model"
|
||||
|
||||
es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model"
|
||||
|
||||
"github.com/caos/logging"
|
||||
caos_errs "github.com/caos/zitadel/internal/errors"
|
||||
"github.com/caos/zitadel/internal/eventstore/v1/models"
|
||||
)
|
||||
|
||||
const (
|
||||
OrgIAMPolicyKeyAggregateID = "aggregate_id"
|
||||
)
|
||||
|
||||
type OrgIAMPolicyView struct {
|
||||
AggregateID string `json:"-" gorm:"column:aggregate_id;primary_key"`
|
||||
CreationDate time.Time `json:"-" gorm:"column:creation_date"`
|
||||
ChangeDate time.Time `json:"-" gorm:"column:change_date"`
|
||||
State int32 `json:"-" gorm:"column:org_iam_policy_state"`
|
||||
|
||||
UserLoginMustBeDomain bool `json:"userLoginMustBeDomain" gorm:"column:user_login_must_be_domain"`
|
||||
Default bool `json:"-" gorm:"-"`
|
||||
|
||||
Sequence uint64 `json:"-" gorm:"column:sequence"`
|
||||
}
|
||||
|
||||
func (i *OrgIAMPolicyView) AppendEvent(event *models.Event) (err error) {
|
||||
i.Sequence = event.Sequence
|
||||
i.ChangeDate = event.CreationDate
|
||||
switch event.Type {
|
||||
case es_model.OrgIAMPolicyAdded, org_es_model.OrgIAMPolicyAdded:
|
||||
i.setRootData(event)
|
||||
i.CreationDate = event.CreationDate
|
||||
err = i.SetData(event)
|
||||
case es_model.OrgIAMPolicyChanged, org_es_model.OrgIAMPolicyChanged:
|
||||
err = i.SetData(event)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (r *OrgIAMPolicyView) setRootData(event *models.Event) {
|
||||
r.AggregateID = event.AggregateID
|
||||
}
|
||||
|
||||
func (r *OrgIAMPolicyView) SetData(event *models.Event) error {
|
||||
if err := json.Unmarshal(event.Data, r); err != nil {
|
||||
logging.Log("EVEN-Dmi9g").WithError(err).Error("could not unmarshal event data")
|
||||
return caos_errs.ThrowInternal(err, "MODEL-Hs8uf", "Could not unmarshal data")
|
||||
}
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user