Remove anonymous user support
This commit is contained in:
@@ -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__)
|
||||||
|
|||||||
@@ -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\
|
||||||
|
|||||||
@@ -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'))
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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'))
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user