Esempio n. 1
0
    def content(self):
        records = []
        for record in self.get_and_clear():
            msg = record.getMessage()
            if isinstance(msg, bytes):
                msg = msg.decode('utf-8', 'ignore')
            records.append({
                'message':
                msg,
                'time':
                datetime.datetime.fromtimestamp(record.created),
                'level':
                record.levelname,
                'file':
                format_fname(record.pathname),
                'file_long':
                record.pathname,
                'line':
                record.lineno,
            })

        records = reversed(records)
        return unicode_text(
            render(dict(records=records), tg.config['debugbar.engine'],
                   'tgext.debugbar.sections.templates.logging!html').split(
                       '\n', 1)[-1])
Esempio n. 2
0
    def content(self):
        vars = odict()
        request = tg.request._current_obj()
        response = tg.response._current_obj()
        attr_dict = request.environ.get("webob.adhoc_attrs", {}).copy()
        attr_dict["response"] = repr(response.__dict__)

        for entry in list(attr_dict.keys()):
            if entry.startswith("tgdb_"):
                del attr_dict[entry]

        vars["GET"] = [(k, request.GET.getall(k)) for k in request.GET]
        vars["POST"] = [(k, [saferepr(p) for p in request.POST.getall(k)]) for k in request.POST]
        vars["Cookies"] = [(k, request.cookies.get(k)) for k in request.cookies]
        vars["Headers"] = [
            (k, saferepr(v)) for k, v in request.environ.items() if k.startswith("HTTP_") or k in request_header_filter
        ]
        vars["Request Attributes"] = [(k, saferepr(v)) for k, v in attr_dict.items() if not callable(v)]
        vars["Environ"] = [(k, saferepr(v)) for k, v in request.environ.items()]

        return unicode_text(
            render(
                dict(vars=vars), tg.config["debugbar.engine"], "tgext.debugbar.sections.templates.request!html"
            ).split("\n", 1)[-1]
        )
Esempio n. 3
0
 def content(self):
     controllers = odict()
     map_controllers('', get_root_controller(), controllers)
     return unicode_text(
         render(dict(controllers=controllers), tg.config['debugbar.engine'],
                'tgext.debugbar.sections.templates.controllers!html').split(
                    '\n', 1)[-1])
Esempio n. 4
0
    def render_bars(self, response):
        page = response.get('response')
        if (not page or not isinstance(page, unicode_text)
                or 'text/html' not in response['content_type'] or
                request.headers.get('X-Requested-With') == 'XMLHttpRequest'):

            if tg.config.get('debugbar.enable_logs', False):
                for section in __sections__:
                    if hasattr(section, 'log_content'):
                        section.log_content()

            return

        pos_head = page.find('</head>')
        if pos_head > 0:
            pos_body = page.find('</body>', pos_head + 7)
            if pos_body > 0:
                response['response'] = ''.join([
                    page[:pos_head],
                    Markup(self.css_link % url(self.css_path)),
                    page[pos_head:pos_body],
                    Markup(
                        render(
                            dict(sections=__sections__),
                            tg.config['debugbar.engine'],
                            self.template,
                        ).split('\n', 1)[-1]), page[pos_body:]
                ])
Esempio n. 5
0
 def content(self):
     controllers = odict()
     map_controllers('', get_root_controller(), controllers)
     return unicode(render(
         dict(controllers=controllers),
         'genshi', 'tgext.debugbar.sections.templates.controllers'
         ).split('\n', 1)[-1])
Esempio n. 6
0
    def render_bars(self, response):
        page = response.get('response')
        if (not page or not isinstance(page, unicode_text)
                or 'text/html' not in response['content_type']
                or request.headers.get(
                    'X-Requested-With') == 'XMLHttpRequest'):

            if config.get('debugbar.enable_logs', False):
                for section in __sections__:
                    if hasattr(section, 'log_content'):
                        section.log_content()

            return

        pos_head = page.find('</head>')
        if pos_head > 0:
            pos_body = page.find('</body>', pos_head + 7)
            if pos_body > 0:
                response['response'] = ''.join(
                    [page[:pos_head],
                    Markup(self.css_link % url(self.css_path)),
                    page[pos_head:pos_body],
                    Markup(render(dict(sections=__sections__),
                                  config['debugbar.engine'], self.template,).split('\n', 1)[-1]),
                    page[pos_body:]])
