Есть такая задача, зная сотрудника нужно назначить права на элемент группам прав в которых он числится. В бизнес-процессе есть активити "PHP-код" , в нём я получаю ID групп прав и возращаю в БП в переменную типа Пользователь.
Код
$root = $this->GetRootActivity();
$User = $root->GetVariable('User'); // Массив пользователей
$Static_grup = $root->GetVariable('Static_grup'); // Статичные группы на которые назначение прав не требуется
for($i = 0; $i < count($User); $i++) {
$User[$i] = implode('_', array_slice( explode( '_', $User[$i]),1 ) ); //Убираю User_ что бы получить чистый ID пользователя
$Grup[$i] = CUser::GetUserGroup($User[$i]); //Получаю группы к котором принадлежит пользователь
$result[$i] = array_diff($Grup[$i], $Static_grup); // Убираю ненужные
}
$Grup_prav = call_user_func_array('array_merge', $result); // объединяю всё в новый массив
for($i = 0; $i < count($Grup_prav); $i++) {
$Grup_prav[$i] = '[G'.$Grup_prav[$i].']';
} // присваиваю вид значениям ([G'ID']) вместо просто (ID)
$root->SetVariable("Grup_prav", $Grup_prav); // возращаю в БП в переменную типа Пользователь
После ставлю активити "Установка прав" и указываю в ней полученную ранее переменную. Но на выходе получается что права присваиваются пустым значениям.
Может кто сталкивался и поможет? Или кто знает как назначить права на элемент через php-код(я методов не нашёл).
Администрирование коробка, Ошибки в работе портала.