MyChat 6.7 — нова дошка оголошень

  1. Загальна дошка оголошень, що нового?
  2. Перегляд активного процесу в реальному часі
  3. Покращення MyChat Guest для запрошення людей в чат через email
  4. Нові можливості скриптової мови
  5. Різні корисні речі
  6. Усі зміни загальним списком + історія розробки

1. Загальна дошка оголошень, що нового?


Новий спрощений дизайн:

Спрощений дизайн дошки оголошень MyChat

Зроблено сортування, швидкий фільтр по вмісту. Вирішено проблеми з кодуваннями під час копіювання тексту з дошки в буфер обміну.

В налаштуваннях MyChat Client тепер можна вказати, показувати вікно дошки оголошень поверх усіх вікон чи ні, чи потрібно сигналізувати в треї мигаючим значком та/чи спливаючим вікном:

Налаштування показу дошки оголошень MyChat Client

Вікно дошки оголошень коректно показується поверху усіх вікон, якщо у користувача відкрита термінальна сесія на весь екран.

Рекомендуємо виконувати налаштування для усіх користувачів дистанційно, через сервер, у розділі "Інструменти" -> "Шаблони налаштувань".


2. Перегляд активного процесу в реальному часі


Змінено інструмент перегляду активних процесів користувачів та системної інформації про їх комп'ютери та смартфони:

Інструмент перегляду активних процесів користувачів та інформації про комп'ютери та смартфони MyChat Client

На деяких елементах списку працює подвійний клік чи Enter.

  1. IP — відкривається сервіс GeoIP;
  2. NetName — NETBIOS ім'я комп'ютера буде відкрито в Переглядачі, можна переглянути список відкритих мережевих папок (shares);
  3. Reflink — якщо це користувач websupport, то в браузері відкриється сторінка, з якою людина прийшла в чат підтримки на вашому сайті.

Які конкретно дані можна бачити, а які — ні, настроюється в групах прав користувачів на сервері, в розділі "Управління правами", "Групи прав", "Профіль", "Перегляд інформації".

Також на сервері тепер є повна технічна інформація про всі його підключення:

Перегляд технічної інформації в профілі користувача MyChat

Міститься версія, тип програми, час і дата останнього підключення, IP та MAC адреса, тип шифрування, операційна система, реферальні лінки та UserAgent браузера (для websupport), списки локальних мережевих інтерфейсів, а також NetBIOS ім'я комп'ютера та HardwareID.


3. Покращення MyChat Guest для запрошення людей в чат через email


Коли потрібно зручно запросити людину в чат — ви використовуєте MyChat Guest:

Однак, для усіх користувачів, які отримують запрошення через email, сервер створює новий обліковий запис в MyChat. Раніше, якщо запрошення відправлялось декілька разів, то кожен раз клікнувши на лінк у листі сервер створював новий обліковий запис для користувача.

Через це історія спілкування з однією і тією ж людиною в чаті виходила "розмазаною" по декількох користувачах з однаковими адресами електронної пошти, але різними UIN.

Тепер сервер став "розумніше" та старається визначити, що користувач з таким email вже раніше підключався до сервера через сервіс MyChat Guest та йому не потрібно створювати новий обліковий запис. Критерій — співпадаючий email та група прав Guests чи WebGuests.


4. Нові можливості скриптової мови


Дюжина функцій для роботи з контрольними сумами, хешами, кодуванням та декодуванням base64/UU/URL та HTTP GET запитами:

Список скриптів на сервері MyChat

Спробуйте працювати з інтернет-сервісами через REST, наприклад, Zadarma.


5. Різні корисні речі


Буває, що користувачі підключені через повільні канали зв'язку та оновлюються в автоматичному режимі, з вашого сервера MyChat.

Виявилося, що якщо людей багато, то зовнішній інтернет-канал «забивається» повністю в момент початку оновлення і потрібно якось обмежувати людей. Нехай оновлюються довше, але не усі одразу.

Зробили спеціальну настройку на сервері для цього випадку:

Увімкнення ліміту одночасних завантажень на сервері MyChat

В MyChat для Android можна переглянути логи, щоб оперативно вирішити свої проблеми:

Перегляд логів в MyChat Для Android

Зробили настройку для вимкнення контролю IP адрес в токенах під час входу в сервіси чату без паролю:

Вимкнення контролю IP адрес в токенах під час входу в сервіси MyChat

Багато людей користуються токенами, щоб увійти в адмінку, канбан чи без логіну та паролю, прямо з MyChat Client:

Вхід в админку, канбан та форум з MyChat Client

Коли ви обираєте один з цих пунктів, MyChat Client запитує на сервері спеціальний одноразовий токен для входу в потрібний вам сервіс.

Сервер перевіряє права доступу, та якщо все добре — відправляє у відповідь токен. MyChat Client відкриває браузер з отриманим лінком і ви входите в адмінку, Kanban дошку чи на форум, автоматично, без вводу логіну та паролю.

