Beispiel #1
0
        def __init__(self, function):
            WebMethodDescriptor.__init__(self, function, of_type,
                                         ('POST', client, lang, qs),
                                         'application/json', encoding, None,
                                         None, None)
            if allowed_origins:
                from porcupine import context
                from porcupine import filters

                @filters.runas('system')
                @webmethod(of_type=of_type,
                           http_method="OPTIONS",
                           content_type="text/plain",
                           max_age=-1)
                def __blank__(self):
                    origin = WebMethod._getAccessControlAllowOrigin(
                        allowed_origins, context)
                    if origin:
                        allowheaders = (context.request.
                                        HTTP_ACCESS_CONTROL_REQUEST_HEADERS)
                        if not allowheaders:
                            allowheaders = "*"
                        context.response.set_header(
                            "Access-Control-Allow-Origin", origin)
                        context.response.set_header(
                            "Access-Control-Allow-Headers", allowheaders)
                        context.response.set_header(
                            "Access-Control-Allow-Methods",
                            "POST, GET, OPTIONS")
                        context.response.set_header(
                            "Cache-Control", "no-cache")
        def execute(self, item, context):
            if isPage:
                from porcupine.core.session import SessionManager
                from porcupine.filters.output import JSMerge

                script_name = context.request.serverVariables["SCRIPT_NAME"]
                cookies_required = SessionManager._sm.requires_cookies
                no_cookies_url = '%s/{%s}%s%s' % (
                    script_name,
                    context.session.sessionid,
                    context.request.serverVariables['PATH_INFO'],
                    context.request.get_query_string())

                # get revision of quix core files
                quix_core_reg = (
                    pubdirs.dirs['__quix'].get_registration('core.js'))
                quix_core_files = (
                    quix_core_reg.get_filter_by_type(JSMerge)[1]['files'].
                    split(','))
                core_revision = JSMerge.get_revision(quix_core_files)

                vars = (bgcolor, title, script_name, script_name,
                        core_revision, str(cookies_required).lower(),
                        no_cookies_url)
                context.response.content_type = 'text/html'
                context.response.write(('''
<!DOCTYPE html>
<html style="background-color:%s">
    <head>
        <title>%s</title>
        <script type="text/javascript" defer="defer"
            src="%s/__quix/lib/extensions.js">
        </script>
        <script type="text/javascript" defer="defer"
            src="%s/__quix/core.js?r=%d">
        </script>
        <script type="text/javascript">
            (function() {
                document.cookiesEnabled = false;
                document.cookiesRequired = %s;
                var session_id = (
                    new RegExp("/\(?:{|%%7b)(.*?)\(?:}|%%7d)", "i"))
                    .exec(document.location.href);
                if (session_id)
                    session_id = session_id[1];
                if (typeof document.cookie == "string" &&
                        document.cookie.length != 0)
                    document.cookiesEnabled = true;
                if (!session_id && !document.cookiesEnabled)
                    document.location.href = '%s';
                })();
        </script>
    </head>
    <body onload="QuiX.__init__('quix')">
        <textarea id="quix" style="display:none">''' % vars).strip())

            WebMethodDescriptor.execute(self, item, context)

            if isPage:
                context.response.write('</textarea></body></html>')
        def execute(self, item, context):
            if isPage:
                script_name = context.request.serverVariables["SCRIPT_NAME"]
                no_cookies_url = '%s/{%s}%s%s' % (
                    script_name,
                    context.session.sessionid,
                    context.request.serverVariables['PATH_INFO'],
                    context.request.getQueryString()
                )
                vars = (script_name, no_cookies_url)
                
                context.response.content_type = 'text/html'
                context.response.write(('''
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
    <head>
        <script type="text/javascript" defer="defer" src="%s/__quix/quix.js"></script>
        <script type="text/javascript" defer="defer">
            var cookiesEnabled = false;
            var session_id = (new RegExp("/\(?:{|%%7b)([0-9a-f]{32})\(?:}|%%7d)", "i")).exec(document.location.href);
            if (session_id)
                session_id = session_id[1];
            if (typeof document.cookie == "string" && document.cookie.length != 0)
                cookiesEnabled = true;
            if (!session_id && !cookiesEnabled)
                document.location.href = '%s';
        </script>
    </head>
    <body onload="QuiX.__init__()">
        <xml id="quix" style="display:none">''' % vars).strip())
            WebMethodDescriptor.execute(self, item, context)
            if isPage:
                context.response.write('</xml></body></html>')
 def __init__(self, function):
     WebMethodDescriptor.__init__(self, function, of_type,
         ('GET',
          '(MSIE [6-7].+Windows NT)|(Mozilla/5.0.+rv:1.[7-9])|Version/3.\d(.*)Safari|Chrome/\d.\d',
          lang,
          qs),
         'text/xml', encoding, max_age, template, template_engine)
