@@ -24,6 +24,7 @@ import (
24
24
"code.gitea.io/gitea/modules/storage"
25
25
"code.gitea.io/gitea/modules/util"
26
26
"code.gitea.io/gitea/services/agit"
27
+ org_service "code.gitea.io/gitea/services/org"
27
28
"code.gitea.io/gitea/services/packages"
28
29
container_service "code.gitea.io/gitea/services/packages/container"
29
30
repo_service "code.gitea.io/gitea/services/repository"
@@ -158,27 +159,9 @@ func DeleteUser(ctx context.Context, u *user_model.User, purge bool) error {
158
159
//
159
160
// An alternative option here would be write a DeleteAllRepositoriesForUserID function which would delete all of the repos
160
161
// but such a function would likely get out of date
161
- for {
162
- repos , _ , err := repo_model .GetUserRepositories (& 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 , u .ID , 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
182
165
}
183
166
184
167
// Remove from Organizations and delete last owner organizations
@@ -206,7 +189,10 @@ func DeleteUser(ctx context.Context, u *user_model.User, purge bool) error {
206
189
for _ , org := range orgs {
207
190
if err := models .RemoveOrgUser (org .ID , u .ID ); err != nil {
208
191
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
+ }
210
196
}
211
197
if err != nil {
212
198
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