Desloguear a un usuario remotamente

44 views
Skip to first unread message

Lucho Flores

unread,
Oct 29, 2013, 12:57:18 PM10/29/13
to djan...@googlegroups.com
Hola amigos tengo una duda, pasa que estoy haciendo una app, sin utilizar el admin de django. Ahora bien, estoy utilizando los atributos propios de la clase User de django.
El problema radica cuando estoy utilizando el atributo is_staff, cuando el administrador pone en true el atributo is_staff de un usuario, él pasa automáticamente a loguearse, esto funciona correctamente, pero cuando le pongo a false, el usuario sigue activo y puede navegar por la aplicación hasta que él manualmente se desloguee, en este caso ya no puede acceder al sistema. Pero, el comportamiento que quiero, es que al darle false al is_staff, que el usuario automáticamente se desloguee y ya no tenga acceso más. 

Aztrock

unread,
Oct 29, 2013, 1:03:59 PM10/29/13
to djan...@googlegroups.com
en ese caso deberias utilizar is_active, si esta true puede loguearse y si no esta false, el usuario no se puede logear.


El 29 de octubre de 2013 11:57, Lucho Flores <luchito...@gmail.com> escribió:
Hola amigos tengo una duda, pasa que estoy haciendo una app, sin utilizar el admin de django. Ahora bien, estoy utilizando los atributos propios de la clase User de django.
El problema radica cuando estoy utilizando el atributo is_staff, cuando el administrador pone en true el atributo is_staff de un usuario, él pasa automáticamente a loguearse, esto funciona correctamente, pero cuando le pongo a false, el usuario sigue activo y puede navegar por la aplicación hasta que él manualmente se desloguee, en este caso ya no puede acceder al sistema. Pero, el comportamiento que quiero, es que al darle false al is_staff, que el usuario automáticamente se desloguee y ya no tenga acceso más. 

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a django-es+...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.



--
Un hombre de carácter podrá ser derrotado pero jamás destruido.

ERNEST HEMINGWAY.

Lucho Flores

unread,
Oct 29, 2013, 1:07:50 PM10/29/13
to djan...@googlegroups.com
Ya utilicé el is_active, y lo puse en False pero sigue estando logueado en el sistema.

Hiko hitokiri

unread,
Oct 29, 2013, 1:49:51 PM10/29/13
to djan...@googlegroups.com
es qeu ahi lo mejor es jugar con la tabla sesion  ya que esa es la que en realidad controla los logins

Lucho Flores

unread,
Oct 29, 2013, 1:51:41 PM10/29/13
to djan...@googlegroups.com

y cómo utilizo la tabla sesión, qué debería hacer???

Hiko hitokiri

unread,
Oct 29, 2013, 2:20:59 PM10/29/13
to djan...@googlegroups.com
pues puedes hacer un logout basado en los datos de usuario que usa la sesion para crearse claro  que eso se haga cuando inicie sesion desde otro lugar o tu ya veras ahi puedes capturar los datos cuando hagas login en otra parte

Lucho Flores

unread,
Oct 29, 2013, 2:26:21 PM10/29/13
to djan...@googlegroups.com
 Bueno logré hacerlo de la siguiente manera:

from django.contrib.sessions.models import Session
from django.contrib.auth.models import User
 
def miview(request):
    user = User.objects.get(username='johndoe')
    if not user.is_staff:
     [s.delete() for s in Session.objects.all() if s.get_decoded().get('_auth_user_id') == user.id]  
Reply all
Reply to author
Forward
0 new messages