mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 00:17:32 +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:
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user