1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-26 05:37:27 +02:00

B24: Доступы к задачам

This commit is contained in:
Anton 2024-07-03 16:32:41 +03:00
parent e3e35d10ee
commit 725471d5cb
6 changed files with 4008 additions and 3874 deletions

File diff suppressed because it is too large Load Diff

View File

@ -757,6 +757,29 @@
КонецФункции
// Проверить доступ к задаче
// Проверяет доступность задачи для пользователей
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDЗадачи - Число,Строка - ID задачи - task
// Пользователи - Массив из Строка - ID пользователей для проверки доступа - users
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ПроверитьДоступКЗадаче(Знач URL, Знач IDЗадачи, Знач Пользователи = "", Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.getaccess");
OPI_Инструменты.ДобавитьПоле("taskId", IDЗадачи , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("users" , Пользователи, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
// Получить структуру фильтра задач
// Возвращает структуру полей для фильтрации задач в методе ПолучитьСписокЗадач
//

View File

@ -1,21 +1,21 @@
<package-def>
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
<module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/>
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
<module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/>
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
<module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/>
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
<module name="OPI_ПреобразованиеТипов" file="tools/Modules/OPI_ПреобразованиеТипов.os"/>
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/>
<module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/>
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
<module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/>
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>
<module name="OPI_ПреобразованиеТипов" file="tools/Modules/OPI_ПреобразованиеТипов.os"/>
</package-def>

View File

@ -2909,6 +2909,7 @@
Bitrix24_ПриостановитьЗадачу(ПараметрыТеста);
Bitrix24_ПолучитьИсториюЗадачи(ПараметрыТеста);
Bitrix24_ПолучитьСписокЗадач(ПараметрыТеста);
Bitrix24_ПроверитьДоступКЗадаче(ПараметрыТеста);
Наименование = "Картинка задачи.jpg";
Картинка = ПараметрыТеста["Picture"];
@ -3584,6 +3585,16 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["attachmentId"]).Заполнено();
КонецПроцедуры
Процедура Проверка_БитриксДоступныеДействия(Знач Результат, Знач Количество)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
Действия = Результат["result"]["allowedActions"];
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Действия).ИмеетТип("Соответствие");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Действия.Количество()).Равно(Количество);
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -7515,6 +7526,35 @@
КонецПроцедуры
Процедура Bitrix24_ПроверитьДоступКЗадаче(ПараметрыФункции)
МассивПользователей = Новый Массив;
МассивПользователей.Добавить("1");
МассивПользователей.Добавить("10");
URL = ПараметрыФункции["Bitrix24_URL"];
IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
Результат = OPI_Bitrix24.ПроверитьДоступКЗадаче(URL, IDЗадачи, МассивПользователей);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступКЗадаче (хук)", "Bitrix24");
Проверка_БитриксДоступныеДействия(Результат, МассивПользователей.Количество()); // SKIP
URL = ПараметрыФункции["Bitrix24_Domain"];
Токен = ПараметрыФункции["Bitrix24_Token"];
IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
Результат = OPI_Bitrix24.ПроверитьДоступКЗадаче(URL, IDЗадачи, МассивПользователей, Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступКЗадаче", "Bitrix24");
Проверка_БитриксДоступныеДействия(Результат, МассивПользователей.Количество());
КонецПроцедуры
#КонецОбласти
#Область YandexDisk

View File

@ -757,6 +757,29 @@
КонецФункции
// Проверить доступ к задаче
// Проверяет доступность задачи для пользователей
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDЗадачи - Число,Строка - ID задачи - task
// Пользователи - Массив из Строка - ID пользователей для проверки доступа - users
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ПроверитьДоступКЗадаче(Знач URL, Знач IDЗадачи, Знач Пользователи = "", Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.getaccess");
OPI_Инструменты.ДобавитьПоле("taskId", IDЗадачи , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("users" , Пользователи, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
// Получить структуру фильтра задач
// Возвращает структуру полей для фильтрации задач в методе ПолучитьСписокЗадач
//

View File

@ -2909,6 +2909,7 @@
Bitrix24_ПриостановитьЗадачу(ПараметрыТеста);
Bitrix24_ПолучитьИсториюЗадачи(ПараметрыТеста);
Bitrix24_ПолучитьСписокЗадач(ПараметрыТеста);
Bitrix24_ПроверитьДоступКЗадаче(ПараметрыТеста);
Наименование = "Картинка задачи.jpg";
Картинка = ПараметрыТеста["Picture"];
@ -3584,6 +3585,16 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["attachmentId"]).Заполнено();
КонецПроцедуры
Процедура Проверка_БитриксДоступныеДействия(Знач Результат, Знач Количество)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
Действия = Результат["result"]["allowedActions"];
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Действия).ИмеетТип("Соответствие");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Действия.Количество()).Равно(Количество);
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -7515,6 +7526,35 @@
КонецПроцедуры
Процедура Bitrix24_ПроверитьДоступКЗадаче(ПараметрыФункции)
МассивПользователей = Новый Массив;
МассивПользователей.Добавить("1");
МассивПользователей.Добавить("10");
URL = ПараметрыФункции["Bitrix24_URL"];
IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
Результат = OPI_Bitrix24.ПроверитьДоступКЗадаче(URL, IDЗадачи, МассивПользователей);
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступКЗадаче (хук)", "Bitrix24");
Проверка_БитриксДоступныеДействия(Результат, МассивПользователей.Количество()); // SKIP
URL = ПараметрыФункции["Bitrix24_Domain"];
Токен = ПараметрыФункции["Bitrix24_Token"];
IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
Результат = OPI_Bitrix24.ПроверитьДоступКЗадаче(URL, IDЗадачи, МассивПользователей, Токен);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПроверитьДоступКЗадаче", "Bitrix24");
Проверка_БитриксДоступныеДействия(Результат, МассивПользователей.Количество());
КонецПроцедуры
#КонецОбласти
#Область YandexDisk