mirror of
https://github.com/jazzband/django-analytical.git
synced 2026-03-16 22:20:25 +00:00
Merge pull request #130 from pjdelport/enable-intercom-anonymous-users
Enable Intercom for anonymous users
This commit is contained in:
commit
128c535550
2 changed files with 11 additions and 8 deletions
|
|
@ -74,16 +74,13 @@ class IntercomNode(Node):
|
|||
return params
|
||||
|
||||
def render(self, context):
|
||||
user = get_user_from_context(context)
|
||||
params = self._get_custom_attrs(context)
|
||||
params["app_id"] = self.app_id
|
||||
html = TRACKING_CODE % {
|
||||
"settings_json": json.dumps(params, sort_keys=True)
|
||||
}
|
||||
|
||||
if is_internal_ip(context, 'INTERCOM') \
|
||||
or not user or not get_user_is_authenticated(user):
|
||||
# Intercom is disabled for non-logged in users.
|
||||
if is_internal_ip(context, 'INTERCOM'):
|
||||
html = disable_html(html, 'Intercom')
|
||||
return html
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ Tests for the intercom template tags and filters.
|
|||
|
||||
import datetime
|
||||
|
||||
from django.contrib.auth.models import User, AnonymousUser
|
||||
from django.contrib.auth.models import User
|
||||
from django.http import HttpRequest
|
||||
from django.template import Context
|
||||
from django.test.utils import override_settings
|
||||
|
||||
|
|
@ -21,7 +22,7 @@ class IntercomTagTestCase(TagTestCase):
|
|||
|
||||
def test_tag(self):
|
||||
rendered_tag = self.render_tag('intercom', 'intercom')
|
||||
self.assertTrue(rendered_tag.startswith('<!-- Intercom disabled on internal IP address'))
|
||||
self.assertTrue(rendered_tag.strip().startswith('<script id="IntercomSettingsScriptTag">'))
|
||||
|
||||
def test_node(self):
|
||||
now = datetime.datetime(2014, 4, 9, 15, 15, 0)
|
||||
|
|
@ -99,6 +100,11 @@ class IntercomTagTestCase(TagTestCase):
|
|||
}))
|
||||
self.assertTrue('"email": "explicit"' in r, r)
|
||||
|
||||
def test_disable_for_anonymous_users(self):
|
||||
r = IntercomNode().render(Context({'user': AnonymousUser()}))
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
r = IntercomNode().render(context)
|
||||
self.assertTrue(r.startswith('<!-- Intercom disabled on internal IP address'), r)
|
||||
self.assertTrue(r.endswith('-->'), r)
|
||||
|
|
|
|||
Loading…
Reference in a new issue