Beispiel #1
0
def api_user_change(username):
    status = "success"
    answ = {"data": {}}

    try:
        reqdata = json.loads(request.data)

        try:
            user_d = reqdata["user"]
        except KeyError:
            raise cloud_api_main.WrongRequestException("dictionary defining new user properties missing")

        cloud_api_main.change_user(username, user_d)


        data = cloud_api_main.get_user(username)
        answ["data"]["user"] = data

    except (cloud_api_main.PrivilegeException, cloud_api_main.NoSuchObjectException, cloud_api_main.WrongRequestException) as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()


    except BaseException as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log

    answ["status"] = status

    return make_response(jsonify(answ))
Beispiel #2
0
def api_user_add():
    status = "success"
    answ = {"data": {}}

    try:

        reqdata = json.loads(request.data)

        try:
            username = reqdata.pop("name")
            password = reqdata.pop("password")
            isadmin = reqdata.get("isadmin", False)
            nebulauser = reqdata.get("nebulauser", None)
        except KeyError:
            raise cloud_api_main.WrongRequestException("name or password parameters missing")

        cloud_api_main.add_user(username,password,isadmin,nebulauser)

        data = cloud_api_main.get_user(username)
        answ["data"]["user"] = data.values()

    except (cloud_api_main.PrivilegeException, cloud_api_main.NoSuchObjectException, cloud_api_main.WrongRequestException) as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()

    except Exception as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()


    answ["status"] = status

    return make_response(jsonify(answ))
Beispiel #3
0
def api_user_change(username):
    status = "success"
    answ = {"data": {}}

    try:
        reqdata = json.loads(request.data)

        try:
            user_d = reqdata["user"]
        except KeyError:
            raise cloud_api_main.WrongRequestException(
                "dictionary defining new user properties missing")

        cloud_api_main.change_user(username, user_d)

        data = cloud_api_main.get_user(username)
        answ["data"]["user"] = data

    except (cloud_api_main.PrivilegeException,
            cloud_api_main.NoSuchObjectException,
            cloud_api_main.WrongRequestException) as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()

    except BaseException as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log

    answ["status"] = status

    return make_response(jsonify(answ))
Beispiel #4
0
def api_user_get(username):
    status = "success"
    answ = {"data": {}}

    try:
        data = cloud_api_main.get_user(username)
        answ["data"]["user"] = data

    except (cloud_api_main.PrivilegeException, cloud_api_main.NoSuchObjectException, cloud_api_main.WrongRequestException) as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()


    except BaseException as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log

    answ["status"] = status

    return make_response(jsonify(answ))
Beispiel #5
0
def api_user_get(username):
    status = "success"
    answ = {"data": {}}

    try:
        data = cloud_api_main.get_user(username)
        answ["data"]["user"] = data

    except (cloud_api_main.PrivilegeException,
            cloud_api_main.NoSuchObjectException,
            cloud_api_main.WrongRequestException) as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()

    except BaseException as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log

    answ["status"] = status

    return make_response(jsonify(answ))
Beispiel #6
0
def api_user_add():
    status = "success"
    answ = {"data": {}}

    try:

        reqdata = json.loads(request.data)

        try:
            username = reqdata.pop("name")
            password = reqdata.pop("password")
            isadmin = reqdata.get("isadmin", False)
            nebulauser = reqdata.get("nebulauser", None)
        except KeyError:
            raise cloud_api_main.WrongRequestException(
                "name or password parameters missing")

        cloud_api_main.add_user(username, password, isadmin, nebulauser)

        data = cloud_api_main.get_user(username)
        answ["data"]["user"] = data.values()

    except (cloud_api_main.PrivilegeException,
            cloud_api_main.NoSuchObjectException,
            cloud_api_main.WrongRequestException) as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()

    except Exception as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()

    answ["status"] = status

    return make_response(jsonify(answ))
Beispiel #7
0
def verify_password(username, password):
    cloud_api_main.tdata.extended_error_log = []
    cloud_api_main.tdata.user_info = []

    cloud_api_main.tdata.DB_CON = cloud_api_main.open_db2()
    with cloud_api_main.tdata.DB_CON:
        try:
            res_d = cloud_api_main.get_user(username, verifybypass=True)
        except cloud_api_main.NoSuchObjectException as e:
            res_d = None

        if not res_d:
            return False

        cloud_api_main.tdata.username = username
        cloud_api_main.tdata.isadmin = res_d["isadmin"]
        cloud_api_main.tdata.userid = res_d["id"]
        cloud_api_main.tdata.ownertag = "owner:{0}".format(username)

        # derivedkey = hashlib.pbkdf2_hmac('sha256', password, res_d["salt"], 100000)
        # hexalified = binascii.hexlify(derivedkey)
        hexalified = hashlib.sha512(password + res_d["salt"]).hexdigest()

    return res_d["password"] == hexalified
Beispiel #8
0
def verify_password(username, password):
    cloud_api_main.tdata.extended_error_log = []
    cloud_api_main.tdata.user_info = []

    cloud_api_main.tdata.DB_CON = cloud_api_main.open_db2()
    with cloud_api_main.tdata.DB_CON:
        try:
            res_d = cloud_api_main.get_user(username, verifybypass=True)
        except cloud_api_main.NoSuchObjectException as e:
            res_d = None

        if not res_d:
            return False

        cloud_api_main.tdata.username = username
        cloud_api_main.tdata.isadmin = res_d["isadmin"]
        cloud_api_main.tdata.userid = res_d["id"]
        cloud_api_main.tdata.ownertag = "owner:{0}".format(username)

        # derivedkey = hashlib.pbkdf2_hmac('sha256', password, res_d["salt"], 100000)
        # hexalified = binascii.hexlify(derivedkey)
        hexalified = hashlib.sha512(password + res_d["salt"]).hexdigest()

    return res_d["password"] == hexalified