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

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


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|}}
 +
 +Тепер вам достатньо можливостей, щоб міцно так йобнутись?