forked from MirrorHub/synapse
Fix error in get_user_ip_and_agents
when fetching from the database (#10968)
This commit is contained in:
parent
32072dcdac
commit
d1cbad388f
3 changed files with 37 additions and 2 deletions
1
changelog.d/10968.bugfix
Normal file
1
changelog.d/10968.bugfix
Normal file
|
@ -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(
|
||||
((row["access_token"], row["ip"]), (row["user_agent"], row["last_seen"]))
|
||||
for row in rows
|
||||
((access_token, ip), (user_agent, last_seen))
|
||||
for access_token, ip, user_agent, last_seen in rows
|
||||
)
|
||||
return [
|
||||
{
|
||||
|
|
|
@ -15,9 +15,12 @@
|
|||
|
||||
from unittest.mock import Mock
|
||||
|
||||
from parameterized import parameterized
|
||||
|
||||
import synapse.rest.admin
|
||||
from synapse.http.site import XForwardedForRequest
|
||||
from synapse.rest.client import login
|
||||
from synapse.types import UserID
|
||||
|
||||
from tests import unittest
|
||||
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})
|
||||
def test_disabled_monthly_active_user(self):
|
||||
user_id = "@user:server"
|
||||
|
|
Loading…
Reference in a new issue