def rest_historic(filename): logging.info("Webservices hitoric Receving....") users = nubexUser(logging, dbnubex) try: if request.method == "GET": account_name = request.args["account_name"] account_key = request.args["account_key"] else: account_name = request.form["account_name"] account_key = request.form["account_key"] account = users.isvalid(account_name, account_key) except: account = False if account: historic = nubexHistoric(logging, account_name) if filename == "list": # try: step = request.form["step"] # data = historic.get_list( step ) # logging.critical( 'toto:' + data ) # response = make_response( data ) # response.headers['Content-Type'] = 'application/json' historic_data = historic.get_list(step) return historic_data # except: # return '{ "success":"false", "msg":"Parameter problem" }' else: return '{ "success":"false", "msg":"This REST URL does not exists" }' else: logging.critical("This account does not exists") return '{ "success":"false", "msg":"Your account configuration seem to be incorrect" }'
def rest_configuration(filename): logging.info("Webservice configuration Receving....") users = nubexUser(logging, dbnubex) if filename == "setup_initial": try: username = request.form["username"] alias = request.form["alias"] password = request.form["password"] mail = request.form["mail"] smtp_name = request.form["smtp_name"] smtp_mail = request.form["smtp_mail"] smtp_server = request.form["smtp_server"] smtp_port = request.form["smtp_port"] logging_debug = request.form["logging_debug"] logging_level = request.form["logging_level"] size = request.form["size"] response = users.register(username, alias, password, mail, "true", "0", "open") config = json.dumps( { "smtp_server": smtp_server, "smtp_port": smtp_port, "smtp_name": smtp_name, "smtp_mail": smtp_mail, "logging_debug": logging_debug, "logging_level": logging_level, "size": size, } ) fd = open(path_nubex + "/server/server.conf", "w") fd.write(config) fd.close() return '{ "success":"true", "msg":"Initial Setup Done" }' except: return '{ "success":"false", "msg":"Initial Setup Failed" }' else: return ""
def rest_user(filename): logging.info("Webservice user Receving....") users = nubexUser(logging, dbnubex) if filename == "register": username = request.form["username"] alias = request.form["alias"] password = request.form["password"] mail = request.form["mail"] response = users.register(username, alias, password, mail) elif filename == "login": username = request.form["username"] password = request.form["password"] response = users.login(username, password) elif filename == "delete": username = request.form["account"] account_name = request.form["account_name"] account_key = request.form["account_key"] account = users.get_account(account_name, account_key) isadmin = account.get("isadmin", "false") if account and isadmin == "true": response = users.delete(username) else: logging.critical("This account does not exists") return '{ "success":"false", "msg":"Your account configuration seem to be incorrect" }' elif filename == "isadmin": account_name = request.form["account_name"] account_key = request.form["account_key"] account = users.get_account(account_name, account_key) isadmin = account.get("isadmin", "false") if account: response = '{ "isadmin":"' + isadmin + '" }' else: logging.critical("This account does not exists") return '{ "success":"false", "msg":"Your account configuration seem to be incorrect" }' elif filename == "change_state": username = request.form["account"] state = request.form["state"] account_name = request.form["account_name"] account_key = request.form["account_key"] account = users.get_account(account_name, account_key) isadmin = account.get("isadmin", "false") if account and isadmin == "true": response = users.change_state(username, state) else: logging.critical("This account does not exists") return '{ "success":"false", "msg":"Your account configuration seem to be incorrect" }' elif filename == "change_admin": username = request.form["account"] state = request.form["state"] account_name = request.form["account_name"] account_key = request.form["account_key"] account = users.get_account(account_name, account_key) isadmin = account.get("isadmin", "false") if account and isadmin == "true": response = users.change_admin(username, state) else: logging.critical("This account does not exists") return '{ "success":"false", "msg":"Your account configuration seem to be incorrect" }' elif filename == "overall": account_name = request.form["account_name"] account_key = request.form["account_key"] account = users.get_account(account_name, account_key) if account: files = nubexFile(logging, account_name) sizetotalnum = int(account["size"]) if sizetotalnum == 0: sizetotal = "Unlimited" elif sizetotalnum < 1024: sizetotal = str(sizetotalnum) + " KB" elif sizetotalnum < 1024 * 1024: sizetotal = str(sizetotalnum / 1024) + " MB" else: sizetotal = str(sizetotalnum / (1024 * 1024)) + " GB" sizeusednum = files.file_accountsize() if sizeusednum < 1024: sizeused = str(sizeusednum) + " B" elif sizeusednum < 1024 * 1024: sizeused = str(sizeusednum / 1024) + " KB" elif sizeusednum < 1024 * 1024 * 1024: sizeused = str(sizeusednum / (1024 * 1024)) + " MB" else: sizeused = str(sizeusednum / (1024 * 1024 * 1024)) + " GB" sizefreenum = (int(account["size"]) * 1024) - sizeusednum if sizefreenum < 1024: sizefree = str(sizefreenum) + " B" elif sizefreenum < 1024 * 1024: sizefree = str(sizefreenum / 1024) + " KB" elif sizefreenum < 1024 * 1024 * 1024: sizefree = str(sizefreenum / (1024 * 1024)) + " MB" else: sizefree = str(sizefreenum / (1024 * 1024 * 1024)) + " GB" if sizetotalnum == 0: sizepourcent = "75" else: sizepourcent = (100 * sizeusednum) / (sizetotalnum * 1024) response = json.dumps( { "success": "true", "username": account["username"], "alias": account["alias"], "mail": account["mail"], "isadmin": account["isadmin"], "accounttype": account["state"], "sizetotal": sizetotal, "sizeused": sizeused, "sizefree": sizefree, "sizepourcent": sizepourcent, } ) else: logging.critical("This account does not exists") response = '{ "success":"false", "msg":"Your account configuration seem to be incorrect" }' elif filename == "list": account_name = request.form["account_name"] account_key = request.form["account_key"] account = users.get_account(account_name, account_key) isadmin = account.get("isadmin", "false") if account and isadmin == "true": return users.get_list() else: response = '{ "success":"false", "msg":"Restricted access to admin" }' return response
def rest_file(filename): logging.info("Webservice file Receving....") users = nubexUser(logging, dbnubex) try: if request.method == "GET": account_name = request.args["account_name"] account_key = request.args["account_key"] else: account_name = request.form["account_name"] account_key = request.form["account_key"] account = users.isvalid(account_name, account_key) except: account = False if account: files = nubexFile(logging, account_name) if filename == "delete": path = request.form["path"] pathbase = request.form["pathbase"] on_move = request.form["on_move"] files.file_delete(path, pathbase, on_move) elif filename == "modify": data = request.files["data"] pathbase = request.form["pathbase"] mimetype = request.form["mimetype"] raw = "" if data: while True: datachunk = data.read(1024) if not datachunk: break raw = raw + datachunk files.file_modify(data.filename, pathbase, raw, mimetype) elif filename == "move": move_from = request.form["move_from"] move_to = request.form["move_to"] pathbase = request.form["pathbase"] is_dir = request.form["is_dir"] files.file_move(move_from, move_to, pathbase, is_dir) elif filename == "list": try: path = request.form["path"] except: path = "" return files.file_list(path) elif filename == "get": try: path = request.args["path"] fd = files.file_get(path) (path_file, filename) = os.path.split(path) response = make_response(fd.read(-1)) response.headers["Content-Type"] = fd.contentType response.headers["Content-Disposition"] = "attachment; filename=" + filename return response except: return '{ "success":"false", "msg":"Parameter problem" }' elif filename == "sync_get": try: path = request.form["path"] timestamp = request.form["timestamp"] fd = files.file_get(path, timestamp) (path_file, filename) = os.path.split(path) response = make_response(fd.read(-1)) response.headers["Content-Type"] = fd.contentType response.headers["Content-Disposition"] = "attachment; filename=" + filename return response except: return '{ "success":"false", "msg":"Parameter problem" }' else: return '{ "success":"false", "msg":"This REST URL does not exists" }' return '{ "success":"true" }' else: logging.critical("This account does not exists") return '{ "success":"false", "msg":"Your account configuration seem to be incorrect" }'