mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-03 11:12:29 +00:00
fix: Remove project (#538)
* Remove project added * Gemeriert * corrections * corrections * Delete*sByProjectID added * Correct typos
This commit is contained in:
@@ -80,6 +80,33 @@ func (repo *ProjectRepo) ReactivateProject(ctx context.Context, id string) (*pro
|
||||
return repo.ProjectEvents.ReactivateProject(ctx, id)
|
||||
}
|
||||
|
||||
func (repo *ProjectRepo) RemoveProject(ctx context.Context, projectID string) error {
|
||||
proj := proj_model.NewProject(projectID)
|
||||
aggregates := make([]*es_models.Aggregate, 0)
|
||||
project, agg, err := repo.ProjectEvents.PrepareRemoveProject(ctx, proj)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
aggregates = append(aggregates, agg)
|
||||
|
||||
// remove user_grants
|
||||
usergrants, err := repo.View.UserGrantsByProjectID(projectID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, grant := range usergrants {
|
||||
_, aggs, err := repo.UserGrantEvents.PrepareRemoveUserGrant(ctx, grant.ID, true)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, agg := range aggs {
|
||||
aggregates = append(aggregates, agg)
|
||||
}
|
||||
}
|
||||
|
||||
return es_sdk.PushAggregates(ctx, repo.Eventstore.PushAggregates, project.AppendEvents, aggregates...)
|
||||
}
|
||||
|
||||
func (repo *ProjectRepo) SearchProjects(ctx context.Context, request *proj_model.ProjectViewSearchRequest) (*proj_model.ProjectViewSearchResponse, error) {
|
||||
request.EnsureLimit(repo.SearchLimit)
|
||||
sequence, err := repo.View.GetLatestProjectSequence()
|
||||
|
||||
@@ -57,6 +57,8 @@ func (p *Application) Reduce(event *models.Event) (err error) {
|
||||
return err
|
||||
}
|
||||
return p.view.DeleteApplication(app.ID, event.Sequence)
|
||||
case es_model.ProjectRemoved:
|
||||
return p.view.DeleteApplicationsByProjectID(event.AggregateID)
|
||||
default:
|
||||
return p.view.ProcessedApplicationSequence(event.Sequence)
|
||||
}
|
||||
|
||||
@@ -45,6 +45,8 @@ func (p *Project) Reduce(event *models.Event) (err error) {
|
||||
return err
|
||||
}
|
||||
err = project.AppendEvent(event)
|
||||
case es_model.ProjectRemoved:
|
||||
return p.view.DeleteProject(event.AggregateID, event.Sequence)
|
||||
default:
|
||||
return p.view.ProcessedProjectSequence(event.Sequence)
|
||||
}
|
||||
|
||||
@@ -86,6 +86,8 @@ func (p *ProjectGrant) Reduce(event *models.Event) (err error) {
|
||||
return err
|
||||
}
|
||||
return p.view.DeleteProjectGrant(grant.GrantID, event.Sequence)
|
||||
case es_model.ProjectRemoved:
|
||||
return p.view.DeleteProjectGrantsByProjectID(event.AggregateID)
|
||||
default:
|
||||
return p.view.ProcessedProjectGrantSequence(event.Sequence)
|
||||
}
|
||||
|
||||
@@ -70,6 +70,9 @@ func (p *ProjectGrantMember) processProjectGrantMember(event *models.Event) (err
|
||||
return err
|
||||
}
|
||||
return p.view.DeleteProjectGrantMember(member.GrantID, member.UserID, event.Sequence)
|
||||
case proj_es_model.ProjectRemoved:
|
||||
return p.view.DeleteProjectGrantMembersByProjectID(event.AggregateID)
|
||||
|
||||
default:
|
||||
return p.view.ProcessedProjectGrantMemberSequence(event.Sequence)
|
||||
}
|
||||
|
||||
@@ -70,6 +70,8 @@ func (p *ProjectMember) processProjectMember(event *models.Event) (err error) {
|
||||
return err
|
||||
}
|
||||
return p.view.DeleteProjectMember(event.AggregateID, member.UserID, event.Sequence)
|
||||
case proj_es_model.ProjectRemoved:
|
||||
return p.view.DeleteProjectMembersByProjectID(event.AggregateID)
|
||||
default:
|
||||
return p.view.ProcessedProjectMemberSequence(event.Sequence)
|
||||
}
|
||||
|
||||
@@ -53,6 +53,8 @@ func (p *ProjectRole) Reduce(event *models.Event) (err error) {
|
||||
return err
|
||||
}
|
||||
return p.view.DeleteProjectRole(event.AggregateID, event.ResourceOwner, role.Key, event.Sequence)
|
||||
case es_model.ProjectRemoved:
|
||||
return p.view.DeleteProjectRolesByProjectID(event.AggregateID)
|
||||
default:
|
||||
return p.view.ProcessedProjectRoleSequence(event.Sequence)
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@ func (v *View) ApplicationByID(appID string) (*model.ApplicationView, error) {
|
||||
return view.ApplicationByID(v.Db, applicationTable, appID)
|
||||
}
|
||||
|
||||
func (v *View) ApplicationsByProjectID(ProjectID string) ([]*model.ApplicationView, error) {
|
||||
return view.ApplicationsByProjectID(v.Db, applicationTable, ProjectID)
|
||||
}
|
||||
|
||||
func (v *View) SearchApplications(request *proj_model.ApplicationSearchRequest) ([]*model.ApplicationView, uint64, error) {
|
||||
return view.SearchApplications(v.Db, applicationTable, request)
|
||||
}
|
||||
@@ -35,6 +39,10 @@ func (v *View) DeleteApplication(appID string, eventSequence uint64) error {
|
||||
return v.ProcessedApplicationSequence(eventSequence)
|
||||
}
|
||||
|
||||
func (v *View) DeleteApplicationsByProjectID(ProjectID string) error {
|
||||
return view.DeleteApplicationsByProjectID(v.Db, applicationTable, ProjectID)
|
||||
}
|
||||
|
||||
func (v *View) GetLatestApplicationSequence() (*repository.CurrentSequence, error) {
|
||||
return v.latestSequence(applicationTable)
|
||||
}
|
||||
|
||||
@@ -47,6 +47,10 @@ func (v *View) DeleteProjectGrant(grantID string, eventSequence uint64) error {
|
||||
return v.ProcessedProjectGrantSequence(eventSequence)
|
||||
}
|
||||
|
||||
func (v *View) DeleteProjectGrantsByProjectID(projectID string) error {
|
||||
return view.DeleteProjectGrantsByProjectID(v.Db, grantedProjectTable, projectID)
|
||||
}
|
||||
|
||||
func (v *View) GetLatestProjectGrantSequence() (*repository.CurrentSequence, error) {
|
||||
return v.latestSequence(grantedProjectTable)
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@ func (v *View) ProjectGrantMemberByIDs(projectID, userID string) (*model.Project
|
||||
return view.ProjectGrantMemberByIDs(v.Db, projectGrantMemberTable, projectID, userID)
|
||||
}
|
||||
|
||||
func (v *View) ProjectGrantMembersByProjectID(projectID string) ([]*model.ProjectGrantMemberView, error) {
|
||||
return view.ProjectGrantMembersByProjectID(v.Db, projectGrantMemberTable, projectID)
|
||||
}
|
||||
|
||||
func (v *View) SearchProjectGrantMembers(request *proj_model.ProjectGrantMemberSearchRequest) ([]*model.ProjectGrantMemberView, uint64, error) {
|
||||
return view.SearchProjectGrantMembers(v.Db, projectGrantMemberTable, request)
|
||||
}
|
||||
@@ -39,6 +43,10 @@ func (v *View) DeleteProjectGrantMember(grantID, userID string, eventSequence ui
|
||||
return v.ProcessedProjectGrantMemberSequence(eventSequence)
|
||||
}
|
||||
|
||||
func (v *View) DeleteProjectGrantMembersByProjectID(projectID string) error {
|
||||
return view.DeleteProjectGrantMembersByProjectID(v.Db, projectGrantMemberTable, projectID)
|
||||
}
|
||||
|
||||
func (v *View) GetLatestProjectGrantMemberSequence() (*repository.CurrentSequence, error) {
|
||||
return v.latestSequence(projectGrantMemberTable)
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@ func (v *View) ProjectMemberByIDs(projectID, userID string) (*model.ProjectMembe
|
||||
return view.ProjectMemberByIDs(v.Db, projectMemberTable, projectID, userID)
|
||||
}
|
||||
|
||||
func (v *View) ProjectMembersByProjectID(projectID string) ([]*model.ProjectMemberView, error) {
|
||||
return view.ProjectMembersByProjectID(v.Db, projectMemberTable, projectID)
|
||||
}
|
||||
|
||||
func (v *View) SearchProjectMembers(request *proj_model.ProjectMemberSearchRequest) ([]*model.ProjectMemberView, uint64, error) {
|
||||
return view.SearchProjectMembers(v.Db, projectMemberTable, request)
|
||||
}
|
||||
@@ -39,6 +43,10 @@ func (v *View) DeleteProjectMember(projectID, userID string, eventSequence uint6
|
||||
return v.ProcessedProjectMemberSequence(eventSequence)
|
||||
}
|
||||
|
||||
func (v *View) DeleteProjectMembersByProjectID(projectID string) error {
|
||||
return view.DeleteProjectMembersByProjectID(v.Db, projectMemberTable, projectID)
|
||||
}
|
||||
|
||||
func (v *View) GetLatestProjectMemberSequence() (*repository.CurrentSequence, error) {
|
||||
return v.latestSequence(projectMemberTable)
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@ func (v *View) ProjectRoleByIDs(projectID, orgID, key string) (*model.ProjectRol
|
||||
return view.ProjectRoleByIDs(v.Db, projectRoleTable, projectID, orgID, key)
|
||||
}
|
||||
|
||||
func (v *View) ProjectRolesByProjectID(projectID string) ([]*model.ProjectRoleView, error) {
|
||||
return view.ProjectRolesByProjectID(v.Db, projectRoleTable, projectID)
|
||||
}
|
||||
|
||||
func (v *View) ResourceOwnerProjectRolesByKey(projectID, resourceowner, key string) ([]*model.ProjectRoleView, error) {
|
||||
return view.ResourceOwnerProjectRolesByKey(v.Db, projectRoleTable, projectID, resourceowner, key)
|
||||
}
|
||||
@@ -43,6 +47,10 @@ func (v *View) DeleteProjectRole(projectID, orgID, key string, eventSequence uin
|
||||
return v.ProcessedProjectRoleSequence(eventSequence)
|
||||
}
|
||||
|
||||
func (v *View) DeleteProjectRolesByProjectID(projectID string) error {
|
||||
return view.DeleteProjectRolesByProjectID(v.Db, projectRoleTable, projectID)
|
||||
}
|
||||
|
||||
func (v *View) GetLatestProjectRoleSequence() (*repository.CurrentSequence, error) {
|
||||
return v.latestSequence(projectRoleTable)
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ type ProjectRepository interface {
|
||||
UpdateProject(ctx context.Context, project *model.Project) (*model.Project, error)
|
||||
DeactivateProject(ctx context.Context, id string) (*model.Project, error)
|
||||
ReactivateProject(ctx context.Context, id string) (*model.Project, error)
|
||||
RemoveProject(ctx context.Context, id string) error
|
||||
SearchProjects(ctx context.Context, request *model.ProjectViewSearchRequest) (*model.ProjectViewSearchResponse, error)
|
||||
SearchProjectGrants(ctx context.Context, request *model.ProjectGrantViewSearchRequest) (*model.ProjectGrantViewSearchResponse, error)
|
||||
SearchGrantedProjects(ctx context.Context, request *model.ProjectGrantViewSearchRequest) (*model.ProjectGrantViewSearchResponse, error)
|
||||
|
||||
Reference in New Issue
Block a user