2011-12-27 2 views
0

Мне интересно, что лучше в моем случае. Я строю сайт, используя CodeIgniter с двумя основными разделами:Codeigniter - библиотека аутентификации или пользовательский контроллер?

  • публичной части avalaible всем
  • частный один только для зарегистрированных пользователей

В каждой странице общественной зоны (одна контроллер). Я хочу поместить знак в форму и ссылку для регистрации, и если пользователи вошли в систему, он должен быть перенаправлен в частную зону или может быть показана ссылка на него.

Теперь у меня есть два варианта:

  1. Контроллер пользователь является первым, что я думал, но на каждой странице сайта, мне нужно контролировать, если пользователь вошел в систему, и это невозможно или очень плохо, так как Я использую другой контроллер
  2. Итак, я начал работать над библиотекой, но я не уверен, как ее реализовать (например, проверка формы должна выполняться контроллером или самой библиотекой?), А что касается соединения с базой данных, так как я 't модель?)

Wha т вы считаете лучшим? Зачем? и как вы его реализуете?

(да и мне нравится изобретать колесо и не используя существующую библиотеку главным образом потому, что я хочу, чтобы узнать, как это сделать)

+0

Как насчет просто проверить, зарегистрирован ли пользователь в конструкторе «Пользователи»? – kba

+0

, но поскольку я использую другой контроллер для отображения страниц сайта, я не могу вызвать метод другого контроллера или просто загрузить его с помощью конструктора без нарушения модели mvc. –

+1

CI - плохая структура, чтобы узнать, как это сделать должным образом, потому что он является статичным и, следовательно, негибким для расширения и повторного использования - особенно когда дело доходит до контроллеров. В идеале я бы украсил контроллеры, которые нуждаются в нем, с проверками доступа и определит в маршрутизации, какие контроллеры нуждаются в проверках доступа. Затем контроллер приложения будет выполнять проверки доступа, если контроллер нуждается в них. – hakre

ответ

-1

Форма валидация и задания запросов должны выполняться с самим контроллером. Библиотека действует как инструмент, который не нуждается в реализации этих вещей в них, но в качестве необходимости вы можете использовать в них запросы для проверки некоторых данных, но лучше работать с контроллерами.

Идея имея флаг журнала заключается в следующем:

  1. Когда пользователь вошел в систему, создать сеанс для того, чтобы показать доступ.
  2. Проверяйте каждый раз сеанс для личных деталей.
0
Super Controller 
      =>assign user data,settings,configs etc 
     |-----private controller extends super controller 
      =>check user credentials 
     |-----admin controller extends super controller 
      =>check user && admin credentials 

Ваш супер контроллер ваш публичный контроллер до тех пор, как вы делаете только задания, не проверка ...

Все, что вы хотите, публика просто расширяет супер контроллер

Все, что вы хотите, частным образом расширяет частный контроллер

+0

Для этого я могу использовать hmvc –

+0

. Идея заключается в том, что вы можете блокировать разделы/частичные виды или виджеты, если (Modules :: run ('auth/_check_permissions', $ user_id)) – Philip

Смежные вопросы