Beispiel #1
0
def user_cabinet(data):
    """
    Функция подключается к базе данных,находит пользователя по id, который был получен на вход.
    Проверяет, что id не пустой. Возвращает json с данными о пользователе.
    """
    try:
        if data[names.ID_USER] is None:
            logging.info('Incorrect parameter id - None')
            data[names.ID_USER] = "Empty"
            return {names.ANSWER: names.ERROR, names.DATA: data}
    except:
        logging.error('Fatal error: param id')
        return {names.ANSWER: names.ERROR, names.DATA: data}
    try:
        if gs.check_id(data[names.ID_USER]) == False:
            return {names.ANSWER: "Id not found", names.DATA: data}
    except:
        logging.error('Fatal error: check id')
        return {names.ANSWER: names.ERROR, names.DATA: data}
    try:

        sql = "SELECT Name, City, Sex, Email, Logo, Educational FROM users " \
              "where id_user = '******'".format(data[names.ID_USER])
        #print(sql)
        result = gs.SqlQuery(sql)

        return {names.ANSWER: names.SUCCESS, names.DATA: result}
    except:
        logging.error(names.ERROR_EXECUTE_DATABASE)
        return {names.ANSWER: names.ERROR}
Beispiel #2
0
def change_password(data):
    """
    Функция получает json с id пользователя, старым паролем и новым.
    Проверяет элементы data, None или нет.
    Покдлючается к базе данных с помощью функции db_connect(), получает хеш пароля в базе по id.
    Если хеш от old_password==паролю в базе, то записывает в базу хеш new_password.
    Если все успешно, то функция вернет {names.ANSWER: 'Succes'}, если не верный пароль - {names.ANSWER: 'Wrong password'}
    """
    try:
        for i in data:
            if data[i] is None:
                logging.info('Incorrect parameter ' + i + ' - None')
                data[i] = "Empty"
                return {names.ANSWER: names.ERROR, names.DATA: data}
    except:
        logging.error('Fatal error: check data is None')
        return {names.ANSWER: names.ERROR, names.DATA: data}
    try:
        if gs.check_id(data[names.ID_USER]) == False:
            return {names.ANSWER: "Id not found", names.DATA: data}
    except:
        logging.error('Fatal error: check id')
        return {names.ANSWER: names.ERROR, names.DATA: data}
    else:
        try:
            sql = "SELECT password FROM auth where id_user = '******'".format(
                data[names.ID_USER])
            result = gs.SqlQuery(sql)
        except:
            logging.error(names.ERROR_EXECUTE_DATABASE)
            return {names.ANSWER: names.ERROR}
        else:
            try:
                password_hash = hashlib.md5()
                password_hash.update(data['Old_password'].encode())
                data['Old_password'] = password_hash.hexdigest()
                if data['Old_password'] == result[0]["password"]:
                    password_hash = hashlib.md5()
                    password_hash.update(data['New_password'].encode())
                    data['New_password'] = password_hash.hexdigest()
                    sql = "UPDATE auth SET password='******' WHERE id_user='******'".format(
                        data["New_password"], data[names.ID_USER])
                    gs.SqlQuery(sql)
                    return {names.ANSWER: names.SUCCESS}
                else:
                    return {names.ANSWER: "Wrong password"}
            except:
                logging.error('Fatal error: Password comparison')
                return {names.ANSWER: names.ERROR}
Beispiel #3
0
def edit_cabinet(data):
    """
             Функция получает json с id пользователя, и информацией о пользователе.
             Проверяет элементы data, None или нет.
             Покдлючается к базе данных с помощью функции db_connect().
             Проверка есть ли id в с помощью функции check_id
             Получает информацию о пользователе и перезаписывает поля в базе на те, что функция получила на вход
             Если все успешно, то функция вернет {names.ANSWER: 'Succes'} и data.
        """
    try:
        for i in data:
            if data[i] is None:
                logging.info('Incorrect parameter ' + i + ' - None')
                data[i] = "Empty"
                return {names.ANSWER: names.ERROR, names.DATA: data}
    except:
        logging.error('Fatal error: check data is None')
        return {names.ANSWER: names.ERROR, names.DATA: data}
    try:
        if gs.check_id(data[names.ID_USER]) == False:
            return {names.ANSWER: "Id not found", names.DATA: data}
    except:
        logging.error('Fatal error: check id')
        return {names.ANSWER: names.ERROR, names.DATA: data}
    else:
        try:
            sql = "UPDATE users SET Name='{}', Email='{}', Sex='{}', City='{}'," \
                  " Educational='{}', Logo='{}', surname = '{}' WHERE id_user='******'".format(
                data[names.NAME], data[names.EMAIL], data[names.SEX], data[names.CITY],
                data[names.EDUCATION], data[names.LOGO], data['Surname'], data[names.ID_USER]
                )
            gs.SqlQuery(sql)
            return {names.ANSWER: names.SUCCESS, names.DATA: data}
        except:
            logging.error('Fatal error: Password comparison')
            return {names.ANSWER: names.ERROR}