def get_active_for(self, user, user_agent=_MARK, ip_address=_MARK):
        """Return last known session for given user.

        :param user: user session
        :type user: `abilian.core.models.subjects.User`

        :param user_agent: *exact* user agent string to lookup, or `None` to have
        user_agent extracted from request object. If not provided at all, no
        filtering on user_agent.
        :type user_agent: string or None, or absent

        :param ip_address: client IP, or `None` to have ip_address extracted from
        request object (requires header 'X-Forwarded-For'). If not provided at
        all, no filtering on ip_address.
        :type ip_address: string or None, or absent

        :rtype: `LoginSession` or `None` if no session is found.
        """
        conditions = [LoginSession.user == user]

        if user_agent is not _MARK:
            if user_agent is None:
                user_agent = request.environ.get("HTTP_USER_AGENT", "")
            conditions.append(LoginSession.user_agent == user_agent)

        if ip_address is not _MARK:
            if ip_address is None:
                ip_addresses = request.headers.getlist("X-Forwarded-For")
                ip_address = ip_addresses[0] if ip_addresses else request.remote_addr
            conditions.append(LoginSession.ip_address == ip_address)

        session = (
            LoginSession.query.filter(*conditions)
            .order_by(LoginSession.id.desc())
            .first()
        )
        return session
def get_active_for ( self , user , user_agent = _MARK , ip_address = _MARK ) : conditions = [ LoginSession . user == user ] if user_agent is not _MARK : if user_agent is None : user_agent = request . environ . get ( "HTTP_USER_AGENT" , "" ) conditions . append ( LoginSession . user_agent == user_agent ) if ip_address is not _MARK : if ip_address is None : ip_addresses = request . headers . getlist ( "X-Forwarded-For" ) ip_address = ip_addresses [ 0 ] if ip_addresses else request . remote_addr conditions . append ( LoginSession . ip_address == ip_address ) session = ( LoginSession . query . filter ( * conditions ) . order_by ( LoginSession . id . desc ( ) ) . first ( ) ) return session
Return last known session for given user.

        :param user: user session
        :type user: `abilian.core.models.subjects.User`

        :param user_agent: *exact* user agent string to lookup, or `None` to have
        user_agent extracted from request object. If not provided at all, no
        filtering on user_agent.
        :type user_agent: string or None, or absent

        :param ip_address: client IP, or `None` to have ip_address extracted from
        request object (requires header 'X-Forwarded-For'). If not provided at
        all, no filtering on ip_address.
        :type ip_address: string or None, or absent

        :rtype: `LoginSession` or `None` if no session is found.