За последние 24 часа нас посетили 17460 программистов и 1722 робота. Сейчас ищут 952 программиста ...

Как реализуется доступ к контроллерам?

Тема в разделе "Прочие вопросы по PHP", создана пользователем pavel_gp, 5 мар 2015.

  1. pavel_gp

    pavel_gp Новичок

    С нами с:
    5 мар 2015
    Сообщения:
    3
    Симпатии:
    0
    Подскажите пожалуйста новичку, при разборе концепции mvc возник вопрос.
    В зависимости от статуса пользователя (авторизован/неавторизован), как реализуется доступ к контроллерам?
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    зависит от логики самого сайта. к некоторым контроллерам у неавторизованных вообще не должно быть доступа. тогда ошибка, или редирект, или пустая страница. как угодно
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    pavel_gp посмотри как устроены framework
     
  4. pavel_gp

    pavel_gp Новичок

    С нами с:
    5 мар 2015
    Сообщения:
    3
    Симпатии:
    0
    Это я понимаю), я интересуюсь где методологически правильнее реализовывать проверку.
    1. При входе в контроллер, если false тогда redirect. (и такое условие в каждом контроллере)
    2. Или в Route(), проверяем соответствие вводимого контроллера на доступ, после чего создаем контроллер.
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    ну вот об этом и нужно было спрашивать в первом сообщении.
    а вообще, идеологически проверка лучше пусть будет в одном месте. иначе гдето можно забыть её сделать.
     
  6. pavel_gp

    pavel_gp Новичок

    С нами с:
    5 мар 2015
    Сообщения:
    3
    Симпатии:
    0
    Тогда вытекает следующий вопрос:
    Где правильнее хранить соответствия имяКонтроллера - доступ (авторизован/неавторизован)
     
  7. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Для примера, ларка. Есть файл где прописываются роуты, их можно сгруппировать и на группы навешивать фильтры, типа так:
    Код (PHP):
    1. Route::group(array('before' => 'auth'), function () {
    2.   Route::get('/', function () {
    3.     // К этому маршруту привязан фильтр auth.
    4.   });
    5.  
    6.   Route::get('user/profile', function () {
    7.     // К этому маршруту также привязан фильтр auth.
    8.   });
    9. });
    10.  
    Довольно удобно, вся логика доступа прописана в одном месте, достаточно вынести контроллер из группы, либо добавить в неё.