Esempio n. 7
0
    def content(self):
        vars = odict()
        request = tg.request._current_obj()
        response = tg.response._current_obj()
        attr_dict = request.environ['webob.adhoc_attrs'].copy()
        attr_dict['response'] = repr(response.__dict__)

        for entry in attr_dict.keys():
            if entry.startswith('tgdb_'):
                del attr_dict[entry]

        vars['GET'] = [(k, request.GET.getall(k)) for k in request.GET]
        vars['POST'] = [(k, [saferepr(p)
            for p in request.POST.getall(k)]) for k in request.POST]
        vars['Cookies'] = [(k, request.cookies.get(k))
            for k in request.cookies]
        vars['Headers'] = [(k, saferepr(v))
            for k, v in request.environ.iteritems()
            if k.startswith('HTTP_') or k in request_header_filter]
        vars['Request Attributes'] = [(k, saferepr(v))
            for k, v in attr_dict.iteritems() if not callable(v)]
        vars['Environ'] = [(k, saferepr(v))
            for k, v in request.environ.iteritems()]

        return unicode(render(
            dict(vars=vars),
            'genshi', 'tgext.debugbar.sections.templates.request'
            ).split('\n', 1)[-1])
Esempio n. 8
0
    def content(self):
        data = self._gather_queries()
        if not data:
            return 'No queries in executed by the controller.'

        return unicode(render(dict(queries=data, tg=tg),
                              'genshi', 'tgext.debugbar.sections.templates.sqla').split('\n', 1)[-1])
Esempio n. 9
0
    def content(self):
        vars = odict()
        request = tg.request._current_obj()
        response = tg.response._current_obj()
        attr_dict = request.environ.get('webob.adhoc_attrs', {}).copy()
        attr_dict['response'] = repr(response.__dict__)

        for entry in list(attr_dict.keys()):
            if entry.startswith('tgdb_'):
                del attr_dict[entry]

        vars['GET'] = [(k, request.GET.getall(k)) for k in request.GET]
        vars['POST'] = [(k, [saferepr(p) for p in request.POST.getall(k)])
                        for k in request.POST]
        vars['Cookies'] = [(k, request.cookies.get(k))
                           for k in request.cookies]
        vars['Headers'] = [
            (k, saferepr(v)) for k, v in request.environ.items()
            if k.startswith('HTTP_') or k in request_header_filter
        ]
        vars['Request Attributes'] = [(k, saferepr(v))
                                      for k, v in attr_dict.items()
                                      if not callable(v)]
        vars['Environ'] = [(k, saferepr(v))
                           for k, v in request.environ.items()]

        return unicode_text(
            render(dict(vars=vars), tg.config['debugbar.engine'],
                   'tgext.debugbar.sections.templates.request!html').split(
                       '\n', 1)[-1])
Esempio n. 10
0
    def content(self):
        queries = getattr(request, 'tgdb_sqla_queries', [])
        if not queries:
            return 'No queries in executed by the controller.'

        data = []
        for query in queries:
            is_select = query['statement'].strip().lower().startswith('select')
            params = ''
            try:
                params = json.dumps(query['parameters'])
            except TypeError:
                return 'Unable to serialize parameters of the query'

            data.append({
                'engine_id': query['engine_id'],
                'duration': query['duration'],
                'sql': format_sql(query['statement']),
                'raw_sql': query['statement'],
                'params': params,
                'is_select': is_select,
                'context': query['context'],
            })

        delattr(request, 'tgdb_sqla_queries')
        return unicode(render(
            dict(queries=data, tg=tg),
            'genshi', 'tgext.debugbar.sections.templates.sqla'
            ).split('\n', 1)[-1])
Esempio n. 11
0
 def content(self):
     controllers = odict()
     map_controllers("", get_root_controller(), controllers)
     return unicode_text(
         render(
             dict(controllers=controllers),
             tg.config["debugbar.engine"],
             "tgext.debugbar.sections.templates.controllers!html",
         ).split("\n", 1)[-1]
     )
Esempio n. 12
0
 def vcard(self, uid=None):
     user = get_user_or_default_user(uid)
     enc = Encoder()
     vcf = render.render({'user':user}, template_engine='vcard', template_name='hiringpond.templates.vcard')
     data = enc.encode(vcf, {'ec_level': 3})
     #data = pyqrcode.MakeQRImage()
     buff = StringIO()
     data.save(buff, 'png')
     img = buff.getvalue()
     buff.close()
     return img
