- Общая доска объявлений, что нового?
- Просмотр активного процесса в реальном времени
- Улучшения MyChat Guest для приглашения людей в чат по email
- Новые возможности скриптового языка
- Разные полезности
- Все изменения общим списком + история разработки
1. Общая доска объявлений, что нового?
Новый упрощённый дизайн:
Сделаны сортировки, быстрый фильтр по содержимому. Решены проблемы с кодировками при копировании текста с доски в буфер обмена.
В настройках MyChat Client теперь можно указать, показывать окно доски объявлений поверх всех окон или нет, нужно ли уведомлять в трее мигающим значком и/или всплывающим окошком:
Окно доски объявлений корректно показывается поверх всех окон, если у пользователя открыта терминальная сессия на весь экран.
Рекомендуем делать настройки для всех пользователей удалённо, через сервер, в разделе "Инструменты" -> "Шаблоны настроек".
2. Просмотр активного процесса в реальном времени
Переработан инструмент просмотра активных процессов пользователей и системной информации об их компьютерах или смартфонах:
На некоторых элементах списка работает двойной клик или Enter.
- IP — открывается сервис GeoIP;
- NetName — NETBIOS имя компьютера будет открыто в Проводнике, можно посмотреть список открытых сетевых папок (shares);
- Reflink — если это пользователь websupport, то в браузере откроется страница, с которой человек перешёл в чат поддержки на вашем сайте.
Какие конкретно данные можно видеть, а какие — нет, настраивается в группах прав пользователей на сервере, в разделе "Управление правами", "Группы прав", "Профиль", "Просмотр информации".
Помимо этого, на сервере, в просмотре профиля пользователя теперь есть полная техническая информация обо всех его подключениях:
Хранится версия, тип приложения, время и дата последнего подключения, 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 запросами:
Попробуйте работать с интернет-сервисами через REST, например, Zadarma.
5. Разные полезности
Бывает, что пользователи подключены через медленные каналы связи и обновляются в автоматическом режиме, с вашего сервера MyChat.
Оказалось, что, если людей много, то внешний Интернет канал «забивается» наглухо в момент начала обновления и нужно как-то ограничить людей. Пусть обновляются дольше, но не все сразу.
Сделали специальную настройку на сервере для этого случая:
В MyChat для Android можно посмотреть логи, чтобы оперативно решать сетевые проблемы:
Сделали настройку для отключения контроля IP адреса в токенах при входе в сервисы чата без пароля:
Многие пользуются токенами, чтобы войти в админку, канбан или форум без логина и пароля, прямо из 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. Исправлено;
[-] ошибка при обновлении со старых версий, обнулялось поле профиля пользователей "Работа-Страна". Исправлено;
[-] ошибки в справке (неверная нумерация в справочниках стран, языков, типов организаций и т.п.). Исправлено;
[-] ошибка при отправке отложенного оповещения для клиента. Сервер "зависал" и не разрешал логин пользователю. Исправлено.