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