Esempio n. 13
0
    def content(self):
        data = self._gather_queries()
        if not data:
            return 'No queries in executed by the controller.'

        if isinstance(data, str):
            return data

        return unicode_text(render(dict(queries=data, tg=tg),
                              config['debugbar.engine'],
                              'tgext.debugbar.sections.templates.sqla!html').split('\n', 1)[-1])
Esempio n. 14
0
    def content(self):
        inventing_enabled = asbool(config.get('debugbar.inventing', 'false'))
        inventing_enabled = getattr(tmpl_context, 'debugbar_inventing', inventing_enabled)

        result = u''
        result += Markup(self.js_reloadscript)
        if inventing_enabled:
            result += Markup('<script>tgext_debugbar_init_inventing()</script>')
        result += render(dict(enabled=inventing_enabled),
                         'genshi', 'tgext.debugbar.sections.templates.inventing')
        return result
Esempio n. 15
0
    def content(self):
        data = self._gather_queries()
        if not data:
            return 'No queries in executed by the controller.'

        if isinstance(data, str):
            return data

        return unicode_text(
            render(dict(queries=data, tg=tg), config['debugbar.engine'],
                   'tgext.debugbar.sections.templates.sqla!html').split(
                       '\n', 1)[-1])
Esempio n. 16
0
def render_widget(mount_point, widget_name):
    app = c.project.app_instance(mount_point)
    method = getattr(app.widget(app), widget_name)
    with push_config(c, app=app):
        result = method()
    if isinstance(result, dict):
        deco = Decoration.get_decoration(method)
        content_type, engine, template, exclude_names = \
            deco.lookup_template_engine(request)
        template_vars = dict((k,v) for k,v in result.iteritems()
                             if k not in exclude_names)
        return render(template_vars, engine, template)
    return result
Esempio n. 17
0
 def vcard(self, uid=None):
     user = get_user_or_default_user(uid)
     enc = Encoder()
     vcf = render.render({'user': user},
                         template_engine='vcard',
                         template_name='hiringpond.templates.vcard')
     data = enc.encode(vcf, {'ec_level': 3})
     #data = pyqrcode.MakeQRImage()
     buff = StringIO()
     data.save(buff, 'png')
     img = buff.getvalue()
     buff.close()
     return img
Esempio n. 18
0
    def content(self):
        inventing_enabled = asbool(config.get('debugbar.inventing', 'false'))
        inventing_enabled = getattr(tmpl_context, 'debugbar_inventing', inventing_enabled)

        result = u''
        result += render(dict(), config['debugbar.engine'],
                         'tgext.debugbar.sections.templates.inventing!html')

        result += Markup(self.js_reloadscript)
        if inventing_enabled:
            result += Markup('<script>tgext_debugbar_inventing.init(true)</script>')
        else:
            result += Markup('<script>tgext_debugbar_inventing.init(false)</script>')

        return result
Esempio n. 19
0
    def content(self):
        records = []
        for record in self.get_and_clear():
            records.append({
                'message': record.getMessage().decode('utf-8', 'ignore'),
                'time': datetime.datetime.fromtimestamp(record.created),
                'level': record.levelname,
                'file': format_fname(record.pathname),
                'file_long': record.pathname,
                'line': record.lineno,
            })

        records = reversed(records)
        return unicode(render(
            dict(records=records),
            'genshi', 'tgext.debugbar.sections.templates.logging'
            ).split('\n', 1)[-1])
Esempio n. 20
0
 def render_bars(self, response):
     page = response.get('response')
     if (not page or not isinstance(page, unicode)
             or 'text/html' not in response['content_type']
             or request.headers.get(
                 'X-Requested-With') == 'XMLHttpRequest'):
         return
     pos_head = page.find('</head>')
     if pos_head > 0:
         pos_body = page.find('</body>', pos_head + 7)
         if pos_body > 0:
             response['response'] = ''.join(
                 [page[:pos_head],
                 literal(self.css_link % url(self.css_path)),
                 page[pos_head:pos_body],
                 literal(render(dict(sections=__sections__),
                     'genshi', self.template,).split('\n', 1)[-1]),
                 page[pos_body:]])
