• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела wpt лично.

Помощь Вопросы и решение проблем с Битрикс

Статус
В этой теме нельзя размещать новые ответы.
Все опять привет :) Вот на сайте битрикса в личном кабинете ссылка на дистрибутив доступна только залогененному пользователю, Хочу сделать аналогично для прайс-листов. Чтобы по прямой ссылке доступ был только у тех, кто авторизован.

Подскажите у них средствами nginx реализовано? Нашел статью Для просмотра ссылки Войди или Зарегистрируйся вроде все доходчиво, но не работает почему-то.
Как лучше сделать?
 
Последнее редактирование:
Все опять привет :) Вот на сайте битрикса в личном кабинете ссылка на дистрибутив доступна только залогененному пользователю, Хочу сделать аналогично для прайс-листов. Чтобы по прямой ссылке доступ был только у тех, кто авторизован.

Подскажите у них средствами nginx реализовано? Нашел статью Для просмотра ссылки Войди или Зарегистрируйся вроде все доходчиво, но не работает почему-то.
Как лучше сделать?
Для прайс-листов уникальность адреса ссылки, как мне кажется, абсолютно не критична, поэтому сделайте просто через:
PHP:
<?if( in_array(4,CUser::GetUserGroup(CUser::GetID())) )

{
echo'Тут Ваша ссылка на закрытый прайс для группы 4';
} ?>
Где "4" - это id группы пользователей которым открыт прайс или несколько групп можно поставить
 
Спасибо. Осталось сообразить как это засунуть в
user_menu
Код:
    Array(
        "Прайс-лист",
        "/price/opt/nbs22.ru_price_opt.xlsx",
        Array(),
        Array("ITEM_CLASS"=>"", "ICON_SVG"=>"excel"),
        "CSite::InGroup(array(1,8,9))"
    ),
 
Нет. Пункт меню итак отображается конкретной группе пользователя. Но ссылка всегда постоянна. Хочу пресечь скачивание тем, кто не состоит в группе опт.
 
Теперь тем более не понял.

Есть штатный функционал, условия отображения пункта меню конкретной группе:
Скрытое содержимое доступно для зарегистрированных пользователей!
Спрячьте под это условие.
Если группы две (клиенты и опт), и опт тоже входят в клиенты и доп пункт не хочется:
  • или через шаблон меню
  • или можно попробовать так:
PHP:
    Array(
        "Компания",
        "/company/",
        Array(),
        Array(),
        "CSite::InGroup(array(5)) && !CSite::InGroup(array(2))"
    ),
(я не пробовал, но возможно получится)
 
Так вот же
Код:
 Array(
        "Прайс-лист",
        "/price/opt/nbs22.ru_price_opt.xlsx",
        Array(),
        Array("ITEM_CLASS"=>"", "ICON_SVG"=>"excel"),
        "CSite::InGroup(array(1,8,9))"
    ),
отображает пункт меню для групп 1, 8,9 но ссылка /price/opt/nbs22.ru_price_opt.xlsx всегда постоянна. И если набрать в адресной строке эту ссылку то пойдет загрузка. Хочется проверять группу ну или хотя бы авторизацию перед отдачей
 
Так вот же
отображает пункт меню для групп 1, 8,9 но ссылка /price/opt/nbs22.ru_price_opt.xlsx всегда постоянна. И если набрать в адресной строке эту ссылку то пойдет загрузка. Хочется проверять группу ну или хотя бы авторизацию перед отдачей
А, ну так я же написал выше, что "Для прайс-листов уникальность адреса ссылки, как мне кажется, абсолютно не критична, поэтому сделайте просто через"
Вы не стали отрицать, я и двигаюсь в этом направлении.

Если просто проверять авторизацию - поставьте в дополнение к "ссылке по условию" права для нужных групп на папку где лежит прайс. Мне кажется этого с головой хватит, ну, я не вижу смысл на на обычный прайс генерить уникальную ссылку для каждого пользователя, как при продаже контента.
 
Не много запутались :) Ссылка на прайс всегда одна, для всех, статична. Её видно в пункте меню, для определенных групп пользователей. Но если я дам ссылку вам, например, вы сможете скачать прайс. А хотелось бы чтобы как минимум чтобы просилась авторизация. Если пытаться зайти в папку где лежит прайс, то да, так и есть, просит авторизоваться. Но на сам файл прайса это условие не распространяется.
 
Вот же ж ))
А если файл прайса сделать php, а в нем проверку? ))
PHP:
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

if( in_array(4,CUser::GetUserGroup(CUser::GetID())) )
{
header('Location:ПУТЬ К ПРАЙСУ');
exit;
};
?>

А вообще, мне попадалось на форуме Битрикса какая-то встроенная функция ядра, которая отдавала файл по уникальной ссылке, не отображая физическую. Вот только не пользовался никогда и не помню сейчас как именно на нее вышел.
Но в любом случае это уже огород и вопрос, стоит ли прайс чтобы его городить
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху