示例#1
0
def user_upd_psw (arg_dc:dict)->Res_proc:
    from . .com_data.write_exception_into_log import PM_write_except_into_log as write_into_log
    
    s_error_not_show = 'verify#app.com_serv_dbase.serv_modf_profil.serv_add_profil'
    res_proc = Res_proc()    

    try:
        con = getConnection()
        s_dict = json.dumps(arg_dc, ensure_ascii=False)
        with con.cursor() as cur:
            cur.callproc('sp_user_upd_psw', (s_dict,))
            res_call = cur.fetchall()[0]
            
            # {"res": "err", "mes_error": "текст сообщений ошибки"}
            # {"mes": "Обновление пароля: XEMP-9069", "res": "ok", "data": {"username": "******"}}
            res_call = res_call['res']
            res_call_dc = json.loads(res_call)
                
            if res_call_dc['res'] == 'err':   # элемент, созданный в процессе проверки входящих данных 
                write_into_log(s_error_not_show, res_call_dc['mes_error'] );
                run_raise('Ошибки исходных данных', showMes=True)                

            res_data = res_call_dc['data']

            res_proc.res = True
            res_proc.any_str = res_data['username']   
            
            res_proc.mes = 'Изменен пароль: ' + res_data['username']



    except Exception as ex:
        res_proc.error = ex
    
    return res_proc
示例#2
0
def test_create_prof():
    from django.contrib.auth.hashers import make_password
    from app.use_mysql.conn_utils import getConnection
    from app.com_data.any_mixin import getLogin_cl, getPassword_cl
    import json

    try:
        res = ['Подключение в БД mysq## ']

        #psw = make_password('test')
        #res.append(psw)

        con = getConnection()

        try:

            with con.cursor() as cur:

                if 1 > 2:
                    # хранПРоцедура завершается оператором select * from TEMPORARY table
                    cur.callproc('sp_row_advdata', (380, ))

                    for row in cur:  # вывод данных из хранПроцедуры
                        res.append(
                            f"{row['id_key']} {row['js_key']} {row['js_val']} ##"
                        )

                # Создание dict для вставки нового профиля
                dc_all = dict(username='******',
                              password=make_password('test'),
                              first_name='Имя_профиль',
                              last_name='Фам_профиль',
                              ageGroup=65,
                              status_id='proj-memb',
                              status='proj-memb',
                              pol='М',
                              idcomp="038-77-test",
                              logincl=getLogin_cl(),
                              pswcl=getPassword_cl())
                res.append(json.dumps(dc_all, ensure_ascii=False))

        except Exception as ex:
            res.append(str(ex))

        finally:
            con.close()

        return res
    except Exception as ex:
        return str(ex)
示例#3
0
def test_con_mysql():
    from app.com_data.type_value import Type_value
    from app import loadJSON_withTempl
    from django.contrib.auth.hashers import make_password
    from app.com_data.any_mixin import getLogin_cl, getPassword_cl

    from app.use_mysql.conn_utils import getConnection

    try:
        res = ['test_con_mysql## ']
        file = 'advuser/arg_RegisterIns_profForm_member'
        path = Type_value.init_formatTempl(file, 'jsn')

        dict_arg = loadJSON_withTempl(path)
        pswcl = 'earth'  # взято из advData user test_podg
        logincl = getLogin_cl()
        dict_arg.update(
            dict(parentuser='******',
                 password=make_password(dict_arg['password']),
                 password_cl=make_password(pswcl),
                 logincl=logincl,
                 pswcl=pswcl,
                 full_name=dict_arg['first_name'] + ' ' +
                 dict_arg['last_name'],
                 is_active='true',
                 status_id=dict_arg.get('status')))

        con = getConnection()

        try:
            s_dict = json.dumps(dict_arg, ensure_ascii=False)
            with con.cursor() as cur:
                cur.callproc('sp_serv_verf_params_arg_ext', (s_dict, ))
                res_call = cur.fetchall()[0]

                # select res возврат из сервПроцедуры
                res.append(
                    res_call['res'])  # этот идентиф. res исп. в dictResult

        except Exception as ex:
            res.append(str(ex))

        finally:
            con.close()

        # --------- завершение обработки обращения к БД -----------
        return res
    except Exception as ex:
        return str(ex)
