示例#1
0
def init_well_known():
    reps = RedirectHTTPHandler.redirect_paths

    num_svcs = config.get_misc('http-well-known', 'num_services', '0')

    for nsv in range(1, int(num_svcs) + 1):
        uri = config.get_misc('http-well-known', 'service_%d' % nsv, False)
        path = config.get_misc('http-well-known', 'path_%d' % nsv, False)
        if not (uri and path):
            continue
        reps['/' + uri] = path

    if int(num_svcs):
        reg_http_service('/.well-known', RedirectHTTPHandler)
示例#2
0
def init_principals_redirect():
    """ Some devices like the iPhone will look under /principals/users/xxx for
    the user's properties. In OpenERP we _cannot_ have a stray /principals/...
    working path, since we have a database path and the /webdav/ component. So,
    the best solution is to redirect the url with 301. Luckily, it does work in
    the device. The trick is that we need to hard-code the database to use, either
    the one centrally defined in the config, or a "forced" one in the webdav
    section.
    """
    dbname = config.get_misc('webdav', 'principal_dbname', False)
    if (not dbname) and not config.get_misc('webdav', 'no_principals_redirect',
                                            False):
        dbname = config.get('db_name', False)
    if dbname:
        PrincipalsRedirect.redirect_paths[
            ''] = '/webdav/%s/principals' % dbname
        reg_http_service('/principals', PrincipalsRedirect)
        _logger.info(
            "Registered HTTP redirect handler for /principals to the %s db.",
            dbname)
示例#3
0
        user = arguments.get('user', tools.config.get('jasper_user', 'admin'))
        password = arguments.get('password',
                                 tools.config.get('jasper_password', 'a'))
        depth = int(arguments.get('depth', tools.config.get('jasper_depth',
                                                            3)))
        language = arguments.get('language',
                                 tools.config.get('jasper_language', 'en'))
        # Check if data is in cache already
        key = '%s|%s|%s|%s|%s' % (model, database, user, depth, language)
        if key in self.cache:
            return self.cache[key]

        context = {
            'lang': language,
        }

        uid = netsvc.dispatch_rpc('common', 'login',
                                  (database, user, password))
        result = netsvc.dispatch_rpc(
            'object', 'execute',
            (database, uid, password, 'ir.actions.report.xml', 'create_xml',
             model, depth, context))

        if use_cache:
            self.cache[key] = result

        return result


reg_http_service('/jasper/', JasperHandler)
示例#4
0
        model = path[0]
        arguments = {}
        for argument in path[-1].split('&'):
            argument = argument.split('=')
            arguments[ argument[0] ] = argument[-1]

        use_cache = tools.config.get('jasper_cache', True)
        database = arguments.get('database', tools.config.get('jasper_database', 'stable8') )
        user = arguments.get('user', tools.config.get('jasper_user', 'admin') )
        password = arguments.get('password', tools.config.get('jasper_password', 'a') )
        depth = int( arguments.get('depth', tools.config.get('jasper_depth', 3) ) )
        language = arguments.get('language', tools.config.get('jasper_language', 'en'))
        # Check if data is in cache already
        key = '%s|%s|%s|%s|%s' % (model, database, user, depth, language)
        if key in self.cache:
            return self.cache[key]

        context = {
            'lang': language,
        }

        uid = netsvc.dispatch_rpc('common', 'login', (database, user, password))
        result = netsvc.dispatch_rpc('object', 'execute', (database, uid, password, 'ir.actions.report.xml', 'create_xml', model, depth, context))

        if use_cache:
            self.cache[key] = result

        return result

reg_http_service('/jasper/', JasperHandler)
示例#5
0
try:

    if (config.get_misc('webdav', 'enable', True)):
        directory = '/' + config.get_misc('webdav', 'vdir', 'webdav')
        handler = DAVHandler
        verbose = config.get_misc('webdav', 'verbose', True)
        handler.debug = config.get_misc('webdav', 'debug', True)
        _dc = {
            'verbose': verbose,
            'directory': directory,
            'lockemulation': True,
        }

        conf = OpenDAVConfig(**_dc)
        handler._config = conf
        reg_http_service(directory, DAVHandler, DAVAuthProvider)
        _logger.info("WebDAV service registered at path: %s/ " % directory)

        if not (config.get_misc('webdav', 'no_root_hack', False)):
            # Now, replace the static http handler with the dav-enabled one.
            # If a static-http service has been specified for our server, then
            # read its configuration and use that dir_path.
            # NOTE: this will _break_ any other service that would be registered
            # at the root path in future.
            base_path = False
            if config.get_misc('static-http', 'enable', False):
                base_path = config.get_misc('static-http', 'base_path', '/')
            if base_path and base_path == '/':
                dir_path = config.get_misc('static-http', 'dir_path', False)
            else:
                dir_path = get_module_resource('document_webdav_fast',