В момент входу у WEB-сервіс, MyChat Server перевіряє токен та правильність та додатково дивиться, з якої IP адреси намагаються увійти. Якщо ця IP адреса не співпадає з тією адресою, звідки відбувся запит токену, спроба авторизації ігнорується та токен знищується.

Наче усе коректно, але є проблема, якщо ваш браузер працює через VPN чи проксі. Тоді ваша IP адреса з MyChat Client та з браузера не будуть співпадати. Щоб обійти це обмеження, ми зробили налаштування відключення контролю на IP адресу в одноразових токенах.

Стандартно ця настройка увімкнена та контроль проводиться, тому що відключення — це свідоме зниження потреб до безпеки.


6. Усі зміни загальним списком + історія розробки


Історія розробки версії з коментарями розробників

MyChat Client

[+] налаштування для автоматичного завантаження файлів в отриманих сповіщеннях;
[+] нова дошка оголошень;
[+] (Android) додано можливість перегляду логів клієнта вбудованими можливостями без допомоги сторонніх файлових менеджерів;
[+] (Android) додано лінк на довідку на сторінці "Про програму";

[*] в приваті тепер можна побачити IP, MAC, HardwareID, ім'я комп'ютера та версію програми іншого користувача, якщо ви маєте відповідні права;
[*] якщо користувач — модератор конференції, то він може її залишити, навіть якщо на сервері встановлено заборону на вихід з конференції;
[*] покращення для прямої передачі файлів у поганих мережах;
[*] показники швидкості прямої передачі та прийому файлів тепер відображаються в байтах, кілобайтах, мегабайтах та гігабайтах в секунду, в залежності від можливостей мережі;
[*] новий інструмент для перегляду мережевої інформації та активних процесів користувачів;
[*] усі дати для повідомлень на дошці оголошень тепер пишуться в UTC форматі, що дозволяє комфортно працювати з програмою з різних часових поясів;
[*] (Android) проведені зміни дизайну сторінки "Про програму";
[*] змінено функції для визначення HardwareID для більшої унікальності;

[-] помилка "Floating point division by zero." під час отримання файлу нульової довжини в сповіщенні. Виправлено;
[-] помилка "Access violation at address 00EC575F in module 'mcclient.exe'. Write of address 00000064." під час відправлення файлів у приваті напряму іншому користувачу. Виправлено;
[-] помилка "Cannot open clipboard: Отказано в доступе." під час копіювання тексту з вікна чату в буфер обміну. Виправлено;
[-] помилка "List index out of bounds" під час перегляду історії повідомлень в конференціях. Виправлено;
[-] помилка "unable to open database file" під час запуску програми, якщо файл бази даних історії розмов пошкоджений чи занятий. Виправлено;
[-] помилка "Cannot create file "...\mcclient.ini". Процес не може отримати доступ до файла, адже він зайнятий іншим процесом." під час отримання з сервера змінених прав та увімкненому контролі робочого часу. Виправлено;
[-] помилка "Access violation at address 0108BBE4 in module 'mcclient.exe'. Read of address 00000008." під час обробки пошкодженого списку контактів. Виправлено;
[-] помилка "Access violation at address 0108B387 in module 'mcclient.exe'. Read of address 00000058." під час рендерингу повідомлень зі смайлами, якщо смайл-пак на диску пошкоджено. Виправлено;
[-] помилка "The specified file was not found." під час підключення системи перевірки правопису. Виправлено;
[-] виправлено проблеми з відображенням однакових ніків в історії приатних повідомлень та ніками "no name (UIN xxx)";
[-] неправильний час у випадаючому списку прийнятих та непрочитаних сповіщень. Виправлено;
[-] (Mac, Linux) помилка повторної передачі файлу напряму, файл зайнятий;
[-] помилка "Access violation at address 0108B394" під час роботи із смайл-паками в деяких ситуаціях під час завантаженгня історії з сервера та слідуючому за ним відкриттям приватного діалогу;
[-] timestamp повідомлень в історії повідомлень відображався у форматі "[dd.mm.yyyy hh:nn:ss]", а не в тому, який було вказано в налаштуваннях програми. Виправлено;
[-] помилка в рендерингу історії повідомлень (Alt+H). Текстові повідомлення, відправлені з Android-клієнта, не відображалися;
[-] (Android) виникали проблеми підключення до серверів із встановленим паролем сервера. Виправлено.

MyChat Server