示例#4
0
def serv_add_profil (arg_dc:dict, serv_proc='sp_serv_add_profil_02'):
    """ Процедура взаимодействия с сервПроцедурой 
        общая процедура для создПрофиля через рукГруппой или через гостВХод  """

    
    from . .com_data.write_exception_into_log import PM_write_except_into_log as write_into_log
    
    res_proc = Res_proc()    
    s_error_not_show = 'verify#app.com_serv_dbase.serv_modf_profil.serv_add_profil'

    try:

        con = getConnection()
        s_dict = json.dumps(arg_dc, ensure_ascii=False)
        with con.cursor() as cur:
            cur.callproc(serv_proc, (s_dict,))
            res_call = cur.fetchall()[0];

            # возврат из сервПроцедуры в виде select {res:ok/err, mes:ok/strMessage} as res
            # {"mes": "Создан профиль: mysql_test", "res": "ok", "data": {"username": "******", "str_status": "Участник проекта"}}
            # {"mes": "Повторный ввод данных профиля: insert into auth_user", "res": "err"}
            res_call = res_call['res']
            res_call_dc = json.loads(res_call)
                
            if res_call_dc['res'] == 'err':   # элемент, созданный в процессе проверки входящих данных 
                err = None
                if res_call_dc.get('err'):
                    err = res_call_dc['err']    
                else:
                    err = res_call_dc['mes_error']  # элемент, который используется в блоке обработчика исключений сервПроцедуры 
            
                write_into_log(s_error_not_show, res_call_dc['mes_error'] );
                run_raise('Ошибки исходных данных', showMes=True)

            res_data = res_call_dc['data']

            res_proc.res = True
            res_proc.any_str = res_data['username']   
            if serv_proc == 'sp_serv_add_profil_02':
                res_proc.mes = 'Создан профиль : ' + res_data['str_status']
            else:
                res_proc.mes = 'Изменен профиль : ' + res_data['str_status']


    except Exception as ex:
        res_proc.error = ex

    return res_proc
示例#5
0
def serv_get_data_prof(arg_user,
                       str_levelperm=None,
                       num_rows=0,
                       sel_page=1,
                       num_count=False):
    """ Выборка данных профиля для отображения в виде списка пользователей проекта
        Предназначено для рукПроекта
        ---------------------------------
        arg_user Пользователь для которого делается фильтрация данных
        str_levelperm уровень levelperm   (значение = None -> ВСЕх уровней )
        num_rows кол-во записей в части   (значение = 0 -> ВСЕ записи)
        sel_page Номер выбираемой части 
    """

    from ..com_data.write_exception_into_log import PM_write_except_into_log as write_into_log

    res_proc = Res_proc()
    s_error_not_show = 'verify#app.com_serv_dbase.serv_modf_profil.serv_add_profil'

    user = getUser(arg_user)

    try:
        con = getConnection()
        if str_levelperm is None:
            str_levelperm = '30,40,70'

        dc_arg = dict(username=user.username,
                      lstlevelperm=str_levelperm,
                      num_rows=num_rows,
                      sel_page=sel_page)

        s_dict = json.dumps(dc_arg, ensure_ascii=False)
        lst_res = []

        with con.cursor() as cur:
            cur.callproc('sp_serv_dataprof', (s_dict, ))
            res_call = cur.fetchall()
            res_proc.res_list = res_call
            res_proc.res = True

    except Exception as ex:
        res_proc.error = ex

    return res_proc
示例#6
0
def load_user_into_dbase(arg_dict: dict) -> Res_proc:
    """ Начальная загрузка пользователй в БД """

    from django.contrib.auth.hashers import make_password
    from app.use_mysql.conn_utils import getConnection
    from app import getPassword_cl, getLogin_cl
    import json

    res_proc = Res_proc()

    try:

        con = getConnection()
        s_dict = json.dumps(arg_dict, ensure_ascii=False)
        with con.cursor() as cur:
            cur.callproc('sp_adm_load_user_into_dbase', (s_dict, ))
            res_call = cur.fetchall()[0]

            res_call = res_call['res']
            res_call_dc = json.loads(res_call)

            if res_call_dc['res'] == 'err':
                err = res_call_dc['mes']
                run_raise('Ошибки исходных данных: ' + err, showMes=True)

            res_data = res_call_dc['data']

            res_proc.res = True
            res_proc.mes = 'Создан профиль : ' + res_data['username']

        res_proc.res = True

    except Exception as ex:
        res_proc.error = ex

    return res_proc