Подскажите кто сталкивался, как ограничить другим пользователям доступ к своим личным календарям?
Т.е. пользователь имеет календарь на странице личного профиля: http://localhost/company/personal/user/22/calendar и не хочет чтобы этот календарь был доступен его коллегам. Про администраторов портала речь не идет, они видят всё, речь именно о пользователях с одинаковыми правами.
Михаил, соответствующей настройки в компоненте нет. Для этого придется кастомизировать шаблон компонента "bitrix:socialnetwork_user", который находится по пути: /bitrix/templates/<шаблон_сайта>/components/bitrix/socialnetwork_user/<текущий_шаблон_компонента>/user_calendar.php
меняем
Код
if (CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $ownerId, "calendar")
на
Код
if (CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $ownerId, "calendar") && ($USER->IsAdmin() || $ownerID==$USER->GetID()))
то есть показываем только администраторам и непосредственно обладателю календаря
Код
$guest->IsAdmin()
можно заменить на проверку группы зашедшего на страницу пользователя и сравнение группы этого пользователя с группой обладателя календаря ($ownerId).
Так же стоит отметить, что пользователь может состоять в нескольких группах и он всегда состоит в группе с ID=2, то есть "все пользователи"
Решение оказалось очень простым. На индивидуальной странице пользователя есть пункт "Настройки" в нем можно задать кто имеет доступ к тем или иным личным компонентам (календарь, фотогалерея и др), а также его права на доступ (чтение, изменение).