@@ -24,6 +24,7 @@ import (
2424 "code.gitea.io/gitea/modules/storage"
2525 "code.gitea.io/gitea/modules/util"
2626 "code.gitea.io/gitea/services/agit"
27+ org_service "code.gitea.io/gitea/services/org"
2728 "code.gitea.io/gitea/services/packages"
2829 container_service "code.gitea.io/gitea/services/packages/container"
2930 repo_service "code.gitea.io/gitea/services/repository"
@@ -158,27 +159,9 @@ func DeleteUser(ctx context.Context, u *user_model.User, purge bool) error {
158159 //
159160 // An alternative option here would be write a DeleteAllRepositoriesForUserID function which would delete all of the repos
160161 // but such a function would likely get out of date
161- for {
162- repos , _ , err := repo_model .GetUserRepositories (ctx , & repo_model.SearchRepoOptions {
163- ListOptions : db.ListOptions {
164- PageSize : repo_model .RepositoryListDefaultPageSize ,
165- Page : 1 ,
166- },
167- Private : true ,
168- OwnerID : u .ID ,
169- Actor : u ,
170- })
171- if err != nil {
172- return fmt .Errorf ("GetUserRepositories: %w" , err )
173- }
174- if len (repos ) == 0 {
175- break
176- }
177- for _ , repo := range repos {
178- if err := repo_service .DeleteRepositoryDirectly (ctx , u , repo .ID ); err != nil {
179- return fmt .Errorf ("unable to delete repository %s for %s[%d]. Error: %w" , repo .Name , u .Name , u .ID , err )
180- }
181- }
162+ err := repo_service .DeleteOwnerRepositoriesDirectly (ctx , u )
163+ if err != nil {
164+ return err
182165 }
183166
184167 // Remove from Organizations and delete last owner organizations
@@ -206,7 +189,10 @@ func DeleteUser(ctx context.Context, u *user_model.User, purge bool) error {
206189 for _ , org := range orgs {
207190 if err := models .RemoveOrgUser (ctx , org .ID , u .ID ); err != nil {
208191 if organization .IsErrLastOrgOwner (err ) {
209- err = organization .DeleteOrganization (ctx , org )
192+ err = org_service .DeleteOrganization (ctx , org , true )
193+ if err != nil {
194+ return fmt .Errorf ("unable to delete organization %d: %w" , org .ID , err )
195+ }
210196 }
211197 if err != nil {
212198 return fmt .Errorf ("unable to remove user %s[%d] from org %s[%d]. Error: %w" , u .Name , u .ID , org .Name , org .ID , err )
0 commit comments