Ejemplo n.º 1
0
    def com_modf_quest(cls,
                       arg_head,
                       arg_jsstruct=None,
                       new_pswd=False) -> dict:
        """ Обобщенная процедура обработки quest
        верификация/изменение 
        pswcl and logincl
        ---------------------------
        arg_head  используется для загрузки pswcl and logincl as default
        arg_user для загрузки js_struct 
        arg_user==None создается js_struct else loadFrom advuser_advuser.js_struct
        return js_struct
        """

        js_struct = dict()

        if arg_jsstruct:
            js_struct = arg_jsstruct

        if new_pswd:
            js_struct['pswcl'] = getPassword_cl()
            js_struct['logincl'] = getLogin_cl()

        else:
            user_head = getUser(arg_head)

            if Res_proc.FN_get_val_dict(js_struct, 'pswcl') is None:
                js_struct_head = Com_proc_advuser.get_js_struct(user_head)
                js_struct['pswcl'] = js_struct_head['pswcl']
            if Res_proc.FN_get_val_dict(js_struct, 'logincl') is None:
                js_struct['logincl'] = getLogin_cl()

        return js_struct
Ejemplo n.º 2
0
    def _verify_user(self):

        try:

            type_statusUser = type_status_user(self.user)
            if not type_statusUser:
                raise ErrorRun_impl('{0} Нет данных Type_status_user'.format(
                    self.s_err))

            if type_statusUser.levelperm > 39: return

            advData = AdvUser.get_advData(self.user)
            if advData is None:
                raise ErrorRun_impl(
                    '{0} нет данных advData for self.user'.format(self.s_err))

            logincl = Res_proc.FN_get_val_dict(advData, 'logincl')
            pswcl = Res_proc.FN_get_val_dict(advData, 'pswcl')

            # Обновление по значениям, полученным из гостВхода
            if logincl != self.logincl or pswcl != self.pswcl:
                _dict = dict(logincl=self.logincl, pswcl=self.pswcl)

                self._upd_quest(self.user.advuser, _dict, True)

        except Exception as ex:
            self._init_err(ex, self.s_err_serv)
Ejemplo n.º 3
0
def test_res_proc():
    from app import Res_proc
    from app import ErrorRun_impl

    try:
        res = []
               

        res_proc = Res_proc()
        s_empty = res_proc.PR_empty
        res_proc.any_str = s_empty
        res_proc.res_dict = dict(par=1)
        res_proc.res_list = [1,2]

        val_dict = res_proc.FN_get_val_dict(dict(par='anyDataDict'), 'par') 
        res.append(val_dict + '; ')

        s_proc = '{0} {1} {2}'.format(res_proc.FN_empty(), res_proc.FN_exist(), res_proc.PR_notRecord )
        res.append('## ' + s_proc)

        res_proc.error = ErrorRun_impl('ValueError##Пробное исключение')

        s_res = str(res_proc)

        res.append(s_res)


        return res
    except Exception as ex:
        return str(ex)
Ejemplo n.º 4
0
    def _ver_exists_quest(self):

        try:
            row_cl = AdvUser.objects.filter(parentuser=self.user.username,
                                            status__levelperm=10)

            if row_cl.exists():
                row_cl = row_cl.last()

                self.logincl = row_cl.user.username

                advuser = row_cl.user.advuser
                advData = json.loads(advuser.advData)
                _pswcl = Res_proc.FN_get_val_dict(advData, 'pswcl')

                if _pswcl is None:
                    res_pswcl = get_pswcl_fromHead(self.user)
                    if res_pswcl:
                        _pswcl = res_pswcl.any_str

                        self._upd_quest(row_cl, dict(pswcl=_pswcl))

                    else:
                        raise ErrorRun_impl(
                            '{0} pswcl не определен из get_pswcl_fromHead'.
                            format(self.s_err))
                else:
                    self.pswcl = _pswcl

            else:
                self._add_quest(self.user)

        except Exception as ex:
            self._init_err(ex, self.s_err_serv)
Ejemplo n.º 5
0
    def _initData_quest(self):

        try:
            row_cl = AdvUser.objects.filter(user=self.user_quest)

            if row_cl.exists():
                row_cl = row_cl.first()

                advuser = row_cl.user.advuser
                advData = json.loads(advuser.advData)
                _pswcl = Res_proc.FN_get_val_dict(advData, 'pswcl')

                if _pswcl is None:
                    _pswcl = generate_pswcl()
                    if _pswcl:
                        self._upd_quest(row_cl, dict(pswcl=_pswcl))
                    else:
                        raise ErrorRun_impl(
                            '{0} pswcl не определен из advuser.forms.Base_profilForm.generate_pswcl'
                            .format(self.s_err))
                else:
                    self.pswcl = _pswcl

            else:
                self._add_quest(self.user_quest)

        except Exception as ex:
            self._init_err(ex, self.s_err_serv)
Ejemplo n.º 6
0
    def _upd_quest(self, row_cl, arg_dict, updUser=None):

        try:

            FM_init_advData(row_cl, arg_dict)

            row_cl.save()

            advData = AdvUser.get_advData(row_cl.user)
            if advData is None:
                raise ErrorRun_impl(
                    '{0}._upd_quest advData не определено'.format(self.s_err))

            if updUser:
                self.logincl_user = Res_proc.FN_get_val_dict(
                    advData, 'logincl')
                self.pswcl_user = Res_proc.FN_get_val_dict(advData, 'pswcl')

            else:
                self.logincl = Res_proc.FN_get_val_dict(advData, 'username')
                self.pswcl = Res_proc.FN_get_val_dict(advData, 'pswcl')

        except Exception as ex:
            self._init_err(ex, self.s_err_serv)
Ejemplo n.º 7
0
def modf_dict_by_setting_def(arg_dict: dict):

    dc_attr = Struct_default_AdvUser.dc_attr
    dc_procConv = Struct_default_AdvUser.dc_procConv
    dev_val = dc_attr['def_val']

    lst_key = arg_dict.keys()
    for key in lst_key:
        val = Res_proc.FN_get_val_dict(arg_dict, key)

        if val is None:
            if dc_attr.get(key):
                arg_dict[key] = dc_attr[key]
            else:
                arg_dict[key] = dev_val
        else:
            if dc_procConv.get(key):
                s_proc = dc_procConv[key]
                proc = getattr(Struct_default_AdvUser, s_proc)
                conv_data = proc(val)  # процедура конвертирования
                arg_dict[key] = conv_data
Ejemplo n.º 8
0
def get_list_prof_memb(arg_user, arg_list=None, num_rows=5, sel_page=1):
    """ Создание списка данных для отображения в шаблоне prof_table_format
    Предназначено для руководителей групп  
    Загрузка данных из БД
    arg_list формат '30,49,70'  строка levelperm
    num_rows кол-во записей в одной странице
    sel_page номер извлекаемой страницы   
    full_show Использование максимальной ширины данных
    """

    from .serv_advuser import Struct_default_AdvUser as Struct_def
    from app.com_serv_dbase.serv_modf_profil import serv_get_data_prof
    import json

    def run_raise(s_arg, showMes=None):
        s_err = 'ValError##advuser.modify_models.get_list_prof_memb'

        if showMes:
            raise ErrorRun_impl('verify##{0}'.format(s_arg))
        else:
            raise ErrorRun_impl('{0}: {1}'.format(s_err, s_arg))

    #---------------------------------------------------------

    res_proc = Res_proc()
    res_list = []

    if arg_list is None:
        arg_list = '30,40,70'

    try:
        user = getUser(arg_user)

        if user is None:
            run_raise('Пользователь не определен', True)

        res_data = serv_get_data_prof(user,
                                      arg_list,
                                      num_rows,
                                      sel_page,
                                      num_count=0)

        res_page = {}
        for item in res_data.res_list:

            _dict = json.loads(item['advData'])

            levelperm = item['levelperm']

            if levelperm == 0:
                res_page = _dict
            else:
                _dict['levelperm'] = levelperm
                _dict['status'] = Struct_def.conv_status_into_str(
                    _dict.get('status_id'))

                _dict['idcomp'] = res_proc.FN_get_val_dict(
                    _dict, 'idcomp') or Struct_def.idcomp
                _dict['email'] = res_proc.FN_get_val_dict(
                    _dict, 'email') or Struct_def.email
                _dict['phone'] = res_proc.FN_get_val_dict(
                    _dict, 'phone') or Struct_def.phone

                _dict['pol'] = Struct_def.conv_pol(_dict.get('pol'))
                _dict['sendMes'] = Struct_def.conv_send_mes(
                    _dict.get('sendMes'))
                _dict['ageGroup'] = res_proc.FN_get_val_dict(
                    _dict, 'ageGroup') or Struct_def.ageGroup
                _dict['post'] = res_proc.FN_get_val_dict(_dict,
                                                         'post') or 'Нет'
                _dict['logincl'] = res_proc.FN_get_val_dict(_dict,
                                                            'logincl') or 'Нет'

                if levelperm > 30:
                    _dict[
                        'status_perm'] = f'Мендж:{_dict.get("limitcon") or 0} '
                    if levelperm == 70:
                        _dict[
                            'status_perm'] = f'Мендж:{_dict.get("limitcon") or 0} РукГр:{_dict.get("limitcon40") or 0} РукГрРасш:{_dict.get("limitcon70") or 0}'

                else:
                    _dict['status_perm'] = 'Не назначено'

                res_list.append(_dict)

        res_proc.res_dict = res_page  # сведения пагинатора

        res_proc.res_list = res_list
        res_proc.res = True

    except Exception as ex:
        res_proc.error = ex

    return res_proc