You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-13 20:05:19 +02:00
Apply automatic changes
This commit is contained in:
committed by
github-actions[bot]
parent
a1230e72d1
commit
09d63f5d9d
@@ -230,7 +230,7 @@
|
||||
// Получить описание файла.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Получить описание файла
|
||||
// Соответствие Из КлючИЗначение - Описание файла
|
||||
Функция ПолучитьОписаниеФайла() Экспорт
|
||||
|
||||
Описание = Новый Соответствие;
|
||||
@@ -247,6 +247,15 @@
|
||||
|
||||
#Область РаботаСКомментариями
|
||||
|
||||
// Создать комментарий.
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен
|
||||
// Идентификатор - Строка - Идентификатор объекта, для которого необходим комментарий
|
||||
// Комментарий - Строка - Текст комментария
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// HTTPОтвет - Ответ сервера Google
|
||||
Функция СоздатьКомментарий(Знач Токен, Знач Идентификатор, Знач Комментарий) Экспорт
|
||||
|
||||
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
|
||||
@@ -354,8 +363,10 @@
|
||||
|
||||
Функция УправлениеФайлом(Знач Токен, Знач Файл, Знач Описание = "", Знач Идентификатор = "")
|
||||
|
||||
MimeType = "mimeType";
|
||||
|
||||
Если ЗначениеЗаполнено(Идентификатор) Тогда
|
||||
MIME = ПолучитьИнформациюОбОбъекте(Токен, Идентификатор)["mimeType"];
|
||||
MIME = ПолучитьИнформациюОбОбъекте(Токен, Идентификатор)[MimeType];
|
||||
Иначе
|
||||
MIME = Описание["MIME"];
|
||||
КонецЕсли;
|
||||
|
@@ -1571,7 +1571,6 @@
|
||||
КонецФункции
|
||||
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
Функция УправлениеПодборкой(Знач Название
|
||||
, Знач Картинка = ""
|
||||
, Знач ИДПодборки = ""
|
||||
|
@@ -39,13 +39,17 @@
|
||||
// Для YaxUnit
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Для Asserts
|
||||
|
||||
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт // BSLLS:UnusedParameters-off
|
||||
|
||||
Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область Тесты
|
||||
@@ -454,6 +458,7 @@
|
||||
|
||||
Для Каждого Результат Из МассивРезультатов Цикл
|
||||
|
||||
Запустить приложение("echo " + OPI_Инструменты.JSONСтрокой(Результат));
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Bad Request: can't remove chat owner");
|
||||
|
||||
@@ -674,10 +679,10 @@
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response]["post_id"]).ИмеетТип("Число").Заполнено();
|
||||
|
||||
ИДПоста = Результат[Response]["post_id"];
|
||||
Удаление = OPI_VK.УдалитьПост(ИДПоста, Параметры);
|
||||
Результат = OPI_VK.УдалитьПост(ИДПоста, Параметры);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Удаление) .ИмеетТип("Соответствие").Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Удаление[Response]).ИмеетТип("Число").Равно(1);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат) .ИмеетТип("Соответствие").Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response]).ИмеетТип("Число").Равно(1);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
@@ -721,12 +726,12 @@
|
||||
Response = "response";
|
||||
Картинка.Записать(ИВФ);
|
||||
|
||||
Альбом = OPI_VK.СоздатьАльбом(Имя, Описание, Параметры);
|
||||
Результат = OPI_VK.СоздатьАльбом(Имя, Описание, Параметры);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Альбом).ИмеетТип(ТипСоответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Альбом[Response]["description"]).Равно(Описание);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response]["description"]).Равно(Описание);
|
||||
|
||||
ИДАльбома = Альбом[Response]["id"];
|
||||
ИДАльбома = Результат[Response]["id"];
|
||||
|
||||
МассивРезультатов = Новый Массив;
|
||||
|
||||
@@ -811,13 +816,13 @@
|
||||
|
||||
Проверка_ВКИстина(Открытие);
|
||||
|
||||
Отправка = OPI_VK.НаписатьВОбсуждение(ИДОбсуждения, Сообщение, Параметры);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Отправка).ИмеетТип(ТипСоответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Отправка[Response]).ИмеетТип(ТипЧисло).Заполнено();
|
||||
Результат = OPI_VK.НаписатьВОбсуждение(ИДОбсуждения, Сообщение, Параметры);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response]).ИмеетТип(ТипЧисло).Заполнено();
|
||||
|
||||
Удаление = OPI_VK.ЗакрытьОбсуждение(ИДОбсуждения, Истина, Параметры);
|
||||
Результат = OPI_VK.ЗакрытьОбсуждение(ИДОбсуждения, Истина, Параметры);
|
||||
OPI_Инструменты.Пауза(5);
|
||||
Проверка_ВКИстина(Удаление);
|
||||
Проверка_ВКИстина(Результат);
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
@@ -835,21 +840,21 @@
|
||||
Результат = OPI_VK.СоздатьПост(Текст, Новый Массив, , , Параметры);
|
||||
|
||||
ИДПоста = Результат[Response]["post_id"];
|
||||
Лайк = OPI_VK.ПоставитьЛайк(ИДПоста, , Параметры);
|
||||
Результат = OPI_VK.ПоставитьЛайк(ИДПоста, , Параметры);
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Лайк).ИмеетТип(ТипСоответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Лайк[Response]["likes"]).ИмеетТип(ТипЧисло).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response]["likes"]).ИмеетТип(ТипЧисло).Заполнено();
|
||||
|
||||
ВнешнийПост = 2571;
|
||||
ВнешняяСтена = -218704372;
|
||||
|
||||
Репост = OPI_VK.СделатьРепост(ВнешнийПост, ВнешняяСтена, , , Параметры);
|
||||
Результат = OPI_VK.СделатьРепост(ВнешнийПост, ВнешняяСтена, , , Параметры);
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Репост).ИмеетТип(ТипСоответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Репост[Response]["success"]).ИмеетТип(ТипЧисло).Равно(1);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Репост[Response]["wall_repost_count"]).ИмеетТип(ТипЧисло).Равно(1);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response]["success"]).ИмеетТип(ТипЧисло).Равно(1);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response]["wall_repost_count"]).ИмеетТип(ТипЧисло).Равно(1);
|
||||
|
||||
Комментарий = OPI_VK.НаписатьКомментарий(ИДПоста, Параметры["owner_id"], Сообщение, Параметры);
|
||||
OPI_Инструменты.Пауза(5);
|
||||
@@ -858,7 +863,7 @@
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Комментарий[Response]["comment_id"]).ИмеетТип(ТипЧисло).Заполнено();
|
||||
|
||||
OPI_VK.УдалитьПост(ИДПоста, Параметры);
|
||||
OPI_VK.УдалитьПост(Репост[Response]["post_id"], Параметры);
|
||||
OPI_VK.УдалитьПост(Результат[Response]["post_id"], Параметры);
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
@@ -930,18 +935,19 @@
|
||||
, ИДПоста
|
||||
, ИДКабинета
|
||||
, Параметры);
|
||||
Объявление = Объявление[Response][0];
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Объявление).ИмеетТип(ТипСоответствие);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Объявление["error_code"]).ИмеетТип(ТипЧисло).Равно(602);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Объявление[UID]).ИмеетТип(ТипЧисло).Заполнено();
|
||||
Результат = Объявление[Response][0];
|
||||
|
||||
ИДОбъявления = Объявление[UID];
|
||||
Остановка = OPI_VK.ПриостановитьРекламноеОбъявление(ИДКабинета, ИДОбъявления, Параметры);
|
||||
Остановка = Остановка[Response][0];
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["error_code"]).ИмеетТип(ТипЧисло).Равно(602);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[UID]).ИмеетТип(ТипЧисло).Заполнено();
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Остановка).ИмеетТип(ТипСоответствие);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Остановка[UID]).ИмеетТип(ТипЧисло).Заполнено();
|
||||
ИДОбъявления = Результат[UID];
|
||||
Результат = OPI_VK.ПриостановитьРекламноеОбъявление(ИДКабинета, ИДОбъявления, Параметры);
|
||||
Результат = Остановка[Response][0];
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[UID]).ИмеетТип(ТипЧисло).Заполнено();
|
||||
|
||||
OPI_VK.УдалитьПост(ИДПоста, Параметры);
|
||||
|
||||
@@ -1482,8 +1488,7 @@
|
||||
|
||||
МассивРезультатов.Добавить(OPI_YandexDisk.СохранитьПубличныйОбъектНаДиск(Токен, ПубличныйURL));
|
||||
|
||||
ПубличныйОбъект = OPI_YandexDisk.ПолучитьПубличныйОбъект(Токен, ПубличныйURL);
|
||||
СсылкаСкачивания = OPI_YandexDisk.ПолучитьСсылкуСкачиванияПубличногоОбъекта(Токен, ПубличныйURL);
|
||||
Результат = OPI_YandexDisk.ПолучитьСсылкуСкачиванияПубличногоОбъекта(Токен, ПубличныйURL);
|
||||
|
||||
МассивРезультатов.Добавить(OPI_YandexDisk.ОтменитьПубликациюОбъекта(Токен, Путь));
|
||||
|
||||
@@ -1504,13 +1509,15 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(СсылкаСкачивания).ИмеетТип(Соответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(СсылкаСкачивания["method"]).Равно("GET");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(СсылкаСкачивания["href"]).ИмеетТип("Строка").Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(Соответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["method"]).Равно("GET");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["href"]).ИмеетТип("Строка").Заполнено();
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ПубличныйОбъект).ИмеетТип(Соответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ПубличныйОбъект["type"]).Равно("file");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ПубличныйОбъект["path"]).Равно("/");
|
||||
Результат = OPI_YandexDisk.ПолучитьПубличныйОбъект(Токен, ПубличныйURL);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(Соответствие).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["type"]).Равно("file");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path"]).Равно("/");
|
||||
|
||||
OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
|
||||
|
||||
@@ -1747,21 +1754,21 @@
|
||||
Имя = "ОПИ";
|
||||
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
|
||||
Результат = OPI_GoogleDrive.ПолучитьСписокКаталогов(Токен, Имя, Истина);
|
||||
Каталог = Результат[0];
|
||||
Результат = Результат[0];
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Каталог["files"]).ИмеетТип("Массив");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Каталог[MimeType]).Равно("application/vnd.google-apps.folder");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Каталог[Name]).Равно(Имя);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["files"]).ИмеетТип("Массив");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType]).Равно("application/vnd.google-apps.folder");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name]).Заполнено();
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
Идентификатор = Каталог["id"];
|
||||
Идентификатор = Результат["id"];
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GD_Каталог", Идентификатор);
|
||||
|
||||
Каталог = OPI_GoogleDrive.ПолучитьИнформациюОбОбъекте(Токен, Идентификатор);
|
||||
Результат = OPI_GoogleDrive.ПолучитьИнформациюОбОбъекте(Токен, Идентификатор);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Каталог[MimeType]).Равно("application/vnd.google-apps.folder");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Каталог[Name]).Равно(Имя);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType]).Равно("application/vnd.google-apps.folder");
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name]).Заполнено();
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
@@ -1769,6 +1776,9 @@
|
||||
|
||||
Процедура ГД_ЗагрузитьУдалитьФайл() Экспорт
|
||||
|
||||
Kind = "kind";
|
||||
Content = "content";
|
||||
MIME = "MIME";
|
||||
MimeType = "mimeType";
|
||||
Name = "name";
|
||||
Id_ = "id";
|
||||
@@ -1784,7 +1794,7 @@
|
||||
|
||||
Результат = OPI_GoogleDrive.ЗагрузитьФайл(Токен, Картинка, Описание);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType]).Равно(Описание["MIME"]);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType]).Равно(Описание[MIME]);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name]).Равно(Описание["Имя"]);
|
||||
|
||||
Идентификатор = Результат[Id_];
|
||||
@@ -1794,7 +1804,7 @@
|
||||
Результат = OPI_GoogleDrive.СкоприроватьОбъект(Токен, Идентификатор, НовоеИмя, "root");
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType]).Равно(Описание["MIME"]);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType]).Равно(Описание[MIME]);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name]).Равно(НовоеИмя);
|
||||
|
||||
МассивУдаляемых.Добавить(Результат[Id_]);
|
||||
@@ -1805,17 +1815,16 @@
|
||||
|
||||
НовоеИмя = "Обновленный";
|
||||
Результат = OPI_GoogleDrive.ОбновитьФайл(Токен, Идентификатор, КартинкаЗамены, НовоеИмя);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType]).Равно(Описание[MIME]);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name]).Равно(НовоеИмя);
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
Комментарий = "Yo";
|
||||
Результат = OPI_GoogleDrive.СоздатьКомментарий(Токен, Идентификатор, Комментарий);
|
||||
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType]).Равно(Описание["MIME"]);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name]).Равно(НовоеИмя);
|
||||
|
||||
Результат = OPI_GoogleDrive.СкачатьФайл(Токен, Идентификатор);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат.Размер()).Равно(КартинкаЗамены.Размер() + 2);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Content]).Равно(Комментарий);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Kind]).Равно("drive#comment");
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
@@ -2163,7 +2172,11 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Функция ПолучитьПараметрыВК() Экспорт
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПолучитьПараметрыВК()
|
||||
|
||||
Параметры = Новый Структура;
|
||||
НомерГруппы = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("ВК_НомерГруппы");
|
||||
@@ -2177,7 +2190,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьПараметрыТвиттер() Экспорт
|
||||
Функция ПолучитьПараметрыТвиттер()
|
||||
|
||||
Параметры = Новый Соответствие;
|
||||
|
||||
@@ -2198,10 +2211,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#Область Проверки
|
||||
|
||||
Процедура Проверка_ТелеграмИстина(Знач Результат)
|
||||
|
@@ -158,7 +158,19 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПутьКФайлуДанных()
|
||||
Возврат "./data.json"; // BSLLS:UsingHardcodePath-off
|
||||
|
||||
ПутьРепозитория = "./data.json";
|
||||
ПутьЛокальный = "C:\GDrive\Мой диск\data.json";
|
||||
ФайлРепозитория = Новый Файл(ПутьРепозитория);
|
||||
|
||||
Если ФайлРепозитория.Существует() Тогда
|
||||
Путь = ПутьРепозитория;
|
||||
Иначе
|
||||
Путь = ПутьЛокальный;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Путь; // BSLLS:UsingHardcodePath-off
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьМассивРазделовТестирования()
|
||||
|
@@ -579,6 +579,7 @@
|
||||
|
||||
РазделительСтрок = Символы.ВК + Символы.ПС;
|
||||
|
||||
Если ТипЗнч(Файлы) = Тип("Соответствие") Тогда
|
||||
Для Каждого Файл Из Файлы Цикл
|
||||
|
||||
ЗаписьТекста.ЗаписатьСтроку("--" + boundary + РазделительСтрок);
|
||||
@@ -591,6 +592,8 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаписатьJSONМультипарт(ЗаписьТекста, Знач Boundary, Знач JSON)
|
||||
|
Reference in New Issue
Block a user