Користувальницькькі налаштування

Налаштування сайту


logingeneration

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
Наступна ревізія По сторонах наступні версії
logingeneration [2016/07/25 13:56]
logingeneration [2023/06/09 12:07]
nightfly [Генерация логинов]
Рядок 1: Рядок 1:
 +====== Генерация логинов ======
  
 +По умолчанию Ubilling рекомендует полгагаться на встроенную механику генерации логинов для регистрируемых пользователей. Это позволит избавить себя от лишней ручной работы и от неприятных неожиданностей. Начиная с релиза 0.3.4 генерация логинов может управляться опцией LOGIN_GENERATION конфига [[alteriniconf|alter.ini]]\\
 +
 +Поддерживаются следующие опции генерации логинов:
 +
 +  * **DEFAULT** - Включено по умолчанию и **рекомендуется**. Логины будут генерироваться по формуле: //[алиас города]+[алиас улицы]+[номер дома]+ap+[номер квартиры]+_(немного рандома)// и будут иметь вид, например  "shev262ap26_hugk" для пользователя проживающего по адресу "Шевченка 262/26"
 +  * **ONLYADDRESS** - точно так-же как и по умолчанию только без "немного рандома", то есть например "shev262ap26"
 +  * **TIMESTAMP** - в качестве логина будет использоваться Unix timestamp - предполагаемый логин будет иметь вид, например "1353443162"
 +  * **TIMESTAMPMD5** - в качестве логина будет ипользоваться md5 хеш от Unix timestamp и логины будут иметь вид, например "3d3731ecbed02d8497d9dc3e601e9f8d"
 +  * **RANDOM** - будет сгенерирована случайная 10-ти символьная строка вида "ao8cg8a7p2"
 +  * **RANDOMSAFE** - будет сгенерирована случайная 10-ти символьная строка без сильно похожих между собой символов.
 +  * **INCREMENT** - логин в форме простого инкремента, то есть "1, 2, 3... и тд"
 +  * **INCREMENTFOUR** - четырехзначный логин в форме инкремента, то есть вида "0001, 0002, 0003 и тд"(читаем про RANDOM4)
 +  * **INCREMENTFIVE** - пятизначный логин в форме инкремента, то есть вида "00001, 00002, 00003 и тд"
 +  * **INCREMENTSIX** - шестизначный логин в форме инкремента, то есть вида "000001, 000002, 000003 и тд"  
 +  * **INCREMENTFOURREV** - четырехзначный логин в форме инкремента но в обратную сторону, то есть вида "1000, 2000, 3000 итд"(так же читаем про RANDOM4)
 +  * **INCREMENTFIVEREV** - пятизначный логин в форме инкремента но в обратную сторону, то есть вида "10000, 20000, 30000 итд"
 +  * **INCREMENTSIXREV** - шестизначный логин в форме инкремента но в обратную сторону, то есть вида "100000, 200000, 300000 итд"
 +  * **VSRAT_INCREMENT** - логины будут генерироваться по формуле: //[алиас города]+[алиас улицы]+_(счетчик)//. Стоит понимать что счетчик будет уникальным в пределах алиасов. Если у улиц нет алиасов - счетчик будет уникальный для города. Если у улиц есть алиасы то счетчик будет уникальным для каждой пары город+улица.
 +  * **IPBASED** - логин на основании IP, например для пользователя с IP 192.168.56.18 будет логин "192x168x56x18"
 +  * **IPBASEDLAST** - логин на основании последних двух октетов IP, то есть для пользователя с IP 192.168.56.18 будет логин "056018"
 +  * **DEREBAN** - логины можно разделять между существующими контрагентами. Имеют вид шестизначного инкремента + префикс в виде ID контрагента в начале. 
 +  * **RANDOM8** - логины из 8-ми рандомных циферок.
 +  * **RANDOM4** - логины из 4-х рандомных циферок, включая ведущие нули(т.е. "0024" или "0127"). Для людей на 146% уверенных, что более 9999 логинов им никогда не понадобиться и вообще. Крайне повышает шансы очень больно выстрелить себе в ногу.
 +  * **RANDOM4_CHECK** - то же, что и **RANDOM4**, но с проверкой уникальности логина среди существующих. //если что - проверка осуществляется в **бесконечном цикле**, и, соответственно, при приближении количества логинов к 9999, тупить в момент генерации логина(регистрации юзера, тобишь) оно будет всё больше и больше//. Вопреки могущему сложиться обманчивому мнению о надёжности - может прострелить вам обе ноги сразу...
 +  * **PRFXINC** - генерирует инкрементные логины с префиксами вида UB1000000,UB2000000.. итд. Строка префикса управляется опцией LOGIN_GENERATION_SHPRFX.
 +  * **YMINCREMENTFOUR** - генерирует логины вида год+месяц+INCREMENTFOUR, например 2023060074.
 +  * **ONEPUNCH** - за вами пристально наблюдают санитары. Не привлекайте к себе внимания.
 +
 +Если вы точно не уверены что делаете и чем это для вас может светить в дальнейшем - пожалуйста, оставьте эту опцию как есть в значении **DEFAULT**. 
 +
 +===== Немного кастомизации =====
 +
 +Также, в базовом варианте, посредством следующих опций [[alteriniconf|alter.ini]] вы можете влиять на поведение стоковых генераторов логинов. 
 +
 +<code ini>
 +LOGIN_GENERATION_INCOFFSET=1
 +LOGIN_GENERATION_INCMAX=100000
 +LOGIN_GENERATION_AD="ap"
 +LOGIN_GENERATION_SHPRFX="UB"
 +LOGIN_GENERATION_OPALIAS="logingenerator"
 +</code>
 +
 +тоесть, например, для генерации инкрементных логинов начиная с 666, во славу сотоне конечно же, вы можете установить опцию LOGIN_GENERATION_INCOFFSET=666 и радоваться жизни. 
 +
 +===== Для особо изобретательных =====
 +
 +Начиная с релиза Ubilling 1.3.0 генераторы логинов лежат отдельными кусочками кода в **api/vendor/login_generators/** откуда вызываются "в лоб" по их имени указанному в опции LOGIN_GENERATION. Каждый из них, обязан в процесе своей работы устанавливать значение **$this->loginProposal** которое далее будет обрабатываться в рамках класса [[https://ubilling.net.ua/api_doc/classes/SayMyName.xhtml|SayMyName]]. Что в теории, дает безграничные возможности для реализации ваших больных фантазий на тему того, как должны выглядеть логины ваших пользователей. 
 +
 +Чисто как пример:
 +<file php VSRATDATE>
 +$this->loginProposal = 'U'.date("YmdHis");
 +</file>
 +
 +для генерации логинов вида U+ГГммддЧЧммсс. В случае Если вам захочется управляемый префикс, при помощи дефолтной опции LOGIN_GENERATION_SHPRFX вы можете обратиться к ее значению как-то так:
 +
 +<file php VSRATDATE>
 +$this->loginProposal = $this->sharedPrefix.date("YmdHis");
 +</file>
 +
 +Короче, вы можете обращаться в к любым пропертям класса SayMyName, внутри ваших генераторов. Также им по-умолчанию доступны проперти busyLogins содержащие все уже занятые логины и altCfg содержащий alter.ini в виде как key=>value.
 +
 +А что с переносимостью этого всего? Ну если это очень-очень укуренный кастом, которвый вам очень стыдно показывать людям, вы можете держать код вашего генератора логинов в одном из ваших [[onepunch|One-Punch скриптов]] указав режим генерации логинов LOGIN_GENERATION=ONEPUNCH. По умолчанию предполагается алиас **logingenerator** но вы можете переназначить его при помощи опции LOGIN_GENERATION_OPALIAS. 
 +
 +Вот прямо так:
 +
 +{{::logingeneration_onepunch.png?direct|}}
 +
 +Теперь вам достаточно возможностей чтобы накрепко ебануться?
logingeneration.txt · Востаннє змінено: 2023/06/09 12:26 повз nightfly