Remove anonymous user support

This commit is contained in:
Roberto Rosario
2015-07-01 02:45:58 -04:00
parent 48a4e95cf0
commit f65fb2cd6c
7 changed files with 5 additions and 54 deletions

View File

@@ -10,7 +10,6 @@ from django.db import models
from django.db.models import Q from django.db.models import Q
from django.utils.translation import ugettext from django.utils.translation import ugettext
from common.models import AnonymousUserSingleton
from permissions import Permission from permissions import Permission
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@@ -6,8 +6,6 @@ from django.http import HttpResponseRedirect
from django.conf import settings from django.conf import settings
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from ..settings import setting_allow_anonymous_access
EXEMPT_URLS = [re.compile(reverse(settings.LOGIN_URL).lstrip('/'))] EXEMPT_URLS = [re.compile(reverse(settings.LOGIN_URL).lstrip('/'))]
if hasattr(settings, 'LOGIN_EXEMPT_URLS'): if hasattr(settings, 'LOGIN_EXEMPT_URLS'):
EXEMPT_URLS += [re.compile(expr) for expr in settings.LOGIN_EXEMPT_URLS] EXEMPT_URLS += [re.compile(expr) for expr in settings.LOGIN_EXEMPT_URLS]
@@ -25,7 +23,6 @@ class LoginRequiredMiddleware:
""" """
def process_request(self, request): def process_request(self, request):
if not setting_allow_anonymous_access.value:
assert hasattr(request, 'user'), "The Login Required middleware\ assert hasattr(request, 'user'), "The Login Required middleware\
requires authentication middleware to be installed. Edit your\ requires authentication middleware to be installed. Edit your\
MIDDLEWARE_CLASSES setting to insert\ MIDDLEWARE_CLASSES setting to insert\

View File

@@ -6,4 +6,3 @@ from smart_settings import Namespace
namespace = Namespace(name='authentication', label=_('Authentication')) namespace = Namespace(name='authentication', label=_('Authentication'))
setting_login_method = namespace.add_setting(global_name='AUTHENTICATION_LOGIN_METHOD', default='username', help_text=_('Controls the mechanism used to authenticated user. Options are: username, email')) setting_login_method = namespace.add_setting(global_name='AUTHENTICATION_LOGIN_METHOD', default='username', help_text=_('Controls the mechanism used to authenticated user. Options are: username, email'))
setting_allow_anonymous_access = namespace.add_setting(global_name='AUTHENTICATION_ALLOW_ANONYMOUS_ACCESS', default=False, help_text=_('Allow non authenticated users, access to all views'))

View File

@@ -21,15 +21,10 @@ from .links import (
from .menus import ( from .menus import (
menu_facet, menu_main, menu_secondary, menu_setup, menu_tools menu_facet, menu_main, menu_secondary, menu_setup, menu_tools
) )
from .models import AnonymousUserSingleton
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def create_anonymous_user(sender, **kwargs):
AnonymousUserSingleton.objects.get_or_create()
class MayanAppConfig(apps.AppConfig): class MayanAppConfig(apps.AppConfig):
app_url = None app_url = None
app_namespace = None app_namespace = None
@@ -69,6 +64,5 @@ class CommonApp(MayanAppConfig):
) )
menu_tools.bind_links(links=[link_maintenance_menu]) menu_tools.bind_links(links=[link_maintenance_menu])
post_migrate.connect(create_anonymous_user, dispatch_uid='create_anonymous_user', sender=self)
user_logged_in.connect(user_locale_profile_session_config, dispatch_uid='user_locale_profile_session_config', sender=settings.AUTH_USER_MODEL) user_logged_in.connect(user_locale_profile_session_config, dispatch_uid='user_locale_profile_session_config', sender=settings.AUTH_USER_MODEL)
post_save.connect(user_locale_profile_create, dispatch_uid='user_locale_profile_create', sender=settings.AUTH_USER_MODEL) post_save.connect(user_locale_profile_create, dispatch_uid='user_locale_profile_create', sender=settings.AUTH_USER_MODEL)

View File

@@ -1,12 +0,0 @@
from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import AnonymousUser
class AnonymousUserSingletonManager(models.Manager):
def passthru_check(self, user):
if isinstance(user, AnonymousUser):
return self.model.objects.get()
else:
return user

View File

@@ -7,9 +7,6 @@ from django.db import models
from django.utils.encoding import python_2_unicode_compatible from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _, ugettext from django.utils.translation import ugettext_lazy as _, ugettext
from solo.models import SingletonModel
from .managers import AnonymousUserSingletonManager
from .runtime import shared_storage_backend from .runtime import shared_storage_backend
SHARED_UPLOADED_FILE_PATH = 'shared_uploads' SHARED_UPLOADED_FILE_PATH = 'shared_uploads'
@@ -20,17 +17,6 @@ def upload_to(instance, filename):
return '/'.join([SHARED_UPLOADED_FILE_PATH, filename]) return '/'.join([SHARED_UPLOADED_FILE_PATH, filename])
@python_2_unicode_compatible
class AnonymousUserSingleton(SingletonModel):
objects = AnonymousUserSingletonManager()
def __str__(self):
return ugettext('Anonymous user')
class Meta:
verbose_name = verbose_name_plural = _('Anonymous user')
@python_2_unicode_compatible @python_2_unicode_compatible
class SharedUploadedFile(models.Model): class SharedUploadedFile(models.Model):
file = models.FileField(upload_to=upload_to, storage=shared_storage_backend, verbose_name=_('File')) file = models.FileField(upload_to=upload_to, storage=shared_storage_backend, verbose_name=_('File'))

View File

@@ -5,21 +5,9 @@ import logging
from django.db import models from django.db import models
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from common.models import AnonymousUserSingleton
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class RoleMemberManager(models.Manager):
def get_roles_for_member(self, member_obj):
"""
Return the roles to which a member_obj belongs to.
"""
member_obj = AnonymousUserSingleton.objects.passthru_check(member_obj)
member_type = ContentType.objects.get_for_model(member_obj)
return (role_member.role for role_member in self.model.objects.filter(member_type=member_type, member_id=member_obj.pk))
class StoredPermissionManager(models.Manager): class StoredPermissionManager(models.Manager):
def get_for_holder(self, holder): def get_for_holder(self, holder):
ct = ContentType.objects.get_for_model(holder) ct = ContentType.objects.get_for_model(holder)