mirror of
https://github.com/zitadel/zitadel.git
synced 2025-02-28 16:27:23 +00:00
fix: Fix project roles/grants projection (#2491)
* fix: project role projections reduce change event * fix: project grant projections reduce change event * fix: project grant projections reduce change event * fix: add project removed event
This commit is contained in:
parent
1ca2d8adde
commit
29c8fa8bde
@ -56,6 +56,10 @@ func (p *ProjectGrantProjection) reducers() []handler.AggregateReducer {
|
||||
Event: project.GrantRemovedType,
|
||||
Reduce: p.reduceProjectGrantRemoved,
|
||||
},
|
||||
{
|
||||
Event: project.ProjectRemovedType,
|
||||
Reduce: p.reduceProjectRemoved,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -103,10 +107,6 @@ func (p *ProjectGrantProjection) reduceProjectGrantChanged(event eventstore.Even
|
||||
logging.LogWithFields("HANDL-M00fH", "seq", event.Sequence(), "expectedType", project.GrantChangedType).Error("was not an event")
|
||||
return nil, errors.ThrowInvalidArgument(nil, "HANDL-g0fg4", "reduce.wrong.event.type")
|
||||
}
|
||||
if e.RoleKeys == nil {
|
||||
return crdb.NewNoOpStatement(e), nil
|
||||
}
|
||||
|
||||
return crdb.NewUpdateStatement(
|
||||
e,
|
||||
[]handler.Column{
|
||||
@ -127,10 +127,6 @@ func (p *ProjectGrantProjection) reduceProjectGrantCascadeChanged(event eventsto
|
||||
logging.LogWithFields("HANDL-K0fwR", "seq", event.Sequence(), "expectedType", project.GrantCascadeChangedType).Error("was not an event")
|
||||
return nil, errors.ThrowInvalidArgument(nil, "HANDL-ll9Ts", "reduce.wrong.event.type")
|
||||
}
|
||||
if e.RoleKeys == nil {
|
||||
return crdb.NewNoOpStatement(e), nil
|
||||
}
|
||||
|
||||
return crdb.NewUpdateStatement(
|
||||
e,
|
||||
[]handler.Column{
|
||||
@ -199,3 +195,17 @@ func (p *ProjectGrantProjection) reduceProjectGrantRemoved(event eventstore.Even
|
||||
},
|
||||
), nil
|
||||
}
|
||||
|
||||
func (p *ProjectGrantProjection) reduceProjectRemoved(event eventstore.EventReader) (*handler.Statement, error) {
|
||||
e, ok := event.(*project.ProjectRemovedEvent)
|
||||
if !ok {
|
||||
logging.LogWithFields("HANDL-Ms0fe", "seq", event.Sequence(), "expectedType", project.ProjectRemovedType).Error("was not an event")
|
||||
return nil, errors.ThrowInvalidArgument(nil, "HANDL-gn9rw", "reduce.wrong.event.type")
|
||||
}
|
||||
return crdb.NewDeleteStatement(
|
||||
e,
|
||||
[]handler.Condition{
|
||||
handler.NewCond(ProjectGrantColumnProjectID, e.Aggregate().ID),
|
||||
},
|
||||
), nil
|
||||
}
|
||||
|
@ -143,24 +143,6 @@ func TestProjectGrantProjection_reduces(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "reduceProjectGrantChanged no changes",
|
||||
args: args{
|
||||
event: getEvent(testEvent(
|
||||
repository.EventType(project.GrantChangedType),
|
||||
project.AggregateType,
|
||||
[]byte(`{}`),
|
||||
), project.GrantChangedEventMapper),
|
||||
},
|
||||
reduce: (&ProjectGrantProjection{}).reduceProjectGrantChanged,
|
||||
want: wantReduce{
|
||||
projection: ProjectGrantProjectionTable,
|
||||
aggregateType: eventstore.AggregateType("project"),
|
||||
sequence: 15,
|
||||
previousSequence: 10,
|
||||
executer: &testExecuter{},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "reduceProjectGrantAdded",
|
||||
args: args{
|
||||
|
@ -42,6 +42,10 @@ func (p *ProjectRoleProjection) reducers() []handler.AggregateReducer {
|
||||
Event: project.RoleRemovedType,
|
||||
Reduce: p.reduceProjectRoleRemoved,
|
||||
},
|
||||
{
|
||||
Event: project.ProjectRemovedType,
|
||||
Reduce: p.reduceProjectRemoved,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -90,14 +94,18 @@ func (p *ProjectRoleProjection) reduceProjectRoleChanged(event eventstore.EventR
|
||||
if e.DisplayName == nil && e.Group == nil {
|
||||
return crdb.NewNoOpStatement(e), nil
|
||||
}
|
||||
columns := make([]handler.Column, 0, 7)
|
||||
columns = append(columns, handler.NewCol(ProjectRoleColumnChangeDate, e.CreationDate()),
|
||||
handler.NewCol(ProjectRoleColumnSequence, e.Sequence()))
|
||||
if e.DisplayName != nil {
|
||||
columns = append(columns, handler.NewCol(ProjectRoleColumnDisplayName, *e.DisplayName))
|
||||
}
|
||||
if e.Group != nil {
|
||||
columns = append(columns, handler.NewCol(ProjectRoleColumnGroupName, *e.Group))
|
||||
}
|
||||
return crdb.NewUpdateStatement(
|
||||
e,
|
||||
[]handler.Column{
|
||||
handler.NewCol(ProjectColumnChangeDate, e.CreationDate()),
|
||||
handler.NewCol(ProjectRoleColumnSequence, e.Sequence()),
|
||||
handler.NewCol(ProjectRoleColumnDisplayName, *e.DisplayName),
|
||||
handler.NewCol(ProjectRoleColumnGroupName, *e.Group),
|
||||
},
|
||||
columns,
|
||||
[]handler.Condition{
|
||||
handler.NewCond(ProjectRoleColumnKey, e.Key),
|
||||
handler.NewCond(ProjectRoleColumnProjectID, e.Aggregate().ID),
|
||||
@ -119,3 +127,17 @@ func (p *ProjectRoleProjection) reduceProjectRoleRemoved(event eventstore.EventR
|
||||
},
|
||||
), nil
|
||||
}
|
||||
|
||||
func (p *ProjectRoleProjection) reduceProjectRemoved(event eventstore.EventReader) (*handler.Statement, error) {
|
||||
e, ok := event.(*project.ProjectRemovedEvent)
|
||||
if !ok {
|
||||
logging.LogWithFields("HANDL-hm90R", "seq", event.Sequence(), "expectedType", project.ProjectRemovedType).Error("was not an event")
|
||||
return nil, errors.ThrowInvalidArgument(nil, "HANDL-l0geG", "reduce.wrong.event.type")
|
||||
}
|
||||
return crdb.NewDeleteStatement(
|
||||
e,
|
||||
[]handler.Condition{
|
||||
handler.NewCond(ProjectRoleColumnProjectID, e.Aggregate().ID),
|
||||
},
|
||||
), nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user