Многопользовательский режим тикетов.

Режим тикетов для нескольких пользователей.

Изначально предполагалось, что система тикетов на сайте заменит собой общение по e-mail. Формально это записи вопрос-ответ, сгруппированные по пользователям в блоговую структуру представления (как оно видится в админке), что весьма напоминает привычный интерфейс e-mail клиента.

Как вдруг оказалось, некоторыми тикеты используются совсем не так.
Одинаковый ключ доступа раздаётся сразу нескольким пользователям.
Получается что-то типа коллективного закрытого чата с равными правами.

Но если в такой системе один из камрадов начинает вести себя неадекватно, исключить его из общения без смены общего файла-ключа не получится. А так как все пользователи анонимны, ещё и не понятно, кто конкретно тут не д'Артаньян.

Чтобы победить такой кундштюк, автором скрипта в августе 2019 года была предпринята небольшая доработка, функционирующая, как сказано ниже.

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

Пользователь должен создать себе собственный файл-ключ, и с его помощью сформировать запрос на добавление к коллективному тикету. Пусть в админке этот запрос для определённости выглядит так:


Ваши новые тикеты:
12.08.2019 11:28 Секретный чат
Прошу предоставить мне доступ к секретному чату
User: c33cf3f52c2ff3742a8241291e2dfd06

Идентификатор пользователя здесь c33cf3f52c2ff3742a8241291e2dfd06
Администратор копирует его в буфер обмена, и переходит к разделу «Пользователи»:


Изменения внесены: Идентификатор пользователя:
12.08.2019 11:29:54 c33cf3f52c2ff3742a8241291e2dfd06
10.08.2019 12:49:50 28e9ad5ed00c54c19fa99a77af862edd

Там он выбирает из списка пользователя, под идентификатором которого существует коллективный тикетовый чат.
В данном случае это юзер 28e9ad5ed00c54c19fa99a77af862edd

При клике в эту ссылку появится кнопка доступа:


Все тикеты пользователя 28e9ad5ed00c54c19fa99a77af862edd
09.08.2019 20:47 Тема тикета N+1.
Тело тикета N+1

Ваш ответ на тикет пользователя:

Ответ на тикет.
06.08.2019 03:04 Тема тикета N.
Тело тикета N

Вы не стали отвечать на этот тикет.

Навигация: 01 02 03 04 05 06 07 08 09 10

Нажатие кнопки доступа позволяет добавить к этой системе тикетов новых пользователей в неограниченном количестве:


Другие персонажи под видом этого пользователя:

Идентификаторы пользователей, по одному на строку:

Всё, после выполнения данной операции вновь добавленный пользователь при авторизации в системе тикетов своим файлом-ключом автоматически попадает в коллективный чат, который полностью доступен для чтения со всеми вложениями.

При этом пользователь может создавать новые тикеты, и убивать их.
Но чужие тикеты доступны юзеру только для чтения.
То есть какое-то минимальное разграничение прав имеется.

Принадлежность тикетов администратор видит, и, ежели тот или иной юзер начинает чудить, он может быть изъят из таблицы пользователей коллективного чата, потеряв доступ к чату. Хотя файл-ключ у юзера по-прежнему остаётся на руках.

Логирование действий пользователей.

В файле настроек ./data/settings.php запись log => true,

   $_s['ticket']=array(
      
'ticket'    => array(            # Имя данной инсталляции.
         
'admins' => array('master'),
         
'crypto' => true,
         
'notice' => true,
         
'mode'   => true,
         
'log'    => true,             # true или false
         
'days'   => 365,
         
'max'    => 1000,
         
'pagino' => 10,
         
'text'   => 10,
         
'att'    => 256,
      ),
      
'base'      => '/ticket/',
   );

создаст файл по пути ./data/modules/ticket/ticket/users.logs.txt с логом действий пользователей. Лог фиксирует факт творения и уничтожения тикетов, с указанием точного времени, идентификатора пользователя, а так же его IP.

Не сказать, что это шибко уж нужный инструмент, и, скорее всего, у Вас он будет отключен обращением элемента массива log в false, но на всякий случай возможность логирования предусмотрена.