Esempio n. 21
0
def render_invalid_integrity_chosen_path(invalid_label: str) -> str:
    """
    Return html page code of error about invalid label choice.
    :param invalid_label: the invalid label
    :return: html page code
    """
    user = tmpl_context.current_user
    fake_api_content = DictLikeClass(current_user=user, )
    fake_api = Context(CTX.USER).toDict(fake_api_content)

    return render(
        template_vars=dict(
            invalid_label=invalid_label,
            fake_api=fake_api,
        ),
        template_engine='mako',
        template_name='tracim.templates.errors.label_invalid_path',
    )
Esempio n. 22
0
    def content(self):
        inventing_enabled = asbool(config.get('debugbar.inventing', 'false'))
        inventing_enabled = getattr(tmpl_context, 'debugbar_inventing',
                                    inventing_enabled)

        result = u''
        result += render(dict(), config['debugbar.engine'],
                         'tgext.debugbar.sections.templates.inventing!html')

        result += Markup(self.js_reloadscript)
        if inventing_enabled:
            result += Markup(
                '<script>tgext_debugbar_inventing.init(true)</script>')
        else:
            result += Markup(
                '<script>tgext_debugbar_inventing.init(false)</script>')

        return result
Esempio n. 23
0
def reconfirm_auth(func, *args, **kwargs):
    '''
    A decorator to require the user to reconfirm their login.  Useful for sensitive pages.
    '''
    from allura.lib.plugin import AuthenticationProvider

    if request.POST.get('password'):
        if AuthenticationProvider.get(request).validate_password(c.user, request.POST['password']):
            session['auth-reconfirmed'] = datetime.utcnow()
            session.save()
            kwargs.pop('password', None)
        else:
            c.form_errors['password'] = '******'

    allowed_timedelta = timedelta(seconds=asint(config.get('auth.reconfirm.seconds', 60)))
    last_reconfirm = session.get('auth-reconfirmed', datetime.min)
    if datetime.utcnow() - last_reconfirm <= allowed_timedelta:
        return func(*args, **kwargs)
    else:
        return render({}, 'jinja', "allura:templates/reconfirm_auth.html")
Esempio n. 24
0
    def content(self):
        records = []
        for record in self.get_and_clear():
            msg = record.getMessage()
            if isinstance(msg, bytes):
                msg = msg.decode('utf-8', 'ignore')
            records.append({
                'message': msg,
                'time': datetime.datetime.fromtimestamp(record.created),
                'level': record.levelname,
                'file': format_fname(record.pathname),
                'file_long': record.pathname,
                'line': record.lineno,
            })

        records = reversed(records)
        return unicode_text(render(
            dict(records=records),
            tg.config['debugbar.engine'], 'tgext.debugbar.sections.templates.logging!html'
            ).split('\n', 1)[-1])
Esempio n. 25
0
def reconfirm_auth(func, *args, **kwargs):
    '''
    A decorator to require the user to reconfirm their login.  Useful for sensitive pages.
    '''
    from allura.lib.plugin import AuthenticationProvider

    if request.POST.get('password'):
        if AuthenticationProvider.get(request).validate_password(c.user, request.POST['password']):
            session['auth-reconfirmed'] = datetime.utcnow()
            session.save()
            kwargs.pop('password', None)
        else:
            c.form_errors['password'] = '******'

    allowed_timedelta = timedelta(seconds=asint(config.get('auth.reconfirm.seconds', 60)))
    last_reconfirm = session.get('auth-reconfirmed', datetime.min)
    if datetime.utcnow() - last_reconfirm <= allowed_timedelta:
        return func(*args, **kwargs)
    else:
        return render({}, 'jinja', "allura:templates/reconfirm_auth.html")
Esempio n. 26
0
def render_invalid_integrity_chosen_path(invalid_label: str) -> str:
    """
    Return html page code of error about invalid label choice.
    :param invalid_label: the invalid label
    :return: html page code
    """
    user = tmpl_context.current_user
    fake_api_content = DictLikeClass(
        current_user=user,
    )
    fake_api = Context(CTX.USER).toDict(fake_api_content)

    return render(
        template_vars=dict(
            invalid_label=invalid_label,
            fake_api=fake_api,
        ),
        template_engine='mako',
        template_name='tracim.templates.errors.label_invalid_path',
    )
