Exemple #1
0
def script_xml(scrname):
    global dir_scripts
    
    acl = get_ACL(scrname)
    if acl == None:
        return ("NOT FOUND", 404, {})
    else:
        log(4, "running script_json() ...")
        if current_user.has_groups(acl):
            try:
                args = decode_xml(request.data)
                (code, out, err) = run_script(dir_scripts, scrname, args)
                res = {"response": {"code": code, "out": out, "err": err}}
                log(4, "result = " + dict2str(res))
                if code == 0:
                    log(4, out)
                    return make_response(encode_xml(res), 200)
                else:
                    log(3, err)
                    return make_response(encode_xml(res), 200)
            except Exception as err:
                log(1, str(err))
                return ("Internal Server Error", 500, {})
        else:
            return ("FORBIDDEN", 403, {})
Exemple #2
0
def render_page(htmlfile):
    log(4, "template page: %s" % htmlfile)
    page = get_page(htmlfile)
    if page == None:
        return ("NOT FOUND", 404, {})
    else:
        if current_user.has_groups(page.ACL):
            return render_template(htmlfile, title=cfg_get("AppTitle"))
        else:
            return ("FORBIDDEN", 403, {})
Exemple #3
0
def run_script(script_dir, script, args):
    scr_args = _prepare_args(script_dir, script, args)
    log(4, "Run Script: %s" % script)
    log(4, "  with arguments: " + dict2str(args))
    try:
        if os.name == 'posix':
            cl_fd = True
        else:
            cl_fd = False
        proc = subprocess.Popen(scr_args,
                                bufsize=10,
                                stdin=None,
                                stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE,
                                close_fds=cl_fd,
                                shell=False,
                                universal_newlines=True)
        out, err = proc.communicate()
        exitcode = proc.returncode
        return exitcode, out, err
    except OSError as ex:
        return -1, "", str(ex)
Exemple #4
0
def script_form(scrname):
    global dir_scripts
    
    acl = get_ACL(scrname)
    if acl == None:
        return ("NOT FOUND", 404, {})
    else:
        log(4, "running script_form() ...")
        if current_user.has_groups(acl):
            log(4, request.args)
            
            (code, out, err) = run_script(dir_scripts, scrname, request.args)
            if code == 0:
                log(1, out)
                return make_response(str(code) + '\n' + out, 200)
            else:
                return make_response(str(code) + '\n' + err, 200)
                log(3, err)
        else:
            return ("FORBIDDEN", 403, {})