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
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)
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)
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
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
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