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

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


logingeneration

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
Наступна ревізія По сторонах наступні версії
logingeneration [2016/07/25 13:56]
logingeneration [2023/06/09 12:18]
nightfly
Рядок 1: Рядок 1:
 +====== Генерація логінів ======
  
 +За замовчуванням Ubilling рекомендує покладатись, на вбудовану механіку генерації логінів для користувачів, що реєструються. Це дозволить позбавити себе зайвої ручної роботи і неприємних несподіванок. Поведінка генерації логінів може керуватися опцією 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