fix: loginnames in login and mails (eventstore v1 queries) (#3636)

* fix: loginnames in login and mails (eventstore v1 queries)

* fix: loginnames in login and mails (eventstore v1 queries)
This commit is contained in:
Livio Amstutz 2022-05-16 15:10:10 +02:00 committed by GitHub
parent 8bcea0ef1a
commit f1fa74a2c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 36 deletions

View File

@ -190,7 +190,7 @@ func (u *User) ProcessUser(event *es_models.Event) (err error) {
} }
func (u *User) fillLoginNames(user *view_model.UserView) (err error) { func (u *User) fillLoginNames(user *view_model.UserView) (err error) {
userLoginMustBeDomain, primaryDomain, domains, err := u.loginNameInformation(context.Background(), user.ResourceOwner) userLoginMustBeDomain, primaryDomain, domains, err := u.loginNameInformation(context.Background(), user.ResourceOwner, user.InstanceID)
if err != nil { if err != nil {
return err return err
} }
@ -215,7 +215,7 @@ func (u *User) ProcessOrg(event *es_models.Event) (err error) {
} }
func (u *User) fillLoginNamesOnOrgUsers(event *es_models.Event) error { func (u *User) fillLoginNamesOnOrgUsers(event *es_models.Event) error {
userLoginMustBeDomain, _, domains, err := u.loginNameInformation(context.Background(), event.ResourceOwner) userLoginMustBeDomain, _, domains, err := u.loginNameInformation(context.Background(), event.ResourceOwner, event.InstanceID)
if err != nil { if err != nil {
return err return err
} }
@ -230,7 +230,7 @@ func (u *User) fillLoginNamesOnOrgUsers(event *es_models.Event) error {
} }
func (u *User) fillPreferredLoginNamesOnOrgUsers(event *es_models.Event) error { func (u *User) fillPreferredLoginNamesOnOrgUsers(event *es_models.Event) error {
userLoginMustBeDomain, primaryDomain, _, err := u.loginNameInformation(context.Background(), event.ResourceOwner) userLoginMustBeDomain, primaryDomain, _, err := u.loginNameInformation(context.Background(), event.ResourceOwner, event.InstanceID)
if err != nil { if err != nil {
return err return err
} }
@ -256,8 +256,8 @@ func (u *User) OnSuccess() error {
return spooler.HandleSuccess(u.view.UpdateUserSpoolerRunTimestamp) return spooler.HandleSuccess(u.view.UpdateUserSpoolerRunTimestamp)
} }
func (u *User) getOrgByID(ctx context.Context, orgID string) (*org_model.Org, error) { func (u *User) getOrgByID(ctx context.Context, orgID, instanceID string) (*org_model.Org, error) {
query, err := view.OrgByIDQuery(orgID, 0) query, err := view.OrgByIDQuery(orgID, instanceID, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -278,8 +278,8 @@ func (u *User) getOrgByID(ctx context.Context, orgID string) (*org_model.Org, er
return org_es_model.OrgToModel(esOrg), nil return org_es_model.OrgToModel(esOrg), nil
} }
func (u *User) loginNameInformation(ctx context.Context, orgID string) (userLoginMustBeDomain bool, primaryDomain string, domains []*org_model.OrgDomain, err error) { func (u *User) loginNameInformation(ctx context.Context, orgID string, instanceID string) (userLoginMustBeDomain bool, primaryDomain string, domains []*org_model.OrgDomain, err error) {
org, err := u.getOrgByID(ctx, orgID) org, err := u.getOrgByID(ctx, orgID, instanceID)
if err != nil { if err != nil {
return false, "", nil, err return false, "", nil, err
} }

View File

@ -178,7 +178,7 @@ func (m *UserMembership) processOrg(event *es_models.Event) (err error) {
} }
func (m *UserMembership) fillOrgName(member *usr_es_model.UserMembershipView) (err error) { func (m *UserMembership) fillOrgName(member *usr_es_model.UserMembershipView) (err error) {
org, err := m.getOrgByID(context.Background(), member.ResourceOwner) org, err := m.getOrgByID(context.Background(), member.ResourceOwner, member.InstanceID)
if err != nil { if err != nil {
return err return err
} }
@ -190,7 +190,7 @@ func (m *UserMembership) fillOrgName(member *usr_es_model.UserMembershipView) (e
} }
func (m *UserMembership) updateOrgName(event *es_models.Event) error { func (m *UserMembership) updateOrgName(event *es_models.Event) error {
org, err := m.getOrgByID(context.Background(), event.AggregateID) org, err := m.getOrgByID(context.Background(), event.AggregateID, event.InstanceID)
if err != nil { if err != nil {
return err return err
} }
@ -300,8 +300,8 @@ func (m *UserMembership) OnSuccess() error {
return spooler.HandleSuccess(m.view.UpdateUserMembershipSpoolerRunTimestamp) return spooler.HandleSuccess(m.view.UpdateUserMembershipSpoolerRunTimestamp)
} }
func (u *UserMembership) getOrgByID(ctx context.Context, orgID string) (*org_model.Org, error) { func (u *UserMembership) getOrgByID(ctx context.Context, orgID, instanceID string) (*org_model.Org, error) {
query, err := org_view.OrgByIDQuery(orgID, 0) query, err := org_view.OrgByIDQuery(orgID, instanceID, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -39,6 +39,7 @@ func ReduceEvent(handler Handler, event *models.Event) {
if err != nil { if err != nil {
sentry.CurrentHub().Recover(err) sentry.CurrentHub().Recover(err)
handler.Subscription().Unsubscribe() handler.Subscription().Unsubscribe()
logging.WithFields("HANDL-SAFe1").Errorf("reduce panicked: %v", err)
} }
}() }()
currentSequence, err := handler.CurrentSequence(event.InstanceID) currentSequence, err := handler.CurrentSequence(event.InstanceID)

View File

@ -181,7 +181,7 @@ func (u *NotifyUser) ProcessOrg(event *es_models.Event) (err error) {
} }
func (u *NotifyUser) fillLoginNamesOnOrgUsers(event *es_models.Event) error { func (u *NotifyUser) fillLoginNamesOnOrgUsers(event *es_models.Event) error {
userLoginMustBeDomain, _, domains, err := u.loginNameInformation(context.Background(), event.ResourceOwner) userLoginMustBeDomain, _, domains, err := u.loginNameInformation(context.Background(), event.ResourceOwner, event.InstanceID)
if err != nil { if err != nil {
return err return err
} }
@ -200,7 +200,7 @@ func (u *NotifyUser) fillLoginNamesOnOrgUsers(event *es_models.Event) error {
} }
func (u *NotifyUser) fillPreferredLoginNamesOnOrgUsers(event *es_models.Event) error { func (u *NotifyUser) fillPreferredLoginNamesOnOrgUsers(event *es_models.Event) error {
userLoginMustBeDomain, primaryDomain, _, err := u.loginNameInformation(context.Background(), event.ResourceOwner) userLoginMustBeDomain, primaryDomain, _, err := u.loginNameInformation(context.Background(), event.ResourceOwner, event.InstanceID)
if err != nil { if err != nil {
return err return err
} }
@ -222,7 +222,7 @@ func (u *NotifyUser) fillPreferredLoginNamesOnOrgUsers(event *es_models.Event) e
} }
func (u *NotifyUser) fillLoginNames(user *view_model.NotifyUser) (err error) { func (u *NotifyUser) fillLoginNames(user *view_model.NotifyUser) (err error) {
userLoginMustBeDomain, primaryDomain, domains, err := u.loginNameInformation(context.Background(), user.ResourceOwner) userLoginMustBeDomain, primaryDomain, domains, err := u.loginNameInformation(context.Background(), user.ResourceOwner, user.InstanceID)
if err != nil { if err != nil {
return err return err
} }
@ -240,8 +240,8 @@ func (u *NotifyUser) OnSuccess() error {
return spooler.HandleSuccess(u.view.UpdateNotifyUserSpoolerRunTimestamp) return spooler.HandleSuccess(u.view.UpdateNotifyUserSpoolerRunTimestamp)
} }
func (u *NotifyUser) getOrgByID(ctx context.Context, orgID string) (*org_model.Org, error) { func (u *NotifyUser) getOrgByID(ctx context.Context, orgID, instanceID string) (*org_model.Org, error) {
query, err := org_view.OrgByIDQuery(orgID, 0) query, err := org_view.OrgByIDQuery(orgID, instanceID, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -262,8 +262,8 @@ func (u *NotifyUser) getOrgByID(ctx context.Context, orgID string) (*org_model.O
return org_es_model.OrgToModel(esOrg), nil return org_es_model.OrgToModel(esOrg), nil
} }
func (u *NotifyUser) loginNameInformation(ctx context.Context, orgID string) (userLoginMustBeDomain bool, primaryDomain string, domains []*org_model.OrgDomain, err error) { func (u *NotifyUser) loginNameInformation(ctx context.Context, orgID, instanceID string) (userLoginMustBeDomain bool, primaryDomain string, domains []*org_model.OrgDomain, err error) {
org, err := u.getOrgByID(ctx, orgID) org, err := u.getOrgByID(ctx, orgID, instanceID)
if err != nil { if err != nil {
return false, "", nil, err return false, "", nil, err
} }

View File

@ -6,20 +6,15 @@ import (
"github.com/zitadel/zitadel/internal/repository/org" "github.com/zitadel/zitadel/internal/repository/org"
) )
func OrgByIDQuery(id string, latestSequence uint64) (*es_models.SearchQuery, error) { func OrgByIDQuery(id, instanceID string, latestSequence uint64) (*es_models.SearchQuery, error) {
if id == "" { if id == "" {
return nil, errors.ThrowPreconditionFailed(nil, "EVENT-dke74", "id should be filled") return nil, errors.ThrowPreconditionFailed(nil, "EVENT-dke74", "id should be filled")
} }
return OrgQuery(latestSequence).
AddQuery().
AggregateIDFilter(id).
SearchQuery(), nil
}
func OrgQuery(latestSequence uint64) *es_models.SearchQuery {
return es_models.NewSearchQuery(). return es_models.NewSearchQuery().
AddQuery(). AddQuery().
AggregateTypeFilter(org.AggregateType). AggregateTypeFilter(org.AggregateType).
LatestSequenceFilter(latestSequence). LatestSequenceFilter(latestSequence).
SearchQuery() InstanceIDFilter(instanceID).
AggregateIDFilter(id).
SearchQuery(), nil
} }

View File

@ -10,17 +10,11 @@ func ProjectByIDQuery(id, instanceID string, latestSequence uint64) (*es_models.
if id == "" { if id == "" {
return nil, errors.ThrowPreconditionFailed(nil, "EVENT-dke74", "Errors.Project.ProjectIDMissing") return nil, errors.ThrowPreconditionFailed(nil, "EVENT-dke74", "Errors.Project.ProjectIDMissing")
} }
return ProjectQuery(latestSequence). return es_models.NewSearchQuery().
AddQuery(). AddQuery().
AggregateIDFilter(id). AggregateIDFilter(id).
AggregateTypeFilter(project.AggregateType).
LatestSequenceFilter(latestSequence).
InstanceIDFilter(instanceID). InstanceIDFilter(instanceID).
SearchQuery(), nil SearchQuery(), nil
} }
func ProjectQuery(latestSequence uint64) *es_models.SearchQuery {
return es_models.NewSearchQuery().
AddQuery().
AggregateTypeFilter(project.AggregateType).
LatestSequenceFilter(latestSequence).
SearchQuery()
}