Всем привет.
хотите получить список всех пользователей корппортала, да не вопрос...
о проблеме нам рассказал наш клиент, мы даже опешили от такого поведения КП
итак что нам понадобится для получения:
1. экстранет пользователь не состоящий в группах (не в одной)
2. смартфон
3. мобильное приложение битрикс 24
и немного времени
порядок действий
1. авторизируемся в мобильной версии
2. переходим в контакты
3. и видим всех пользователей портала
докопаемся до сути
на сервер приходит запрос вида
"GET /ex/mobile/?mobile_action=get_user_list&tags=Y&detail_url=%2Fex%2Fmobile%2Fusers%2F%3Fuser_id%3D HTTP/1.0"
в компоненте mobile.data формируется фильтр пользователей
функция GetMyGroupsUsersSimple возвращает ИД пользователей скажем так приближенных к этому человеку по группам, но у него НЕТ групп
в итоге возвращается пустой массив
что в итоге приводит к фильтру пользователей вида
из-за чего выбираются все пользователи и показываются в мобильном приложении
решение по быстрому, при пустом фильтре отдать пустой массив
в файле /bitrix/components/bitrix/mobile.data/actions/users_groups.php
в строке 149 добавим
успехов!
UPD ответ тех поддержки:
вот так вот, т.е. даже не предполагается что на коробочном КП могут быть какие-то свои системы для работы и функционал групп в экстранете не используется...
хотите получить список всех пользователей корппортала, да не вопрос...
о проблеме нам рассказал наш клиент, мы даже опешили от такого поведения КП
итак что нам понадобится для получения:
1. экстранет пользователь не состоящий в группах (не в одной)
2. смартфон
3. мобильное приложение битрикс 24
и немного времени
порядок действий
1. авторизируемся в мобильной версии
2. переходим в контакты
3. и видим всех пользователей портала
докопаемся до сути
на сервер приходит запрос вида
"GET /ex/mobile/?mobile_action=get_user_list&tags=Y&detail_url=%2Fex%2Fmobile%2Fusers%2F%3Fuser_id%3D HTTP/1.0"
в компоненте mobile.data формируется фильтр пользователей
$filter = array( "ACTIVE" => "Y" ); $arUserID = CExtranet::GetMyGroupsUsersSimple(SITE_ID); $filter["ID"] = implode('|', $arUserID); |
в итоге возвращается пустой массив
что в итоге приводит к фильтру пользователей вида
( [ACTIVE] => Y [ID] => ) |
решение по быстрому, при пустом фильтре отдать пустой массив
в файле /bitrix/components/bitrix/mobile.data/actions/users_groups.php
в строке 149 добавим
if(strlen(trim($filter["ID"]))==0) $data = array(); |
успехов!
UPD ответ тех поддержки:
У вас не верный сценарий использования экстранета. Пользователь экстранета не может не состоять ни водной из групп соц. сети экстранета. Когда пользователь добавляется/приглашается, то он должен добавляться в рабочую группу экстранета. |
вот так вот, т.е. даже не предполагается что на коробочном КП могут быть какие-то свои системы для работы и функционал групп в экстранете не используется...