mirror of
https://github.com/zitadel/zitadel.git
synced 2025-02-28 23:37: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,
|
Event: project.GrantRemovedType,
|
||||||
Reduce: p.reduceProjectGrantRemoved,
|
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")
|
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")
|
return nil, errors.ThrowInvalidArgument(nil, "HANDL-g0fg4", "reduce.wrong.event.type")
|
||||||
}
|
}
|
||||||
if e.RoleKeys == nil {
|
|
||||||
return crdb.NewNoOpStatement(e), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return crdb.NewUpdateStatement(
|
return crdb.NewUpdateStatement(
|
||||||
e,
|
e,
|
||||||
[]handler.Column{
|
[]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")
|
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")
|
return nil, errors.ThrowInvalidArgument(nil, "HANDL-ll9Ts", "reduce.wrong.event.type")
|
||||||
}
|
}
|
||||||
if e.RoleKeys == nil {
|
|
||||||
return crdb.NewNoOpStatement(e), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return crdb.NewUpdateStatement(
|
return crdb.NewUpdateStatement(
|
||||||
e,
|
e,
|
||||||
[]handler.Column{
|
[]handler.Column{
|
||||||
@ -199,3 +195,17 @@ func (p *ProjectGrantProjection) reduceProjectGrantRemoved(event eventstore.Even
|
|||||||
},
|
},
|
||||||
), nil
|
), 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",
|
name: "reduceProjectGrantAdded",
|
||||||
args: args{
|
args: args{
|
||||||
|
@ -42,6 +42,10 @@ func (p *ProjectRoleProjection) reducers() []handler.AggregateReducer {
|
|||||||
Event: project.RoleRemovedType,
|
Event: project.RoleRemovedType,
|
||||||
Reduce: p.reduceProjectRoleRemoved,
|
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 {
|
if e.DisplayName == nil && e.Group == nil {
|
||||||
return crdb.NewNoOpStatement(e), 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(
|
return crdb.NewUpdateStatement(
|
||||||
e,
|
e,
|
||||||
[]handler.Column{
|
columns,
|
||||||
handler.NewCol(ProjectColumnChangeDate, e.CreationDate()),
|
|
||||||
handler.NewCol(ProjectRoleColumnSequence, e.Sequence()),
|
|
||||||
handler.NewCol(ProjectRoleColumnDisplayName, *e.DisplayName),
|
|
||||||
handler.NewCol(ProjectRoleColumnGroupName, *e.Group),
|
|
||||||
},
|
|
||||||
[]handler.Condition{
|
[]handler.Condition{
|
||||||
handler.NewCond(ProjectRoleColumnKey, e.Key),
|
handler.NewCond(ProjectRoleColumnKey, e.Key),
|
||||||
handler.NewCond(ProjectRoleColumnProjectID, e.Aggregate().ID),
|
handler.NewCond(ProjectRoleColumnProjectID, e.Aggregate().ID),
|
||||||
@ -119,3 +127,17 @@ func (p *ProjectRoleProjection) reduceProjectRoleRemoved(event eventstore.EventR
|
|||||||
},
|
},
|
||||||
), nil
|
), 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