Esempio n. 27
0
    def content(self):
        queries = getattr(request, 'tgdb_ming_cursors', [])
        if not queries:
            return 'No queries in executed by the controller.'

        data = []
        for query in queries.values():
            params = json.dumps(query['params'], default=json_util.default)
            data.append({
                'duration': query['duration'],
                'command': query['command'],
                'collection': query['collection'],
                'filter': format_json(params),
                'params': params
            })

        delattr(request, 'tgdb_ming_cursors')
        return unicode_text(render(
            dict(queries=data, tg=tg),
            config['debugbar.engine'], 'tgext.debugbar.sections.templates.ming!html'
            ).split('\n', 1)[-1])
Esempio n. 28
0
    def content(self):
        queries = getattr(request, 'tgdb_ming_cursors', [])
        if not queries:
            return 'No queries in executed by the controller.'

        data = []
        for query in queries.values():
            params = json.dumps(query['params'], default=json_util.default)
            data.append({
                'duration': query['duration'],
                'command': query['command'],
                'collection': query['collection'],
                'filter': format_json(params),
                'params': params
            })

        delattr(request, 'tgdb_ming_cursors')
        return unicode_text(
            render(dict(queries=data, tg=tg), config['debugbar.engine'],
                   'tgext.debugbar.sections.templates.ming!html').split(
                       '\n', 1)[-1])
Esempio n. 29
0
 def content(self):
     try:
         return unicode_text(render(dict(
                 render_info=request.tgdb_render_info,
                 stats=request.tgdb_profiling_stats,
                 function_calls=request.tgdb_profiling_function_calls,
                 render_calls=request.tgdb_render_calls,
                 vars={'Total Time': request.tgdb_total_time,
                     'Controller Time': request.tgdb_call_time,
                     'Render Time': request.tgdb_render_time}),
             config['debugbar.engine'], 'tgext.debugbar.sections.templates.timing!html'
             ).split('\n', 1)[-1])
     finally:
         delattr(request, 'tgdb_render_info')
         delattr(request, 'tgdb_call_start_time')
         delattr(request, 'tgdb_call_time')
         delattr(request, 'tgdb_render_start_time')
         delattr(request, 'tgdb_render_call_start_time')
         delattr(request, 'tgdb_render_calls')
         delattr(request, 'tgdb_total_time')
         delattr(request, 'tgdb_render_time')
         delattr(request, 'tgdb_profiling_stats')
         delattr(request, 'tgdb_profiling_function_calls')
Esempio n. 30
0
 def content(self):
     try:
         return unicode(render(dict(
                 render_info=request.tgdb_render_info,
                 stats=request.tgdb_profiling_stats,
                 function_calls=request.tgdb_profiling_function_calls,
                 render_calls=request.tgdb_render_calls,
                 vars={'Total Time': request.tgdb_total_time,
                     'Controller Time': request.tgdb_call_time,
                     'Render Time': request.tgdb_render_time}),
             'genshi', 'tgext.debugbar.sections.templates.timing'
             ).split('\n', 1)[-1])
     finally:
         delattr(request, 'tgdb_render_info')
         delattr(request, 'tgdb_call_start_time')
         delattr(request, 'tgdb_call_time')
         delattr(request, 'tgdb_render_start_time')
         delattr(request, 'tgdb_render_call_start_time')
         delattr(request, 'tgdb_render_calls')
         delattr(request, 'tgdb_total_time')
         delattr(request, 'tgdb_render_time')
         delattr(request, 'tgdb_profiling_stats')
         delattr(request, 'tgdb_profiling_function_calls')
Esempio n. 31
0
def test_render_missing_renderer():
    render({}, 'gensh')
Esempio n. 32
0
def test_render_missing_renderer():
    render({}, 'gensh')
Esempio n. 33
0
File: root.py Progetto: mbbui/Jminee
 def jinja2_manual_rendering(self, frompylons=False):
     if frompylons:
         from pylons.templating import render_jinja2
         return render_jinja2('jinja_inherits.html')
     else:
         return render({}, 'jinja', 'jinja_inherits.html')
Esempio n. 34
0
 def send_template(self, to=None, subject=None, template=None, **kwargs):
     self.send(to=to, subject=subject, body=render(kwargs, template_name=template))
Esempio n. 35
0
File: root.py Progetto: mbbui/Jminee
 def genshi_manual_rendering_with_doctype(self, doctype=None):
     response.content_type = 'text/html'
     response.charset = 'utf-8'
     return render({}, 'genshi', 'genshi_doctype.html', doctype=doctype)