mirror of
https://github.com/zitadel/zitadel.git
synced 2025-05-02 21:00:54 +00:00
fix: org member in setup (#213)
This commit is contained in:
parent
e57d4b1ed4
commit
c4eaeee7af
@ -16,6 +16,7 @@ import (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
DEFAULT_POLICY = "0"
|
DEFAULT_POLICY = "0"
|
||||||
|
orgOwnerRole = "ORG_OWNER"
|
||||||
)
|
)
|
||||||
|
|
||||||
type OrgRepo struct {
|
type OrgRepo struct {
|
||||||
@ -47,8 +48,8 @@ func (repo *OrgRepo) SetUpOrg(ctx context.Context, setUp *admin_model.SetupOrg)
|
|||||||
aggregates = append(aggregates, userAggregates...)
|
aggregates = append(aggregates, userAggregates...)
|
||||||
setupModel := &Setup{Org: org, User: user}
|
setupModel := &Setup{Org: org, User: user}
|
||||||
|
|
||||||
member := org_model.NewOrgMemberWithRoles(org.AggregateID, user.AggregateID, "ORG_ADMIN") //TODO: role as const
|
member := org_model.NewOrgMemberWithRoles(org.AggregateID, user.AggregateID, orgOwnerRole)
|
||||||
_, memberAggregate, err := repo.OrgEventstore.PrepareAddOrgMember(ctx, member)
|
_, memberAggregate, err := repo.OrgEventstore.PrepareAddOrgMember(ctx, member, org.AggregateID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -151,19 +151,19 @@ func (es *OrgEventstore) OrgMemberByIDs(ctx context.Context, member *org_model.O
|
|||||||
return nil, errors.ThrowNotFound(nil, "EVENT-SXji6", "member not found")
|
return nil, errors.ThrowNotFound(nil, "EVENT-SXji6", "member not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (es *OrgEventstore) PrepareAddOrgMember(ctx context.Context, member *org_model.OrgMember) (*model.OrgMember, *es_models.Aggregate, error) {
|
func (es *OrgEventstore) PrepareAddOrgMember(ctx context.Context, member *org_model.OrgMember, resourceOwner string) (*model.OrgMember, *es_models.Aggregate, error) {
|
||||||
if member == nil || !member.IsValid() {
|
if member == nil || !member.IsValid() {
|
||||||
return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-9dk45", "UserID and Roles are required")
|
return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-9dk45", "UserID and Roles are required")
|
||||||
}
|
}
|
||||||
|
|
||||||
repoMember := model.OrgMemberFromModel(member)
|
repoMember := model.OrgMemberFromModel(member)
|
||||||
addAggregate, err := orgMemberAddedAggregate(ctx, es.Eventstore.AggregateCreator(), repoMember)
|
addAggregate, err := orgMemberAddedAggregate(ctx, es.Eventstore.AggregateCreator(), repoMember, resourceOwner)
|
||||||
|
|
||||||
return repoMember, addAggregate, err
|
return repoMember, addAggregate, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (es *OrgEventstore) AddOrgMember(ctx context.Context, member *org_model.OrgMember) (*org_model.OrgMember, error) {
|
func (es *OrgEventstore) AddOrgMember(ctx context.Context, member *org_model.OrgMember) (*org_model.OrgMember, error) {
|
||||||
repoMember, addAggregate, err := es.PrepareAddOrgMember(ctx, member)
|
repoMember, addAggregate, err := es.PrepareAddOrgMember(ctx, member, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -9,12 +9,16 @@ import (
|
|||||||
usr_model "github.com/caos/zitadel/internal/user/repository/eventsourcing/model"
|
usr_model "github.com/caos/zitadel/internal/user/repository/eventsourcing/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func orgMemberAddedAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, member *model.OrgMember) (*es_models.Aggregate, error) {
|
func orgMemberAddedAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, member *model.OrgMember, resourceOwner string) (agg *es_models.Aggregate, err error) {
|
||||||
if member == nil {
|
if member == nil {
|
||||||
return nil, errors.ThrowInvalidArgument(nil, "EVENT-c63Ap", "member must not be nil")
|
return nil, errors.ThrowInvalidArgument(nil, "EVENT-c63Ap", "member must not be nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
aggregate, err := aggCreator.NewAggregate(ctx, member.AggregateID, model.OrgAggregate, model.OrgVersion, member.Sequence)
|
if resourceOwner != "" {
|
||||||
|
agg, err = aggCreator.NewAggregate(ctx, member.AggregateID, model.OrgAggregate, model.OrgVersion, member.Sequence, es_models.OverwriteResourceOwner(resourceOwner))
|
||||||
|
} else {
|
||||||
|
agg, err = aggCreator.NewAggregate(ctx, member.AggregateID, model.OrgAggregate, model.OrgVersion, member.Sequence)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -23,9 +27,8 @@ func orgMemberAddedAggregate(ctx context.Context, aggCreator *es_models.Aggregat
|
|||||||
AggregateTypeFilter(model.OrgAggregate, usr_model.UserAggregate).
|
AggregateTypeFilter(model.OrgAggregate, usr_model.UserAggregate).
|
||||||
AggregateIDsFilter(member.AggregateID, member.UserID)
|
AggregateIDsFilter(member.AggregateID, member.UserID)
|
||||||
|
|
||||||
validation := addMemberValidation(aggregate, member)
|
validation := addMemberValidation(agg, member)
|
||||||
|
return agg.SetPrecondition(validationQuery, validation).AppendEvent(model.OrgMemberAdded, member)
|
||||||
return aggregate.SetPrecondition(validationQuery, validation).AppendEvent(model.OrgMemberAdded, member)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func orgMemberChangedAggregate(aggCreator *es_models.AggregateCreator, existingMember *model.OrgMember, member *model.OrgMember) func(ctx context.Context) (*es_models.Aggregate, error) {
|
func orgMemberChangedAggregate(aggCreator *es_models.AggregateCreator, existingMember *model.OrgMember, member *model.OrgMember) func(ctx context.Context) (*es_models.Aggregate, error) {
|
||||||
|
@ -54,7 +54,7 @@ func TestOrgMemberAddedAggregate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
aggregate, err := orgMemberAddedAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.member)
|
aggregate, err := orgMemberAddedAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.member, "")
|
||||||
if tt.res.isErr == nil && err != nil {
|
if tt.res.isErr == nil && err != nil {
|
||||||
t.Errorf("no error expected got: %v", err)
|
t.Errorf("no error expected got: %v", err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user