|
|
18.06.2018, 12:03
|
|
ktotoff
АльтерЛан
Зарегистрирован: 2006-12-19
Сообщений: 339
|
Привет всем! Просю помощи ))
У меня есть:
1. Список пользователей с отметкой в профиле «стандарт/премиум»
2. Список неких объектов а-ля новости с полем «стандарт/премиум»
Стандарт/премиум — это соответствующий классификатор.
Задача — ограничить доступность объектов по этому параметру.
Сама по себе задача простая. В системных настойках:
$query_where = "a.news_Type = '".$current_user['user_Type_id']."' OR a.news_Type = 0";
Но, продвигаясь по зыбкому пути перфекционизма, нельзя упускать тот факт, что если пользователь «стандарт» ручками введет в строку браузера прямой путь к объекту «премиум» ( site.domain/sub/message_id.html ), это не будет обработано как ошибка.
Т.е. с точки зрения системы путь неошибочен. Также естественно, что доступа к информации нет — объект не попадает в выборку и для пользователя не существует. Но, в любом случае, показывать пользователю пустой макет дизайная не есть хорошо. Как я могу обработать эту ситуацию?
Пытался решить в тех же системных настройках на редиректах по различным условиям ($action == 'full' && $f_Message_ID и все в таком роде), но результата не добился.
...жизнь прекрасна, когда правильно подобраны антидепрессанты...
|
|
|
18.06.2018, 21:05
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
Здравствуйте.
Желательно, чтобы что происходило?
Если пользователь перейдёт по прямой ссылке, а в системных настройках настроено отображение только премиум, то по сути пользователь увидит только макет, как Вы и пишите.
А что должно быть? 404? Какое-то сообщение? Или что-то еще?
Что Вы хотите в итоге получить?)
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
25.06.2018, 15:14
|
|
ktotoff
АльтерЛан
Зарегистрирован: 2006-12-19
Сообщений: 339
|
Павел, любая возможность влияния на ситуацию подходит.
Если 404 — отлично, если сообщение — идеально.
Конечно, можно отказаться от кастомизации выборки и все сделать на условиях настройки списка объектов и полного просмотра, но с выборкой надежней.
...жизнь прекрасна, когда правильно подобраны антидепрессанты...
|
|
|
25.06.2018, 15:30
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
Я думаю самое простое, обернуть в условие нужный код, который у Вас в отображении объекта.
В системных настройках $query_where прописать тоже по условию ($action == 'index').
А в отображении объекта проверять пользователя на принадлежность к классификатору.
Если пользователь стандарт, то вывести сообщение, вместо информации объекта.
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|