fix: fallback to default continuum plugin logic, when no request
this solves the issue when running via command line, where it previously would always set user/IP to None since the wuttaweb plugin overrides the default when installed
This commit is contained in:
parent
53817a9e32
commit
ca20fdfd03
2 changed files with 16 additions and 8 deletions
|
|
@ -48,11 +48,15 @@ else:
|
||||||
request = get_current_request()
|
request = get_current_request()
|
||||||
if request:
|
if request:
|
||||||
return request.client_addr
|
return request.client_addr
|
||||||
return None
|
|
||||||
|
# nb. no request presumably means running as cli
|
||||||
|
return super().get_remote_addr(uow, session)
|
||||||
|
|
||||||
def get_user_id(self, uow, session): # pylint: disable=empty-docstring
|
def get_user_id(self, uow, session): # pylint: disable=empty-docstring
|
||||||
""" """
|
""" """
|
||||||
request = get_current_request()
|
request = get_current_request()
|
||||||
if request and request.user:
|
if request:
|
||||||
return request.user.uuid
|
return request.user.uuid if request.user else None
|
||||||
return None
|
|
||||||
|
# nb. no request presumably means running as cli
|
||||||
|
return super().get_user_id(uow, session)
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,15 @@ class TestWuttaWebContinuumPlugin(WebTestCase):
|
||||||
def test_get_remote_addr(self):
|
def test_get_remote_addr(self):
|
||||||
plugin = self.make_plugin()
|
plugin = self.make_plugin()
|
||||||
|
|
||||||
with patch.object(mod, "get_current_request", return_value=None):
|
# typical request from client IP
|
||||||
self.assertIsNone(plugin.get_remote_addr(None, self.session))
|
self.request.client_addr = "172.237.145.181"
|
||||||
|
self.assertEqual(plugin.get_remote_addr(None, self.session), "172.237.145.181")
|
||||||
|
|
||||||
self.request.client_addr = "127.0.0.1"
|
# pretend we have no request; IP will be random string
|
||||||
self.assertEqual(plugin.get_remote_addr(None, self.session), "127.0.0.1")
|
# (probably 127.0.0.1 but can't guarentee that..)
|
||||||
|
with patch.object(mod, "get_current_request", return_value=None):
|
||||||
|
addr = plugin.get_remote_addr(None, self.session)
|
||||||
|
self.assertIsInstance(addr, str)
|
||||||
|
|
||||||
def test_get_user_id(self):
|
def test_get_user_id(self):
|
||||||
plugin = self.make_plugin()
|
plugin = self.make_plugin()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue