mirror of
https://github.com/zitadel/zitadel.git
synced 2025-02-28 23:27:23 +00:00
fix: org member in setup (#213)
This commit is contained in:
parent
e57d4b1ed4
commit
c4eaeee7af
@ -16,6 +16,7 @@ import (
|
||||
|
||||
const (
|
||||
DEFAULT_POLICY = "0"
|
||||
orgOwnerRole = "ORG_OWNER"
|
||||
)
|
||||
|
||||
type OrgRepo struct {
|
||||
@ -47,8 +48,8 @@ func (repo *OrgRepo) SetUpOrg(ctx context.Context, setUp *admin_model.SetupOrg)
|
||||
aggregates = append(aggregates, userAggregates...)
|
||||
setupModel := &Setup{Org: org, User: user}
|
||||
|
||||
member := org_model.NewOrgMemberWithRoles(org.AggregateID, user.AggregateID, "ORG_ADMIN") //TODO: role as const
|
||||
_, memberAggregate, err := repo.OrgEventstore.PrepareAddOrgMember(ctx, member)
|
||||
member := org_model.NewOrgMemberWithRoles(org.AggregateID, user.AggregateID, orgOwnerRole)
|
||||
_, memberAggregate, err := repo.OrgEventstore.PrepareAddOrgMember(ctx, member, org.AggregateID)
|
||||
if err != nil {
|
||||
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")
|
||||
}
|
||||
|
||||
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() {
|
||||
return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-9dk45", "UserID and Roles are required")
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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 {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -9,12 +9,16 @@ import (
|
||||
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 {
|
||||
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 {
|
||||
return nil, err
|
||||
}
|
||||
@ -23,9 +27,8 @@ func orgMemberAddedAggregate(ctx context.Context, aggCreator *es_models.Aggregat
|
||||
AggregateTypeFilter(model.OrgAggregate, usr_model.UserAggregate).
|
||||
AggregateIDsFilter(member.AggregateID, member.UserID)
|
||||
|
||||
validation := addMemberValidation(aggregate, member)
|
||||
|
||||
return aggregate.SetPrecondition(validationQuery, validation).AppendEvent(model.OrgMemberAdded, member)
|
||||
validation := addMemberValidation(agg, member)
|
||||
return agg.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) {
|
||||
|
@ -54,7 +54,7 @@ func TestOrgMemberAddedAggregate(t *testing.T) {
|
||||
}
|
||||
for _, tt := range tests {
|
||||
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 {
|
||||
t.Errorf("no error expected got: %v", err)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user