Make the rake mastodon:users:clear task properly clear out unconfirmed users (#1777)
Before it cleared out user records only (e-mail, password) without freeing up the associated username (account record). Furthermore, since these records have no dependent records (due to no user activity) they can be deleted quickly with delete_all instead of destroy
This commit is contained in:
		
							parent
							
								
									00392d3c63
								
							
						
					
					
						commit
						fa08b5079d
					
				
					 1 changed files with 7 additions and 2 deletions
				
			
		| 
						 | 
					@ -76,9 +76,14 @@ namespace :mastodon do
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  namespace :users do
 | 
					  namespace :users do
 | 
				
			||||||
    desc 'clear unconfirmed users'
 | 
					    desc 'Clear out unconfirmed users'
 | 
				
			||||||
    task clear: :environment do
 | 
					    task clear: :environment do
 | 
				
			||||||
      User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).find_each(&:destroy)
 | 
					      # Users that never confirmed e-mail never signed in, means they
 | 
				
			||||||
 | 
					      # only have a user record and an avatar record, with no files uploaded
 | 
				
			||||||
 | 
					      User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).find_in_batches do |batch|
 | 
				
			||||||
 | 
					        Account.where(id: batch.map(&:account_id)).delete_all
 | 
				
			||||||
 | 
					        batch.delete_all
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue