Update fallback to redirect view

When there is no HTTP referer fallback to
common.settings_home_view instead of LOGIN_REDIRECT_URL.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-01-31 01:10:59 -04:00
parent a06c633568
commit 66670a5d59
4 changed files with 15 additions and 13 deletions

View File

@@ -5,7 +5,8 @@ from django.contrib import messages
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ImproperlyConfigured, PermissionDenied from django.core.exceptions import ImproperlyConfigured, PermissionDenied
from django.http import Http404, HttpResponseRedirect from django.http import Http404, HttpResponseRedirect
from django.shortcuts import get_object_or_404, resolve_url from django.shortcuts import get_object_or_404
from django.urls import reverse
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext from django.utils.translation import ungettext
from django.views.generic.detail import SingleObjectMixin from django.views.generic.detail import SingleObjectMixin
@@ -19,6 +20,7 @@ from .literals import (
PK_LIST_SEPARATOR, TEXT_CHOICE_ITEMS, TEXT_CHOICE_LIST, PK_LIST_SEPARATOR, TEXT_CHOICE_ITEMS, TEXT_CHOICE_LIST,
TEXT_LIST_AS_ITEMS_PARAMETER, TEXT_LIST_AS_ITEMS_VARIABLE_NAME TEXT_LIST_AS_ITEMS_PARAMETER, TEXT_LIST_AS_ITEMS_VARIABLE_NAME
) )
from .settings import setting_home_view
__all__ = ( __all__ = (
'DeleteExtraDataMixin', 'DynamicFormViewMixin', 'ExtraContextMixin', 'DeleteExtraDataMixin', 'DynamicFormViewMixin', 'ExtraContextMixin',
@@ -367,14 +369,14 @@ class RedirectionMixin(object):
self.next_url = self.request.POST.get( self.next_url = self.request.POST.get(
'next', self.request.GET.get( 'next', self.request.GET.get(
'next', post_action_redirect if post_action_redirect else self.request.META.get( 'next', post_action_redirect if post_action_redirect else self.request.META.get(
'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) 'HTTP_REFERER', reverse(setting_home_view.value)
) )
) )
) )
self.previous_url = self.request.POST.get( self.previous_url = self.request.POST.get(
'previous', self.request.GET.get( 'previous', self.request.GET.get(
'previous', action_cancel_redirect if action_cancel_redirect else self.request.META.get( 'previous', action_cancel_redirect if action_cancel_redirect else self.request.META.get(
'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) 'HTTP_REFERER', reverse(setting_home_view.value)
) )
) )
) )

View File

@@ -6,9 +6,9 @@ from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404, resolve_url from django.shortcuts import get_object_or_404
from django.template import RequestContext from django.template import RequestContext
from django.urls import reverse_lazy from django.urls import reverse, reverse_lazy
from django.utils import timezone, translation from django.utils import timezone, translation
from django.utils.http import urlencode from django.utils.http import urlencode
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@@ -282,7 +282,7 @@ def multi_object_action_view(request):
next = request.POST.get( next = request.POST.get(
'next', request.GET.get( 'next', request.GET.get(
'next', request.META.get( 'next', request.META.get(
'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) 'HTTP_REFERER', reverse(setting_home_view.value)
) )
) )
) )
@@ -299,7 +299,7 @@ def multi_object_action_view(request):
messages.error(request, _('No action selected.')) messages.error(request, _('No action selected.'))
return HttpResponseRedirect( return HttpResponseRedirect(
request.META.get( request.META.get(
'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) 'HTTP_REFERER', reverse(setting_home_view.value)
) )
) )
@@ -307,7 +307,7 @@ def multi_object_action_view(request):
messages.error(request, _('Must select at least one item.')) messages.error(request, _('Must select at least one item.'))
return HttpResponseRedirect( return HttpResponseRedirect(
request.META.get( request.META.get(
'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) 'HTTP_REFERER', reverse(setting_home_view.value)
) )
) )

View File

@@ -6,7 +6,6 @@ from furl import furl
from django.conf import settings from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.shortcuts import resolve_url
from django.urls import reverse from django.urls import reverse
from django.utils.encoding import force_text from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@@ -14,6 +13,7 @@ from django.views.generic import RedirectView
from mayan.apps.common.generics import SimpleView, SingleObjectListView from mayan.apps.common.generics import SimpleView, SingleObjectListView
from mayan.apps.common.mixins import ExternalObjectMixin from mayan.apps.common.mixins import ExternalObjectMixin
from mayan.apps.common.settings import setting_home_view
from mayan.apps.common.utils import resolve from mayan.apps.common.utils import resolve
from mayan.apps.converter.literals import DEFAULT_ROTATION, DEFAULT_ZOOM_LEVEL from mayan.apps.converter.literals import DEFAULT_ROTATION, DEFAULT_ZOOM_LEVEL
@@ -104,7 +104,7 @@ class DocumentPageNavigationBase(ExternalObjectMixin, RedirectView):
try: try:
previous_url = self.get_object().get_absolute_url() previous_url = self.get_object().get_absolute_url()
except AttributeError: except AttributeError:
previous_url = resolve_url(settings.LOGIN_REDIRECT_URL) previous_url = reverse(setting_home_view.value)
parsed_url = furl(url=previous_url) parsed_url = furl(url=previous_url)

View File

@@ -10,10 +10,9 @@ from django.conf import settings
from django.contrib.admin.utils import label_for_field from django.contrib.admin.utils import label_for_field
from django.core.exceptions import FieldDoesNotExist, PermissionDenied from django.core.exceptions import FieldDoesNotExist, PermissionDenied
from django.db.models.constants import LOOKUP_SEP from django.db.models.constants import LOOKUP_SEP
from django.shortcuts import resolve_url
from django.template import VariableDoesNotExist, Variable from django.template import VariableDoesNotExist, Variable
from django.template.defaulttags import URLNode from django.template.defaulttags import URLNode
from django.urls import resolve from django.urls import reverse, resolve
from django.utils.encoding import force_str, force_text from django.utils.encoding import force_str, force_text
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@@ -22,6 +21,7 @@ from mayan.apps.common.literals import (
TEXT_SORT_ORDER_CHOICE_ASCENDING, TEXT_SORT_ORDER_CHOICE_DESCENDING, TEXT_SORT_ORDER_CHOICE_ASCENDING, TEXT_SORT_ORDER_CHOICE_DESCENDING,
TEXT_SORT_ORDER_PARAMETER, TEXT_SORT_ORDER_VARIABLE_NAME TEXT_SORT_ORDER_PARAMETER, TEXT_SORT_ORDER_VARIABLE_NAME
) )
from mayan.apps.common.settings import setting_home_view
from mayan.apps.common.utils import resolve_attribute from mayan.apps.common.utils import resolve_attribute
from mayan.apps.permissions import Permission from mayan.apps.permissions import Permission
@@ -170,7 +170,7 @@ class Link(object):
parsed_url = furl( parsed_url = furl(
force_str( force_str(
request.get_full_path() or request.META.get( request.get_full_path() or request.META.get(
'HTTP_REFERER', resolve_url(settings.LOGIN_REDIRECT_URL) 'HTTP_REFERER', reverse(setting_home_view.value)
) )
) )
) )