Como sair de todos os usuários ativos?

15

Em vez de colocar meu site no "modo de manutenção", eu gostaria de colocá-lo em um "modo somente leitura" completo. Existe um módulo para isso, no entanto, apenas impede "adicionar e editar nós". Eu gostaria de impedir que todas as atividades do usuário, incluindo o login e o registro, basicamente tenham o site servido no cache (verniz). Como benefício colateral, eu usaria esse tipo de "modo somente leitura" se o site fosse inundado de solicitações.

Minha pergunta: como posso sair de todos os usuários ativos? O login e os registros podem ser redirecionados com um gancho.

uwe
fonte

Respostas:

13

Tanto quanto sei, você pode esvaziar a tabela de sessões e todos os usuários serão desconectados. Pode haver um problema, dependendo dos módulos que você instalou. Por exemplo, os módulos que implementam hook_user_logout()nunca acionam suas ações, o que pode ser um problema. Verifique se nenhum dos módulos instalados está implementando esse gancho.

F1234k
fonte
4
Como @ F1234k disse, a exclusão da tabela de sessões nunca fará com que hook_user_logout () seja acionado. Mas, você pode simplesmente acionar você mesmo. Selecione todos os uid's da tabela de sessões e então execute `module_invoke_all ('user_logout', $ user);` para cada um deles. No entanto, você pode filtrar aqueles que têm a sessão aberta por mais de uma hora (as sessões no Drupal podem permanecer ativadas sem limites).
Alexandru Savin
obrigado. Vou precisar acionar os ganchos de logout, caso contrário, recebo um WSOD para usuários que estão conectados com o módulo "login persistente".
Uwe
13

Você pode esvaziar a tabela de sessões usando drush

drush sqlq "TRUNCATE sessions"

ou se você configurou prefixos para nomes de tabelas:

drush sqlq --db-prefix "TRUNCATE {sessions}"
batigolix
fonte
0

Você pode forçar o logoff de todos os usuários por meio de um gancho de atualização:

/**
 * Force to logout all the users.
 */
function mymodule_update_7001() {
  db_truncate('sessions')->execute();
}
milkovsky
fonte
0

Use o Forçar Logout Module .

Recursos

  • Formulário de configurações onde você pode ativar e desativar (Forçar logout).
  • Permissão para que você possa excluir algumas funções de usuário se desejar excluir o administrador, por exemplo.
Saud Alfadhli
fonte