Skip to content

Commit baeec4d

Browse files
Patatamandaniel_shazura
andauthored
if using Flask-Login ctx.user exists, get user from there (#65)
* if using Flask-Login ctx.user exists, get user from there * more flask-login specific case to retrieve the username * only save user if is logged and not anonymous Co-authored-by: daniel_shazura <daniel@shazura.com>
1 parent 629ad1c commit baeec4d

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

src/flask_track_usage/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@
4141
import six
4242

4343
from flask import _request_ctx_stack, g
44+
try:
45+
from flask_login import current_user
46+
except Exception:
47+
pass
4448

4549
__version__ = '2.0.0'
4650
__author__ = 'Steve Milner'
@@ -184,6 +188,8 @@ def after_request(self, response):
184188
}
185189
if ctx.request.authorization:
186190
data['username'] = str(ctx.request.authorization.username)
191+
elif getattr(self.app, 'login_manager', None) and current_user and not current_user.is_anonymous:
192+
data['username'] = str(current_user)
187193
if self._use_freegeoip:
188194
clean_ip = quote_plus(str(ctx.request.remote_addr))
189195
if '{ip}' in self._freegeoip_endpoint:

test/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ def setUp(self):
7676
def index():
7777
return "Hello!"
7878

79+
7980
class FlaskTrackUsageTestCaseGeoIP(unittest.TestCase):
8081
"""
8182
Master TestCase for unittesting Flask-TrackUsage.

test/test_data.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,16 @@ def test_expected_data(self):
5858
"""
5959
self.client.get('/')
6060
result = self.storage.get()
61-
self.assertEquals(result.__class__, dict)
61+
self.assertEqual(result.__class__, dict)
6262
self.assertIsNone(result['blueprint'])
6363
self.assertIsNone(result['ip_info'])
64-
self.assertEquals(result['status'], 200)
65-
self.assertEquals(result['remote_addr'], '127.0.0.1')
66-
self.assertEquals(result['speed'].__class__, float)
67-
self.assertEquals(result['view_args'], {})
68-
self.assertEquals(result['url'], 'http://localhost/')
69-
self.assertEquals(result['path'], '/')
70-
self.assertEquals(result['authorization'], False)
64+
self.assertEqual(result['status'], 200)
65+
self.assertEqual(result['remote_addr'], '127.0.0.1')
66+
self.assertEqual(result['speed'].__class__, float)
67+
self.assertEqual(result['view_args'], {})
68+
self.assertEqual(result['url'], 'http://localhost/')
69+
self.assertEqual(result['path'], '/')
70+
self.assertEqual(result['authorization'], False)
7171
self.assertTrue(result['user_agent'].string.startswith('werkzeug'))
72-
self.assertEquals(type(result['date']), int)
72+
self.assertEqual(type(result['date']), int)
7373
self.assertTrue(datetime.datetime.fromtimestamp(result['date']))

0 commit comments

Comments
 (0)