Se, como eu, você preferir uma abordagem Python (rara por aqui provavelmente, mas ainda assim), essa é uma maneira transparente e eficaz de corrigir esse problema:
import os
# Build up a variable containing the usernames
# This list was built using drush sql-cli, then
# SELECT name FROM users
# where $your-where-condition
# order by uid asc
# INTO
# OUTFILE '/tmp/users.csv'
# FIELDS TERMINATED BY ','
# ENCLOSED BY '"'
# lines terminated by ', ' ;
users = [result from SQL goes here]
for user in users:
print("Deleting spam user: %s..." % user),
os.system('drush --yes -r $your-path-to-drupal -l $your-site-url user-cancel --delete-content %s > /dev/null' % user)
print 'Done'
Os passos são basicamente:
- Entre no seu banco de dados com
drush sql-cli -r $your-path-to-drupal -l $your-site-url
- Execute o SQL acima com sua própria condição where e cole os resultados na variável users.
- Atualize o caminho do drupal e o nome do site para o comando drush
- Execute o script com
python delete-users.py
Tenho certeza de que há uma maneira melhor de fazer isso, mas esta é a minha solução invadida que funciona bem.
select all
botão que seleciona todos os itens em todas as páginas - clique nele e em Kill-em-all!