Beispiel #5
0
 def __init__(self, function):
     WebMethodDescriptor.__init__(self, function, of_type,
         ('GET',
          '(MSIE (?:[6-9]|10).+Windows NT)|' +
          '(Mozilla/5\.0.+rv:(1\.[7-9]|2\.\d|(?:[5-9]|1[0-9])\.\d))|' +
          'Version/[3-5]\.\d(.*)Safari|' +
          'Chrome/(\d)+\.(\d)+|' +
          'Opera/9',
          lang,
          qs),
         'text/xml', encoding, max_age, template, template_engine)
Beispiel #6
0
        def execute(self, item, context):
            if isPage:
                from porcupine.core.session import SessionManager

                script_name = context.request.serverVariables["SCRIPT_NAME"]
                cookies_required = SessionManager._sm.requires_cookies
                no_cookies_url = '%s/{%s}%s%s' % (
                    script_name,
                    context.session.sessionid,
                    context.request.serverVariables['PATH_INFO'],
                    context.request.get_query_string())

                # get revision of quix core files
                core_revision = misc.get_revision('quix', 'core.js')

                vars = (bgcolor,
                        title,
                        script_name,
                        core_revision,
                        context.request.get_lang(),
                        str(cookies_required).lower(),
                        no_cookies_url)

                context.response.content_type = 'text/html'
                context.response.write(('''
<!DOCTYPE html>
<html style="background-color:%s">
    <head>
        <title>%s</title>
        <script type="text/javascript" defer="defer"
            src="%s/quix/core.js?r=%d">
        </script>
        <script type="text/javascript">
            (function() {
                navigator.locale = '%s';
                document.cookiesEnabled = false;
                document.cookiesRequired = %s;
                var session_id = (
                    new RegExp("/\(?:{|%%7b)(.*?)\(?:}|%%7d)", "i"))
                    .exec(document.location.href);
                if (session_id) {
                    session_id = session_id[1];
                }
                if (typeof document.cookie == "string" &&
                        document.cookie.length != 0) {
                    document.cookiesEnabled = true;
                }
                if (!session_id && !document.cookiesEnabled) {
                    document.location.href = '%s';
                }
            })();
        </script>
        <script id="quix" type="application/xml">''' % vars).strip())

            WebMethodDescriptor.execute(self, item, context)

            if isPage:
                context.response.write('''</script>
    </head>
    <body onload="QuiX.__init__('quix')">''')
                context.response.write(body)
                context.response.write('</body></html>')
Beispiel #7
0
 def __init__(self, function):
     WebMethodDescriptor.__init__(self, function, of_type,
                                  (http_method, client, lang, qs),
                                  content_type, encoding, max_age,
                                  template, template_engine)
Beispiel #8
0
 def __init__(self, function):
     WebMethodDescriptor.__init__(self, function, of_type,
         ('GET', 'PMB|UNTRUSTED', lang, qs),
         'text/xml', encoding, max_age, template, template_engine)
 def __init__(self, function):
     WebMethodDescriptor.__init__(self, function, of_type,
                                  ('POST', client, lang, qs),
                                  'application/json', encoding, None,
                                  None, None)
 def __init__(self, function):
     WebMethodDescriptor.__init__(self, function, of_type,
                                  ('POST', client, lang, qs),
                                  'text/xml', encoding, None,
                                  None, None)
 def __init__(self, function):
     WebMethodDescriptor.__init__(self, function, of_type,
         ('GET', '(MSIE [6-7])|(Mozilla/5.0.+rv:1.[7-9])', lang, qs),
         'text/xml', encoding, max_age, template, template_engine)