mirror of
https://github.com/pretix/pretix.git
synced 2026-05-13 16:33:59 +00:00
Restrict locales to allowed ones on organizer pages
This commit is contained in:
@@ -59,21 +59,25 @@ class LocaleMiddleware(MiddlewareMixin):
|
|||||||
# set and can be taken into account for the decision.
|
# set and can be taken into account for the decision.
|
||||||
if not request.path.startswith(get_script_prefix() + 'control'):
|
if not request.path.startswith(get_script_prefix() + 'control'):
|
||||||
if hasattr(request, 'event'):
|
if hasattr(request, 'event'):
|
||||||
if language not in request.event.settings.locales:
|
settings_holder = request.event
|
||||||
|
elif hasattr(request, 'organizer'):
|
||||||
|
settings_holder = request.organizer
|
||||||
|
else:
|
||||||
|
settings_holder = None
|
||||||
|
|
||||||
|
if settings_holder:
|
||||||
|
if language not in settings_holder.settings.locales:
|
||||||
firstpart = language.split('-')[0]
|
firstpart = language.split('-')[0]
|
||||||
if firstpart in request.event.settings.locales:
|
if firstpart in settings_holder.settings.locales:
|
||||||
language = firstpart
|
language = firstpart
|
||||||
else:
|
else:
|
||||||
language = request.event.settings.locale
|
language = settings_holder.settings.locale
|
||||||
for lang in request.event.settings.locales:
|
for lang in settings_holder.settings.locales:
|
||||||
if lang.startswith(firstpart + '-'):
|
if lang.startswith(firstpart + '-'):
|
||||||
language = lang
|
language = lang
|
||||||
break
|
break
|
||||||
if '-' not in language and request.event.settings.region:
|
if '-' not in language and settings_holder.settings.region:
|
||||||
language += '-' + request.event.settings.region
|
language += '-' + settings_holder.settings.region
|
||||||
elif hasattr(request, 'organizer'):
|
|
||||||
if '-' not in language and request.organizer.settings.region:
|
|
||||||
language += '-' + request.organizer.settings.region
|
|
||||||
else:
|
else:
|
||||||
gs = global_settings_object(request)
|
gs = global_settings_object(request)
|
||||||
if '-' not in language and gs.settings.region:
|
if '-' not in language and gs.settings.region:
|
||||||
|
|||||||
Reference in New Issue
Block a user