Loading django/conf/__init__.py +0 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,6 @@ class Settings(BaseSettings): mod = importlib.import_module(self.SETTINGS_MODULE) tuple_settings = ( "ALLOWED_INCLUDE_ROOTS", "INSTALLED_APPS", "TEMPLATE_DIRS", "LOCALE_PATHS", Loading django/conf/global_settings.py +0 −4 Original line number Diff line number Diff line Loading @@ -260,10 +260,6 @@ DISALLOWED_USER_AGENTS = [] ABSOLUTE_URL_OVERRIDES = {} # List of strings representing allowed prefixes for the {% ssi %} tag. # Example: ['/home/html', '/var/www'] ALLOWED_INCLUDE_ROOTS = [] # List of compiled regular expression objects representing URLs that need not # be reported by BrokenLinkEmailsMiddleware. Here are a few examples: # import re Loading django/core/checks/compatibility/django_1_8_0.py +0 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ def check_duplicate_template_settings(app_configs, **kwargs): if settings.TEMPLATES: values = [ 'TEMPLATE_DIRS', 'ALLOWED_INCLUDE_ROOTS', 'TEMPLATE_CONTEXT_PROCESSORS', 'TEMPLATE_DEBUG', 'TEMPLATE_LOADERS', Loading django/template/defaulttags.py +1 −76 Original line number Diff line number Diff line """Default tags used by the template system, available to all templates.""" from __future__ import unicode_literals import os import re import sys import warnings Loading @@ -19,7 +18,7 @@ from django.utils.safestring import mark_safe from .base import ( BLOCK_TAG_END, BLOCK_TAG_START, COMMENT_TAG_END, COMMENT_TAG_START, SINGLE_BRACE_END, SINGLE_BRACE_START, VARIABLE_ATTRIBUTE_SEPARATOR, VARIABLE_TAG_END, VARIABLE_TAG_START, Context, Node, NodeList, Template, VARIABLE_TAG_END, VARIABLE_TAG_START, Context, Node, NodeList, TemplateSyntaxError, VariableDoesNotExist, kwarg_re, render_value_in_context, token_kwargs, ) Loading Loading @@ -373,44 +372,6 @@ class RegroupNode(Node): return '' def include_is_allowed(filepath, allowed_include_roots): filepath = os.path.abspath(filepath) for root in allowed_include_roots: if filepath.startswith(root): return True return False class SsiNode(Node): def __init__(self, filepath, parsed): self.filepath = filepath self.parsed = parsed def render(self, context): filepath = self.filepath.resolve(context) if not include_is_allowed(filepath, context.template.engine.allowed_include_roots): if settings.DEBUG: return "[Didn't have permission to include file]" else: return '' # Fail silently for invalid includes. try: with open(filepath, 'r') as fp: output = fp.read() except IOError: output = '' if self.parsed: try: t = Template(output, name=filepath, engine=context.template.engine) return t.render(context) except TemplateSyntaxError as e: if settings.DEBUG: return "[Included template had syntax error: %s]" % e else: return '' # Fail silently for invalid included templates. return output class LoadNode(Node): def render(self, context): return '' Loading Loading @@ -1091,42 +1052,6 @@ def ifchanged(parser, token): return IfChangedNode(nodelist_true, nodelist_false, *values) @register.tag def ssi(parser, token): """ Outputs the contents of a given file into the page. Like a simple "include" tag, the ``ssi`` tag includes the contents of another file -- which must be specified using an absolute path -- in the current page:: {% ssi "/home/html/ljworld.com/includes/right_generic.html" %} If the optional "parsed" parameter is given, the contents of the included file are evaluated as template code, with the current context:: {% ssi "/home/html/ljworld.com/includes/right_generic.html" parsed %} """ warnings.warn( "The {% ssi %} tag is deprecated. Use the {% include %} tag instead.", RemovedInDjango110Warning, ) bits = token.split_contents() parsed = False if len(bits) not in (2, 3): raise TemplateSyntaxError("'ssi' tag takes one argument: the path to" " the file to be included") if len(bits) == 3: if bits[2] == 'parsed': parsed = True else: raise TemplateSyntaxError("Second (optional) argument to %s tag" " must be 'parsed'" % bits[0]) filepath = parser.compile_filter(bits[1]) return SsiNode(filepath, parsed) def find_library(parser, name): try: return parser.libraries[name] Loading django/template/engine.py +1 −9 Original line number Diff line number Diff line Loading @@ -23,14 +23,11 @@ class Engine(object): 'django.template.loader_tags', ] def __init__(self, dirs=None, app_dirs=False, allowed_include_roots=None, context_processors=None, def __init__(self, dirs=None, app_dirs=False, context_processors=None, debug=False, loaders=None, string_if_invalid='', file_charset='utf-8', libraries=None, builtins=None): if dirs is None: dirs = [] if allowed_include_roots is None: allowed_include_roots = [] if context_processors is None: context_processors = [] if loaders is None: Loading @@ -46,13 +43,8 @@ class Engine(object): if builtins is None: builtins = [] if isinstance(allowed_include_roots, six.string_types): raise ImproperlyConfigured( "allowed_include_roots must be a tuple, not a string.") self.dirs = dirs self.app_dirs = app_dirs self.allowed_include_roots = allowed_include_roots self.context_processors = context_processors self.debug = debug self.loaders = loaders Loading Loading
django/conf/__init__.py +0 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,6 @@ class Settings(BaseSettings): mod = importlib.import_module(self.SETTINGS_MODULE) tuple_settings = ( "ALLOWED_INCLUDE_ROOTS", "INSTALLED_APPS", "TEMPLATE_DIRS", "LOCALE_PATHS", Loading
django/conf/global_settings.py +0 −4 Original line number Diff line number Diff line Loading @@ -260,10 +260,6 @@ DISALLOWED_USER_AGENTS = [] ABSOLUTE_URL_OVERRIDES = {} # List of strings representing allowed prefixes for the {% ssi %} tag. # Example: ['/home/html', '/var/www'] ALLOWED_INCLUDE_ROOTS = [] # List of compiled regular expression objects representing URLs that need not # be reported by BrokenLinkEmailsMiddleware. Here are a few examples: # import re Loading
django/core/checks/compatibility/django_1_8_0.py +0 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ def check_duplicate_template_settings(app_configs, **kwargs): if settings.TEMPLATES: values = [ 'TEMPLATE_DIRS', 'ALLOWED_INCLUDE_ROOTS', 'TEMPLATE_CONTEXT_PROCESSORS', 'TEMPLATE_DEBUG', 'TEMPLATE_LOADERS', Loading
django/template/defaulttags.py +1 −76 Original line number Diff line number Diff line """Default tags used by the template system, available to all templates.""" from __future__ import unicode_literals import os import re import sys import warnings Loading @@ -19,7 +18,7 @@ from django.utils.safestring import mark_safe from .base import ( BLOCK_TAG_END, BLOCK_TAG_START, COMMENT_TAG_END, COMMENT_TAG_START, SINGLE_BRACE_END, SINGLE_BRACE_START, VARIABLE_ATTRIBUTE_SEPARATOR, VARIABLE_TAG_END, VARIABLE_TAG_START, Context, Node, NodeList, Template, VARIABLE_TAG_END, VARIABLE_TAG_START, Context, Node, NodeList, TemplateSyntaxError, VariableDoesNotExist, kwarg_re, render_value_in_context, token_kwargs, ) Loading Loading @@ -373,44 +372,6 @@ class RegroupNode(Node): return '' def include_is_allowed(filepath, allowed_include_roots): filepath = os.path.abspath(filepath) for root in allowed_include_roots: if filepath.startswith(root): return True return False class SsiNode(Node): def __init__(self, filepath, parsed): self.filepath = filepath self.parsed = parsed def render(self, context): filepath = self.filepath.resolve(context) if not include_is_allowed(filepath, context.template.engine.allowed_include_roots): if settings.DEBUG: return "[Didn't have permission to include file]" else: return '' # Fail silently for invalid includes. try: with open(filepath, 'r') as fp: output = fp.read() except IOError: output = '' if self.parsed: try: t = Template(output, name=filepath, engine=context.template.engine) return t.render(context) except TemplateSyntaxError as e: if settings.DEBUG: return "[Included template had syntax error: %s]" % e else: return '' # Fail silently for invalid included templates. return output class LoadNode(Node): def render(self, context): return '' Loading Loading @@ -1091,42 +1052,6 @@ def ifchanged(parser, token): return IfChangedNode(nodelist_true, nodelist_false, *values) @register.tag def ssi(parser, token): """ Outputs the contents of a given file into the page. Like a simple "include" tag, the ``ssi`` tag includes the contents of another file -- which must be specified using an absolute path -- in the current page:: {% ssi "/home/html/ljworld.com/includes/right_generic.html" %} If the optional "parsed" parameter is given, the contents of the included file are evaluated as template code, with the current context:: {% ssi "/home/html/ljworld.com/includes/right_generic.html" parsed %} """ warnings.warn( "The {% ssi %} tag is deprecated. Use the {% include %} tag instead.", RemovedInDjango110Warning, ) bits = token.split_contents() parsed = False if len(bits) not in (2, 3): raise TemplateSyntaxError("'ssi' tag takes one argument: the path to" " the file to be included") if len(bits) == 3: if bits[2] == 'parsed': parsed = True else: raise TemplateSyntaxError("Second (optional) argument to %s tag" " must be 'parsed'" % bits[0]) filepath = parser.compile_filter(bits[1]) return SsiNode(filepath, parsed) def find_library(parser, name): try: return parser.libraries[name] Loading
django/template/engine.py +1 −9 Original line number Diff line number Diff line Loading @@ -23,14 +23,11 @@ class Engine(object): 'django.template.loader_tags', ] def __init__(self, dirs=None, app_dirs=False, allowed_include_roots=None, context_processors=None, def __init__(self, dirs=None, app_dirs=False, context_processors=None, debug=False, loaders=None, string_if_invalid='', file_charset='utf-8', libraries=None, builtins=None): if dirs is None: dirs = [] if allowed_include_roots is None: allowed_include_roots = [] if context_processors is None: context_processors = [] if loaders is None: Loading @@ -46,13 +43,8 @@ class Engine(object): if builtins is None: builtins = [] if isinstance(allowed_include_roots, six.string_types): raise ImproperlyConfigured( "allowed_include_roots must be a tuple, not a string.") self.dirs = dirs self.app_dirs = app_dirs self.allowed_include_roots = allowed_include_roots self.context_processors = context_processors self.debug = debug self.loaders = loaders Loading