Fix error in `get_user_ip_and_agents` when fetching from the database (#10968)
This commit is contained in:
parent
32072dcdac
commit
d1cbad388f
|
@ -0,0 +1 @@
|
||||||
|
Fix `/admin/whois/{user_id}` endpoint, which was broken in v1.44.0rc1.
|
|
@ -591,8 +591,8 @@ class ClientIpStore(ClientIpWorkerStore):
|
||||||
)
|
)
|
||||||
|
|
||||||
results.update(
|
results.update(
|
||||||
((row["access_token"], row["ip"]), (row["user_agent"], row["last_seen"]))
|
((access_token, ip), (user_agent, last_seen))
|
||||||
for row in rows
|
for access_token, ip, user_agent, last_seen in rows
|
||||||
)
|
)
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,9 +15,12 @@
|
||||||
|
|
||||||
from unittest.mock import Mock
|
from unittest.mock import Mock
|
||||||
|
|
||||||
|
from parameterized import parameterized
|
||||||
|
|
||||||
import synapse.rest.admin
|
import synapse.rest.admin
|
||||||
from synapse.http.site import XForwardedForRequest
|
from synapse.http.site import XForwardedForRequest
|
||||||
from synapse.rest.client import login
|
from synapse.rest.client import login
|
||||||
|
from synapse.types import UserID
|
||||||
|
|
||||||
from tests import unittest
|
from tests import unittest
|
||||||
from tests.server import make_request
|
from tests.server import make_request
|
||||||
|
@ -143,6 +146,37 @@ class ClientIpStoreTestCase(unittest.HomeserverTestCase):
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@parameterized.expand([(False,), (True,)])
|
||||||
|
def test_get_user_ip_and_agents(self, after_persisting: bool):
|
||||||
|
"""Test `get_user_ip_and_agents` for persisted and unpersisted data"""
|
||||||
|
self.reactor.advance(12345678)
|
||||||
|
|
||||||
|
user_id = "@user:id"
|
||||||
|
user = UserID.from_string(user_id)
|
||||||
|
|
||||||
|
# Insert a user IP
|
||||||
|
self.get_success(
|
||||||
|
self.store.insert_client_ip(
|
||||||
|
user_id, "access_token", "ip", "user_agent", "MY_DEVICE"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if after_persisting:
|
||||||
|
# Trigger the storage loop
|
||||||
|
self.reactor.advance(10)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
self.get_success(self.store.get_user_ip_and_agents(user)),
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"access_token": "access_token",
|
||||||
|
"ip": "ip",
|
||||||
|
"user_agent": "user_agent",
|
||||||
|
"last_seen": 12345678000,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
@override_config({"limit_usage_by_mau": False, "max_mau_value": 50})
|
@override_config({"limit_usage_by_mau": False, "max_mau_value": 50})
|
||||||
def test_disabled_monthly_active_user(self):
|
def test_disabled_monthly_active_user(self):
|
||||||
user_id = "@user:server"
|
user_id = "@user:server"
|
||||||
|
|
Loading…
Reference in New Issue