Skip to content

user is None when logout is performed when already logged out #5

Description

@dominicglenn

When a user is logged out, if they try to log out again then an AttributeError is raised in the following code:

def destroy_session_activity(user, request, **kwargs):
    """
    Destroy session activity record.

    Should be called when user logs out or when a session is deactivated.
    """
    session_key = request.session.session_key
    if user.is_authenticated():
        SessionActivity.objects.filter(user=user, session_key=session_key)

The user is set to None in line 101 of django/contrib/auth/__init__.py:

    user = getattr(request, 'user', None)
    if hasattr(user, 'is_authenticated') and not user.is_authenticated():
        user = None
    user_logged_out.send(sender=user.__class__, request=request, user=user)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions