forum.bitel.ru
http://forum.bitel.ru/

Вход в личный кабинет по текстовому полю
http://forum.bitel.ru/viewtopic.php?f=22&t=6262
Страница 1 из 2

Автор:  Феанор [ 27 дек 2011, 14:08 ]
Заголовок сообщения:  Вход в личный кабинет по текстовому полю

Добрый день.
Настроен вход в личный кабинет по параметру текстового поля (используется модуль ipn, в параметре хранится типа логин).

Диспозиция: договор закрыт (дата закрытия в прошлом уже), создан новый договор, у него логин такой же как и у старого договора.
Проблема: попытки авторизации идут к старому договору! Но как так? Его же уже нет для системы, он закрыт.

Автор:  skn [ 27 дек 2011, 14:32 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

для системы договора нет это когда он удален, а не когда закрыт.

Автор:  Феанор [ 27 дек 2011, 15:00 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

skn писал(а):
для системы договора нет это когда он удален, а не когда закрыт.

но лицензии на модули ведь не учитываются когда закрыт период действия договора

вобщем как бы уйти от необходимости смены логина на какой-то фиктивный? я согласен на то что будет заходить в первый договор если пересекаются логина у активных договоров, но если договор закрыт - то уже некрасиво, а ведь так хотелось =) можно ли добавить в проверку авторизации еще и проверку на закрытость договора, и не давать авторизоваться договорам с датой закрытия прошлым.
select * from contract_parameter_type_1 where pid={WEB_AUTH_PID} and val={VAL} and cid in {select id from contract where date2 is null or date2<={TODAY}} типа как нибудь так... ну или вам там виднее как оно нужно, но можно ведь все-таки сделать чтобы проверка на закрытость договора была, это логично.

Автор:  skn [ 27 дек 2011, 17:05 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

а повторы логинов Вы как проверяте?, тоже с учетом закрытости договора?, а если договор закрыли, а потом передумали и решили открыть... будет два договора с одинаковым логином?

Автор:  Kostiksnz [ 27 дек 2011, 21:42 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

удалите договор в архив - закрытый договор не значит "не существующий"

Автор:  Phricker [ 27 дек 2011, 22:16 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Kostiksnz писал(а):
удалите договор в архив - закрытый договор не значит "не существующий"

Ога а потом с бухгалтерией разбираться когда им вдруг вздумается что проверить. Пройденый этап

Автор:  Kostiksnz [ 28 дек 2011, 00:13 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Phricker писал(а):
Kostiksnz писал(а):
удалите договор в архив - закрытый договор не значит "не существующий"

Ога а потом с бухгалтерией разбираться когда им вдруг вздумается что проверить. Пройденый этап


а в чем необходимость новому договору давать такой же логин?

Автор:  Phricker [ 28 дек 2011, 00:41 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Kostiksnz писал(а):
а в чем необходимость новому договору давать такой же логин?

За это я уже не говорю, т.к. сам не пробовал
Мейби переоформляли договор. Но я не знаю будет ли работать в том случае если все сущности закрыты ибо, как я уже говорил, сам не пробовал

Автор:  Феанор [ 28 дек 2011, 07:53 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Kostiksnz писал(а):
Phricker писал(а):
Kostiksnz писал(а):
удалите договор в архив - закрытый договор не значит "не существующий"

Ога а потом с бухгалтерией разбираться когда им вдруг вздумается что проверить. Пройденый этап


а в чем необходимость новому договору давать такой же логин?

Ну вот есть такая необходимость, приказ.
Цитата:
а повторы логинов Вы как проверяте?, тоже с учетом закрытости договора?, а если договор закрыли, а потом передумали и решили открыть... будет два договора с одинаковым логином?

Событие перед изменением параметра договора обрабатываю и делаю селект примерно как выше писал (ток писал на память).
В основном проблема при переоформлении договоров возникает. На логине завязан почтовый ящик и домен третьего уровня в том числе. И чтобы клиенту все подряд у себя не менять - логин делают таким же.
А открытие закрытого договора это уже ситуация выходящая за обычную рутину, тут уже не только с логинами проблема. И как я уже говорил - я в принципе согласен если при существовании открытых договоров с одинаковыми логинами будет заходить в первый из них, но хочу чтобы в закрытый не попадал клиент.

Автор:  skyb [ 28 дек 2011, 08:12 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Поддерживаю идею о проверки закрытости договора и входа в личный кабинет, ибо если он закрыт, а вход возможен, то абонент для себя не поймет что с ним договор уже расторгли и пойдет платить, был вот недавно такой случай

Автор:  Феанор [ 12 янв 2012, 10:06 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

skyb писал(а):
Поддерживаю идею о проверки закрытости договора и входа в личный кабинет, ибо если он закрыт, а вход возможен, то абонент для себя не поймет что с ним договор уже расторгли и пойдет платить, был вот недавно такой случай

апнем тему

Автор:  skn [ 12 янв 2012, 11:59 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

а разве платежи на закрытые договора заносятся?

Автор:  Phricker [ 12 янв 2012, 12:10 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Заносятся через терминалы. У меня по крайней мере спокойно.
Точнее скажем даже так. Заносят по логину который не закрыт. Но закрыт договор (скрипт тупо меняет дату закрытия в таблице contract.date1. Так проще когда клиент оплачивает чтобы открыть все сущности. Скрипты и тарифы и логины пр. и пр. не открываются заново если через клиент биллинга сначала закрыть договор а потом открыть.)

Автор:  skn [ 12 янв 2012, 12:37 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Phricker писал(а):
Заносятся через терминалы. У меня по крайней мере спокойно.
Точнее скажем даже так. Заносят по логину который не закрыт. Но закрыт договор (скрипт тупо меняет дату закрытия в таблице contract.date1. Так проще когда клиент оплачивает чтобы открыть все сущности. Скрипты и тарифы и логины пр. и пр. не открываются заново если через клиент биллинга сначала закрыть договор а потом открыть.)


ну вы затейник... (не понятно что мешает человеку не заходя в личный кабинет пойти в терминал и оплатить, если логин открыт)

P.S. Постараемся в ближайшее время добавить возможность использовать для авторизации пользовательский скрипт, в котором можете проверять все, что захотите и авторизировать по любым данным.

Автор:  skyb [ 12 янв 2012, 13:10 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

skn писал(а):
P.S. Постараемся в ближайшее время добавить возможность использовать для авторизации пользовательский скрипт, в котором можете проверять все, что захотите и авторизировать по любым данным.

Тоесть если договор закрыт, то и в ЛК пускать не будет?

Автор:  Феанор [ 12 янв 2012, 14:45 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

а не проще пока просто сделать доп условие в запрос который авторизует?:)

Автор:  skn [ 12 янв 2012, 16:38 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Феанор писал(а):
а не проще пока просто сделать доп условие в запрос который авторизует?:)


не проще, так как есть например переоформление договоров, когда пользователю разрешается заходить в закрытые договора.

Автор:  skn [ 12 янв 2012, 16:39 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

skyb писал(а):
skn писал(а):
P.S. Постараемся в ближайшее время добавить возможность использовать для авторизации пользовательский скрипт, в котором можете проверять все, что захотите и авторизировать по любым данным.

Тоесть если договор закрыт, то и в ЛК пускать не будет?


если в скрипте будете проверять период договора и запрещать вход, то не будет

Автор:  skyb [ 13 янв 2012, 05:27 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

skn писал(а):
skyb писал(а):
skn писал(а):
P.S. Постараемся в ближайшее время добавить возможность использовать для авторизации пользовательский скрипт, в котором можете проверять все, что захотите и авторизировать по любым данным.

Тоесть если договор закрыт, то и в ЛК пускать не будет?


если в срипте будете проверять период договора и запрещать вход, то не будет

када уже?

Автор:  Феанор [ 13 янв 2012, 08:26 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

skn писал(а):
skyb писал(а):
skn писал(а):
P.S. Постараемся в ближайшее время добавить возможность использовать для авторизации пользовательский скрипт, в котором можете проверять все, что захотите и авторизировать по любым данным.

Тоесть если договор закрыт, то и в ЛК пускать не будет?


если в срипте будете проверять период договора и запрещать вход, то не будет

А куда этот скрипт будет вешаться? какая логика вообще? вот допустим 2 договора с одинаковым логином, один закрытый, другой нет. Не будет ли так что клиент пытается зайти в ЛК, генерируется событие для первого найденого договора, отдается ошибка в скрипте (он закрыт) - и все, клиенту пошла ошибка. Или скрипт какой то будет глобальный, который будет в функцию проверки передавать массив айдишников договоров, которые подходяд под входные данные и возвращать надо будет айди договора который подходит по нашим алгоритмам?:)

Автор:  skn [ 13 янв 2012, 14:58 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Феанор писал(а):
А куда этот скрипт будет вешаться? какая логика вообще? вот допустим 2 договора с одинаковым логином, один закрытый, другой нет. Не будет ли так что клиент пытается зайти в ЛК, генерируется событие для первого найденого договора, отдается ошибка в скрипте (он закрыт) - и все, клиенту пошла ошибка. Или скрипт какой то будет глобальный, который будет в функцию проверки передавать массив айдишников договоров, которые подходяд под входные данные и возвращать надо будет айди договора который подходит по нашим алгоритмам?:)


в конфиге задаете скрипт авторизации (класс)
в него передется введенные пользователем логин и пароль, скрипт должен вернуть код договора, а где и как скрипт будет искать номер договора решать вам.

Автор:  Феанор [ 20 фев 2012, 08:13 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

ну что? есть подвижки?

Автор:  Phricker [ 20 фев 2012, 11:21 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Угу. А так же интересно, что это
Цитата:
ДОБАВЛЕНО Разграничение доступа в личные кабинеты пользователей по значению флага web.sub.contract.auth.mode

Автор:  Феанор [ 20 фев 2012, 15:28 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Phricker писал(а):
Угу. А так же интересно, что это
Цитата:
ДОБАВЛЕНО Разграничение доступа в личные кабинеты пользователей по значению флага web.sub.contract.auth.mode

Я так понимаю для субдоговоров плюшечки, чтобы субдоговора как то могли авторизовываться. Хотя кто ж его знает =)

Автор:  Phricker [ 20 фев 2012, 15:49 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Так субдоговора и так могли авторизовываться

Автор:  skn [ 28 фев 2012, 18:11 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

в 5.2 добавлен параметр
Код:
web.auth.class=<класс_обработчик>

при наличие данного параметра, вместо встроенного "ядерного" обработчика будет использоваться указанный обработчик
указанный класс должен реализовывать интерфейс - bitel.billing.server.ModuleAuth
ниже для примера приведен код встроенного обработчика
Код:
package bitel.billing.server.contract;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import ru.bitel.bgbilling.server.util.Setup;

import bitel.billing.server.ModuleUser;
import bitel.billing.server.contract.bean.ContractParameterManager;

public class ModuleAuth
    implements bitel.billing.server.ModuleAuth
{
    @Override
   public ModuleUser findModuleUserByLogin( String login,
                                             int moduleId,
                                             int authMode,
                                             Connection con )
    {
        ModuleUser moduleUser = null;
       
        if ( login != null && login.trim().length() > 0 && moduleId > -1 )
        {
           try
            {
              String query = null;
              if ( authMode == 1 )
              {
                 query = "SELECT id, pswd FROM contract WHERE title=? LIMIT 1";                 
              }
              else if ( authMode == 2 )
              {
                 Integer pid = Setup.getSetup().getInt(  "web.auth.contract.text.parameter", 0 );
                 if ( pid > 0 )
                 {                 
                    query = "SELECT id, pswd FROM contract " +
                       " LEFT JOIN " + ContractParameterManager.CONTRACT_PARAMETER_TYPE_STRING + " as param " +
                       " ON param.cid = contract.id " +
                       " AND param.pid = " + pid +
                       " WHERE param.val=? LIMIT 1 ";                               
                 }
              }
              
              if (query != null )
              {
                   ResultSet rs = null;
                   PreparedStatement ps = null;
                  
                   ps = con.prepareStatement( query );
                   ps.setString( 1, login );
                   rs = ps.executeQuery();
                   while ( rs.next() )
                   {
                       moduleUser = new ModuleUser();
                       moduleUser.setLogin( login );
                       moduleUser.setPassword( rs.getString( 2 ) );
                       moduleUser.setContractId( rs.getInt( 1 ) );
                       moduleUser.setContractTitle( login );
                   }
                   rs.close();
                   ps.close();
                }
                   
            }
            catch( Exception e )
            {
                e.printStackTrace();
            }
        }
        return moduleUser;
    }
}

Автор:  Феанор [ 29 фев 2012, 08:42 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

skn писал(а):
в 5.2 добавлен параметр
Код:
web.auth.class=<класс_обработчик>


Спасибо. А 5.1? =)

Автор:  Cromeshnic [ 29 фев 2012, 08:49 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

Круто!

Автор:  Феанор [ 06 мар 2012, 07:54 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

о, смотрю в ченджлогах и в 5.1 появилось

Автор:  skyb [ 06 мар 2012, 10:05 ]
Заголовок сообщения:  Re: Вход в личный кабинет по текстовому полю

а может поделитесь своими наработками как запретить входить? =)

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/