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.

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.


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}"

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();
}

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.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.