Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Запрет доступа к методам класса
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Запрет доступа к методам класса

Страниц (1): [1]
 

1. iflight - 31 Июля, 2011 - 21:51:13 - перейти к сообщению
Есть класс, с помощью которого организованна админ панель. Авторизация на сайте организована с помощью сессий.
Нужно запретить доступ, а точнее отдавать 403 ошибку, если клиент не автоизован или его права не админские.
Проверить на авторизованность и права доступа можно в __construct'е, а каким образом организовать ответ всех методов класса в данном случае?
2. White - 31 Июля, 2011 - 22:05:42 - перейти к сообщению
если я вас понял правильно, то в класс добавляем

в конструктор:
PHP:
скопировать код в буфер обмена
  1. if(условие авторизации) self::$deny=false;

а в методы в начале:
PHP:
скопировать код в буфер обмена
  1. if(self::$deny) die('403 Access denied');
3. LIME - 31 Июля, 2011 - 22:07:10 - перейти к сообщению
может проверять вне класса и создавать объект или нет в зависимости от итога?
4. iflight - 31 Июля, 2011 - 22:17:30 - перейти к сообщению
White Спасибо. Черт все элементарно, надо ж было самому не додуматься %)
LIME В принципе можно и до, но уже пошел по этой дорожке. Такая проверка только на админке нужна, думаю логичней только там проверять, чем при любом запросе?
5. LIME - 31 Июля, 2011 - 22:22:24 - перейти к сообщению
iflight да не...
если авторизован создается 1 класс если нет то другой
оба наследуют какойто абстрактный класс ...1 переопределяет методы на запрет
и проверять в методах ненадо
короче патерн стратегия
ну тут вам виднее

 

Powered by ExBB FM 1.0 RC1