Cerrar cesión de un usuario registrado

Events happening in the community are now at Drupal community events on www.drupal.org.
vacho's picture

Estoy tratando de expulsar a un usuario que se loguea ni bien este ingresa al sistema. Esto debido a que no cumple un requisito X

he intentado usar el hook sisguiente
function scnfarma_user_login(&$edit, $account){
/* codigo de verificación si el usuario cumple las condiciones*/

//intento de eliminar la sessión del usuario
db_delete('sessions')
->condition('uid', $account->uid)
->execute();

}

Por algún motivo no elimina la sesión y el usuario sigue usando el sitio vivito y coleando...
¿alguna recomendación?

Comments

Mejor validar en el formulario de log-in

jedihe's picture

¿No es mejor simplemente generar un error de validación cuando el usuario envía el formulario de login?

En caso de ser necesario "suplantar" al usuario para revisar los requisitos, se debe hacer usando el método descrito en http://drupal.org/node/218104 (parte del manual http://drupal.org/writing-secure-code)

interceptar el formulario login?

vacho's picture

Esto como lo hago? que hook o función ?

Con hook_form_alter se puede

jedihe's picture

Con hook_form_alter se puede averiguar el form_id del formulario; dpm() es muy útil (viene en el módulo devel).

El resto está aquí: http://befused.com/drupal/additional-validation-function

Session Expire

xjkwak's picture

Hola Osvaldo,

Dale un vistazo a este módulo: http://drupal.org/project/session_expire creo que es lo que buscas.

Saludos,

Cristian

ohh

vacho's picture

esto esta genial para evitar que esta table sessions se sature...

grax.. pero seguimos en la busqueda

vacho's picture

el modulo este session_expire hace esto:
db_query("DELETE FROM {sessions} WHERE timestamp < %d $extra_cond", $timestamp);
cuando el tiempo que lleva en el sistema esa sesión es menor al límite establecido en configuración del módulo ($timestamp)

pero cuando el usuario esta actualmente logueado y navegando en el sitio el delete sobre la tabla sessions por algún extraño motivo o magia budu... no funciona. (lo cual tiene cierta lógica)

saludos...

noticias...

vacho's picture

ninguna forma de consulta para eliminar una sesión de la tabla "sessions" funciona si la acción que dispara la consulta es ejecutada por el mismo usuario del que se quiere eliminar la sesión
por lo que la funsión durpal_session_destroy_uid() tampoco funciona para lo que requiero.

quizás lo que necesitas es

no aparece cerrar sesion como usuario registrado

misael78's picture

Hola a todos me pueden ayudar estoy en local host soy el administrador pero entre como usuario registrado hice una cuenta demo y la active desde mi cuenta de administración pero cuando entre como usuario registrado desaparece el bloque cerrar sesión y ya no puedo entrar como administrador porque primero tengo que cerrar sesión como usuario registrado

menu usuario

pinueve's picture

cierra completamente la pagina, asi haras "logout", has login como admin y en BLOCKS "activa" o mas bien posiciona el "user menu" en algun lado (header por ejemplo), y listo, podras ver "logout", etc.

no aparece cerrar sesion como usuario registrado

misael78's picture

hice el procedimiento cerré la pagina pero me sale igual no aparece cerrar sesión y sigo como usuario registrado pero sin acceso a cerrar sesión. de todos modos gracias pinueve

Accede directamente a

penyaskito's picture

Accede directamente a /user/logout editando en la barra de direcciones de tu navegador.

--
Christian López Espínola (@penyaskito)

gracias

misael78's picture

Gracias por la ayuda, logre solucionar el problema entre al panel de control de google crome y borre el historial de navegación y otros y con esto ya me mostró el bloque de usuario de drupal muchas gracias por todo a los que contestaron mi pregunta

Spain

Group organizers

Group categories

Región geográfica

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: