Skip to content

Commit

Permalink
Force Django-Guardian AnonymousUser to use -1 as PK
Browse files Browse the repository at this point in the history
  • Loading branch information
noliveleger committed Oct 7, 2020
1 parent 95cccea commit 234dae6
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
7 changes: 5 additions & 2 deletions onadata/apps/main/models/user_profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
from django.db import models
from django.db.models.signals import post_save
from django.utils.translation import ugettext_lazy
from guardian.conf import settings as guardian_settings
from guardian.shortcuts import get_perms_for_model, assign_perm
from rest_framework.authtoken.models import Token
from jsonfield import JSONField
from rest_framework.authtoken.models import Token

from onadata.libs.utils.country_field import COUNTRIES
from onadata.libs.utils.gravatar import get_gravatar_img_link, gravatar_exists
from onadata.apps.main.signals import set_api_permissions
Expand Down Expand Up @@ -107,5 +109,6 @@ def get_anonymous_user_instance(User):
:param User: User class
:return: User instance
"""

return User(pk=settings.ANONYMOUS_USER_ID,
username='AnonymousUser')
username=guardian_settings.ANONYMOUS_USER_NAME)
9 changes: 6 additions & 3 deletions onadata/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,9 +190,6 @@ def skip_suspicious_operations(record):
os.path.join(TEMPLATE_OVERRIDE_ROOT_DIR, 'static')
]

# needed by guardian
ANONYMOUS_USER_ID = -1

INSTALLED_APPS = [
'django.contrib.contenttypes',
# Always put `contenttypes` before `auth`; see
Expand Down Expand Up @@ -406,6 +403,12 @@ def skip_suspicious_operations(record):

TESTING_MODE = False

# needed by guardian`
# Deprecated since v1.4.2. ToDo move to constants.py`
ANONYMOUS_USER_ID = -1
# Needed to get ANONYMOUS_USER = -1
GUARDIAN_GET_INIT_ANONYMOUS_USER = 'onadata.apps.main.models.user_profile.get_anonymous_user_instance'

PRINT_EXCEPTION = os.environ.get("PRINT_EXCEPTION", False)

KOBOFORM_SERVER = os.environ.get("KOBOFORM_SERVER", "localhost")
Expand Down
2 changes: 0 additions & 2 deletions onadata/settings/testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@
TESTING_MODE = True
TEST_HTTP_HOST = 'testserver.com'
TEST_USERNAME = 'bob'
# Needed to get ANONYMOUS_USER = -1 in `testing`
GUARDIAN_GET_INIT_ANONYMOUS_USER = 'onadata.apps.main.models.user_profile.get_anonymous_user_instance'

################################
# Celery settings #
Expand Down

0 comments on commit 234dae6

Please sign in to comment.