Olá @bdeandrade
O OJS tem um script para eliminação de usuários por linha de comando que faz um tipo de “remoção segura”. A referência para usuários cadastrados no sistema ocorre em mais de uma tabela, eliminar manualmente faria com que possíveis submissões ou atividades ficassem órfãs e possam até causar problemas em futuras atualizações.
A ferramenta no terminal pode ser invocada pelo comando:
$ php tools/mergeUsers.php
Ela vai retornar a ajuda do script, resumidamente o que ela faz é pegar o user que é spam e mesclar o histórico de submissões e atividades em outro. O que podes fazer é criar um user somente para isso, por exemplo “spam” e mesclar todos os usuários que quiser neste. Exemplo:
$ php tools/mergeUsers.php spam usernameFantasma1
O usernameFantasma1 será mesclado ao spam e removido do sistema com segurança. O que podes fazer é: verificar na tabela users do OJS, todos os usuários que tem a data de cadastro e last_login iguais. Geralmente spammers só se cadastram e se logam uma vez, na mesma data. Existem outros critérios, mas este é um inicial. É bom verificar se no meio destes usuários não existem falsos positivos, como usários que sao pareceristas (o login de pareceristas não é registrado conforme a versao do OJS, por isso pode parecer que nunca se logam).
Gere então um txt com a lista de usernames (ex.: spammers.txt), um embaixo do outro:
usernameFantasma1
usernameFantasma2
usernameFantasma3
usernameFantasma4
...
Com essa lista, você pode fazer um arquivo em BASH script e depois rodá-lo, ele vai mesclar e remover todos os usernames nela:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
php tools/mergeUsers.php spam $line
done < "$1"
Salve esse script com algum nome, como merge.sh, dentro da pasta do OJS e mude sua permissão para execução:
$ chmod +x merge.sh
Então podes executá-lo:
$ ./merge.sh spammers.txt
Resumidamente, é isso. Espero que lhe ajude. Lembre de criar o usuário com username “spam” no seu OJS. ALém é claro de fazer backup e tudo mais antes de qualquer coisa.
Um abraço
Israel Cefrin
PKP Team