mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Delete repos of org when purge delete user (#27273)
Fixes https://codeberg.org/forgejo/forgejo/issues/1514 I had to remove `RenameOrganization` to avoid circular import. We should really add some foreign keys to the database.
This commit is contained in:
		@@ -15,17 +15,24 @@ import (
 | 
			
		||||
	user_model "code.gitea.io/gitea/models/user"
 | 
			
		||||
	"code.gitea.io/gitea/modules/storage"
 | 
			
		||||
	"code.gitea.io/gitea/modules/util"
 | 
			
		||||
	user_service "code.gitea.io/gitea/services/user"
 | 
			
		||||
	repo_service "code.gitea.io/gitea/services/repository"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// DeleteOrganization completely and permanently deletes everything of organization.
 | 
			
		||||
func DeleteOrganization(ctx context.Context, org *org_model.Organization) error {
 | 
			
		||||
func DeleteOrganization(ctx context.Context, org *org_model.Organization, purge bool) error {
 | 
			
		||||
	ctx, commiter, err := db.TxContext(ctx)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	defer commiter.Close()
 | 
			
		||||
 | 
			
		||||
	if purge {
 | 
			
		||||
		err := repo_service.DeleteOwnerRepositoriesDirectly(ctx, org.AsUser())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Check ownership of repository.
 | 
			
		||||
	count, err := repo_model.CountRepositories(ctx, repo_model.CountRepositoryOptions{OwnerID: org.ID})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -67,8 +74,3 @@ func DeleteOrganization(ctx context.Context, org *org_model.Organization) error
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RenameOrganization renames an organization.
 | 
			
		||||
func RenameOrganization(ctx context.Context, org *org_model.Organization, newName string) error {
 | 
			
		||||
	return user_service.RenameUser(ctx, org.AsUser(), newName)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user