fix: instance remove (#4602)

This commit is contained in:
Livio Spring
2022-10-26 15:06:48 +02:00
committed by GitHub
parent 001636f2b4
commit d721f725fd
89 changed files with 656 additions and 122 deletions

View File

@@ -117,6 +117,8 @@ func (i *IDPConfig) processIdpConfig(providerType iam_model.IDPProviderType, eve
return err
}
return i.view.DeleteIDPConfig(idp.IDPConfigID, event)
case instance.InstanceRemovedEventType:
return i.view.DeleteInstanceIDPs(event)
default:
return i.view.ProcessedIDPConfigSequence(event)
}

View File

@@ -138,6 +138,8 @@ func (i *IDPProvider) processIdpProvider(event *models.Event) (err error) {
return i.view.PutIDPProviders(event, providers...)
case org.LoginPolicyRemovedEventType:
return i.view.DeleteIDPProvidersByAggregateID(event.AggregateID, event.InstanceID, event)
case instance.InstanceRemovedEventType:
return i.view.DeleteInstanceIDPs(event)
default:
return i.view.ProcessedIDPProviderSequence(event)
}

View File

@@ -9,6 +9,7 @@ import (
"github.com/zitadel/zitadel/internal/eventstore/v1/query"
"github.com/zitadel/zitadel/internal/eventstore/v1/spooler"
view_model "github.com/zitadel/zitadel/internal/project/repository/view/model"
"github.com/zitadel/zitadel/internal/repository/instance"
"github.com/zitadel/zitadel/internal/repository/project"
)
@@ -51,7 +52,7 @@ func (p *OrgProjectMapping) Subscription() *v1.Subscription {
}
func (_ *OrgProjectMapping) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{project.AggregateType}
return []es_models.AggregateType{project.AggregateType, instance.AggregateType}
}
func (p *OrgProjectMapping) CurrentSequence(instanceID string) (uint64, error) {
@@ -96,6 +97,8 @@ func (p *OrgProjectMapping) Reduce(event *es_models.Event) (err error) {
if err == nil {
return p.view.ProcessedOrgProjectMappingSequence(event)
}
case instance.InstanceRemovedEventType:
return p.view.DeleteInstanceOrgProjectMappings(event)
default:
return p.view.ProcessedOrgProjectMappingSequence(event)
}

View File

@@ -11,6 +11,7 @@ import (
es_models "github.com/zitadel/zitadel/internal/eventstore/v1/models"
"github.com/zitadel/zitadel/internal/eventstore/v1/query"
"github.com/zitadel/zitadel/internal/eventstore/v1/spooler"
"github.com/zitadel/zitadel/internal/repository/instance"
"github.com/zitadel/zitadel/internal/repository/project"
"github.com/zitadel/zitadel/internal/repository/user"
view_model "github.com/zitadel/zitadel/internal/user/repository/view/model"
@@ -55,7 +56,7 @@ func (t *RefreshToken) Subscription() *v1.Subscription {
}
func (t *RefreshToken) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{user.AggregateType, project.AggregateType}
return []es_models.AggregateType{user.AggregateType, project.AggregateType, instance.AggregateType}
}
func (t *RefreshToken) CurrentSequence(instanceID string) (uint64, error) {
@@ -109,6 +110,8 @@ func (t *RefreshToken) Reduce(event *es_models.Event) (err error) {
user.UserDeactivatedType,
user.UserRemovedType:
return t.view.DeleteUserRefreshTokens(event.AggregateID, event.InstanceID, event)
case instance.InstanceRemovedEventType:
return t.view.DeleteInstanceRefreshTokens(event)
default:
return t.view.ProcessedRefreshTokenSequence(event)
}

View File

@@ -16,6 +16,7 @@ import (
proj_model "github.com/zitadel/zitadel/internal/project/model"
project_es_model "github.com/zitadel/zitadel/internal/project/repository/eventsourcing/model"
proj_view "github.com/zitadel/zitadel/internal/project/repository/view"
"github.com/zitadel/zitadel/internal/repository/instance"
"github.com/zitadel/zitadel/internal/repository/project"
"github.com/zitadel/zitadel/internal/repository/user"
user_repo "github.com/zitadel/zitadel/internal/repository/user"
@@ -61,7 +62,7 @@ func (t *Token) Subscription() *v1.Subscription {
}
func (_ *Token) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{user.AggregateType, project.AggregateType}
return []es_models.AggregateType{user.AggregateType, project.AggregateType, instance.AggregateType}
}
func (p *Token) CurrentSequence(instanceID string) (uint64, error) {
@@ -144,6 +145,8 @@ func (t *Token) Reduce(event *es_models.Event) (err error) {
applicationsIDs = append(applicationsIDs, app.AppID)
}
return t.view.DeleteApplicationTokens(event, applicationsIDs...)
case instance.InstanceRemovedEventType:
return t.view.DeleteInstanceTokens(event)
default:
return t.view.ProcessedTokenSequence(event)
}

View File

@@ -16,6 +16,7 @@ import (
org_es_model "github.com/zitadel/zitadel/internal/org/repository/eventsourcing/model"
"github.com/zitadel/zitadel/internal/org/repository/view"
query2 "github.com/zitadel/zitadel/internal/query"
"github.com/zitadel/zitadel/internal/repository/instance"
"github.com/zitadel/zitadel/internal/repository/org"
user_repo "github.com/zitadel/zitadel/internal/repository/user"
usr_view "github.com/zitadel/zitadel/internal/user/repository/view"
@@ -63,7 +64,7 @@ func (u *User) Subscription() *v1.Subscription {
return u.subscription
}
func (_ *User) AggregateTypes() []es_models.AggregateType {
return []es_models.AggregateType{user_repo.AggregateType, org.AggregateType}
return []es_models.AggregateType{user_repo.AggregateType, org.AggregateType, instance.AggregateType}
}
func (u *User) CurrentSequence(instanceID string) (uint64, error) {
@@ -88,6 +89,8 @@ func (u *User) Reduce(event *es_models.Event) (err error) {
return u.ProcessUser(event)
case org.AggregateType:
return u.ProcessOrg(event)
case instance.AggregateType:
return u.ProcessInstance(event)
default:
return nil
}
@@ -229,6 +232,15 @@ func (u *User) ProcessOrg(event *es_models.Event) (err error) {
}
}
func (u *User) ProcessInstance(event *es_models.Event) (err error) {
switch eventstore.EventType(event.Type) {
case instance.InstanceRemovedEventType:
return u.view.DeleteInstanceUsers(event)
default:
return u.view.ProcessedUserSequence(event)
}
}
func (u *User) fillLoginNamesOnOrgUsers(event *es_models.Event) error {
userLoginMustBeDomain, _, domains, err := u.loginNameInformation(context.Background(), event.ResourceOwner, event.InstanceID)
if err != nil {

View File

@@ -150,6 +150,8 @@ func (i *ExternalIDP) processIdpConfig(event *es_models.Event) (err error) {
i.fillConfigData(provider, config)
}
return i.view.PutExternalIDPs(event, exterinalIDPs...)
case instance.InstanceRemovedEventType:
return i.view.DeleteInstanceExternalIDPs(event)
default:
return i.view.ProcessedExternalIDPSequence(event)
}

View File

@@ -17,6 +17,7 @@ import (
org_es_model "github.com/zitadel/zitadel/internal/org/repository/eventsourcing/model"
"github.com/zitadel/zitadel/internal/org/repository/view"
query2 "github.com/zitadel/zitadel/internal/query"
"github.com/zitadel/zitadel/internal/repository/instance"
"github.com/zitadel/zitadel/internal/repository/org"
"github.com/zitadel/zitadel/internal/repository/user"
view_model "github.com/zitadel/zitadel/internal/user/repository/view/model"
@@ -61,7 +62,7 @@ func (u *UserSession) Subscription() *v1.Subscription {
}
func (_ *UserSession) AggregateTypes() []models.AggregateType {
return []models.AggregateType{user.AggregateType, org.AggregateType}
return []models.AggregateType{user.AggregateType, org.AggregateType, instance.AggregateType}
}
func (u *UserSession) CurrentSequence(instanceID string) (uint64, error) {
@@ -153,6 +154,8 @@ func (u *UserSession) Reduce(event *models.Event) (err error) {
return u.fillLoginNamesOnOrgUsers(event)
case user.UserRemovedType:
return u.view.DeleteUserSessions(event.AggregateID, event.InstanceID, event)
case instance.InstanceRemovedEventType:
return u.view.DeleteInstanceUserSessions(event)
default:
return u.view.ProcessedUserSessionSequence(event)
}