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

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


logingeneration

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
Остання ревізія По сторонах наступні версії
logingeneration [2016/07/25 13:56]
logingeneration [2023/06/09 12:26]
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"). Для людей на 108% впевнених, що понад 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