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

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


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації до оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Допомога проекту
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

logingeneration

Генерація логінів

За замовчуванням Ubilling рекомендує покладатись, на вбудовану механіку генерації логінів для користувачів, що реєструються. Це дозволить позбавити себе зайвої ручної роботи і неприємних несподіванок. Поведінка генерації логінів може керуватися опцією LOGIN_GENERATION конфігу 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.

Трішки кастомізації

Також, у базовому варіанті, за допомогою наступних опцій alter.ini ви можете впливати на поведінку стокових генераторів логінів.

LOGIN_GENERATION_INCOFFSET=1
LOGIN_GENERATION_INCMAX=100000
LOGIN_GENERATION_AD="ap"
LOGIN_GENERATION_SHPRFX="UB"
LOGIN_GENERATION_OPALIAS="logingenerator"

тобто, наприклад, для генерації інкрементних логінів починаючи з 666, на славу сотоні звичайно ж, ви можете встановити опцію LOGIN_GENERATION_INCOFFSET=666 і радіти життю.

Для особливо винахідливих

Починаючи з релізу Ubilling 1.3.0, генератори логінів лежать окремими шматочками коду в api/vendor/login_generators/, звідки викликаються “в лоб” за їхнім іменем, вказаному в опції LOGIN_GENERATION. Кожен з них зобов'язаний в процесі своєї роботи встановлювати значення $this→loginProposal, яке далі оброблятиметься в рамках класу SayMyName . Що в теорії, дає безмежні можливості для реалізації ваших хворих фантазій на тему того, як мають виглядати логіни ваших користувачів.

Чисто як приклад:

VSRATDATE
$this->loginProposal = 'U'.date("YmdHis");

для генерації логінів виду U+РРммддГГххсс. Якщо Вам захочеться керований префікс, за допомогою дефолтної опції LOGIN_GENERATION_SHPRFX ви можете звернутися до її значення якось так:

VSRATDATE
$this->loginProposal = $this->sharedPrefix.date("YmdHis");

Коротше, ви можете звертатися до будь-яких властивостей класу SayMyName, всередині ваших генераторів. Також їм за замовчуванням доступні проперті busyLogins, що містять всі вже зайняті логіни та altCfg, що містить alter.ini у вигляді key⇒value.

А що з переносимістю цього всього? Ну якщо це дуже накурений кастом, який вам дуже соромно показувати людям, ви можете тримати код вашого генератора логінів в одному з ваших One-Punch скриптів вказавши режим генерації логінів LOGIN_GENERATION=ONEPUNCH. За замовчуванням, передбачається аліас logingenerator, але ви можете перепризначити його за допомогою опції LOGIN_GENERATION_OPALIAS.

Ось прямо так:

Тепер вам достатньо можливостей, щоб міцно так йобнутись?

logingeneration.txt · Востаннє змінено: 2023/06/09 12:26 повз nightfly