[+] (MSL) функції StrToInt64 та StrToInt64Def для переведення рядків у 64-розрядні числа;
[+] (Admin) в перегляді профілю користувача тепер є повна інформація про усі підключення різними типами клієнтів;
[+] (Admin) налаштування для відключення контролю IP адреси в токенах під час входу в сервіси чату без паролю;
[+] (MSL) функція mHTTPSendGetMessage для виконання HTTP GET запитів;
[+] (MSL) функція mClearConsole для очищення текстової консолі в редакторі скриптів;
[+] (MSL) функція CRC32 для обчислення контрольноїх суми CRC32 від рядка;
[+] (MSL) функція DecodeBase64 для перетворення текстового рядка з base64-представлення в звичайний текст;
[+] функція DecodeURL для декодування рядка з URL-формату в звичайний текст;
[+] (MSL) функція DecodeUU для декодування рядка з UU-формату в звичайний текст;
[+] (MSL) функція EncodeBase64 для перетворення вихідного текстового рядка в base64-представлення;
[+] функція EncodeURL для кодування рядка в URL-формат;
[+] (MSL) функція EncodeUU для кодування рядка в UU-формат;
[+] функція HMAC_MD5 для отримання хеш-коду рядка на основі ключа, використовується метод HMAC та алгоритм MD5;
[+] функція HMAC_SHA1 для отримання хеш-коду рядка на основі ключа, використовуючи метод HMAC та алгоритм SHA1;
[+] (MSL) функція MD5 для отримання хеш-коду MD5 від текстового рядка;
[+] (MSL) функція SHA1 для отримання хеш-коду SHA1 від текстового рядка;
[+] (MSL) функція StrToHex для перетворення вихідного бінарного рядка побайтово в шістнадцяткове текстове представлення;
[+] (Admin) додано настройку для обмеження кількості одночасних завантажень файлу оновлення;

[*] (MyChat Guest) якщо відправляти запрошення на один і тей самий email декілька разів, то нові облікові записи більше створюватися не будуть, сервер буде використовувати вже існуючий обліковий запис;
[*] (MSL) функція mHTTPSendPostMessage тепер повертає отримані дані в кодуванні UNICODE;
[*] (Admin) пароль для підключення до сервера додатково контролює та видаляє пробіли на початку та в кінці рядка;
[*] (MSL) функція mSetUserAttribute доповнена великою кількістю атрибутів для зміним даних про користувача;
[*] (Admin) в розділі "Користувачі", "Модератори" не показується права частина з детальною інформацією, якщо список пустий;

[-] (Admin) не можна було змінити ім'я домену в профілі користувача в "Управлінні користувачами". Виправлено;
[-] помилка "Error when reading IDAT chunk data. File may be corrupted." під час імпорту користувачів з домену з пошкодженими фотографіями. Виправлено;
[-] (Admin) в старих браузерах не працювали деякі функції взаємодії з консоллю, через які не відображалися повідомлення. Виправлено;
[-] (Admin) якщо під час імпорту користувачів з домену налаштувати переназначення полів, то фотографії не імпортувалися. Виправлено;
[-] (Core) помилки під час імпорту фотографій користувачів з домену. Виправлено;
[-] (Admin) іноді підключення LDAP з шифруванням для імпорту користувачів з домену не працювало. Виправлено;
[-] (Admin) в розділі "Користувачі", "Модератори" не можна було додати конференцію. Виправлено;
[-] (Admin) в розділі "Користувачі", "Список користувачів" в полі "Останнє підключення" час відображався із зміщенням без корекції по UTC. Виправлено;
[-] помилка "JPEG Error 60: Invalid JPEG file structure: missing SOS marker" під час імпорту пошкоджених фотографій з домену. Тепер такі фото ігноруються;
[-] помилки під час збереження текстових багаторядкових полів різних даних в базі сервера. Додавалися зайві символи в кінець рядка. Виправлено;
[-] помилка під час оновлення із старих версій, іноді втрачалися назви автоматично створюваних конференцій. Виправлено;
[-] (Admin) в управлінні правами були переплутані правила доступу до форуму та групам користувачів. Виправлено;
[-] після створення конференції, закритої паролем, з MyChat Client, у клієнтів в темі конференції відображався цей пароль, до оновлення списку конференцій. Виправлено;
[-] некоретна робота системи видалення/блокування неактивних користувачів. Виправлено;
[-] (Admin) в шаблонах налаштувань було заблоковано верхній блок з вибором шаблонів. Виправлено;
[-] (MSL) не працювало вибіркове відключення скриптів, відключалися усі. Виправлено;
[-] помилка під час оновлення із старих версій, якщо був скрипт на подію OnPrivateMessage, він перезаписувався стандартним скриптом для інтеграції з Telegram. Виправлено;
[-] помилка під час оновлення із старих версій, поле профіля"Робота-Країна" ставало нульовим. Виправлено;
[-] помилки в довідці (неправильна нумерація в довідниках країн, мов, типів організацій і т.д.). Виправлено;
[-] помилка під час відправлення відкладеного сповіщення для клієнта. Сервер "зависав" та не дозволяв логін користувачу. Виправлено.

Служба поддержки