2011-12-27 3 views
0

내 경우에 무엇이 최선인지 궁금합니다.Codeigniter - 인증 라이브러리 또는 사용자 정의 컨트롤러?

  • 공공 부분 모두
  • 민간 하나 avalaible 등록 된 사용자 공공 영역의 각 페이지에서

에 대한 (하나 나 두 개의 주요 섹션으로 CodeIgniter의를 사용하여 사이트를 짓고 있어요 컨트롤러) 양식에 서명하고 링크에 가입하고 싶습니다. 사용자가 로그인 한 경우 개인 영역으로 리디렉션해야하거나 링크가 표시 될 수 있습니다.

  1. 사용자 컨트롤러는 필자가 있지만 사용자가 기록되어있는 경우 제어 할 필요가 사이트의 각 페이지에서 생각 먼저하고이 불가능하거나 이후 아주 나쁜 :

    은 이제 두 가지 선택이 다른 컨트롤러를 사용하고 있습니다

  2. 그래서 라이브러리 작업을 시작했지만 구현 방법을 잘 모르겠습니다 (예 : 폼 유효성 검사는 컨트롤러 또는 라이브러리 자체에서 수행해야합니까?) 모델입니까?)

뭐 너는 최고라고 생각하니? 왜? 어떻게 구현하겠습니까?

+0

사용자가'User'의 생성자에 로그인했는지 확인하고 싶습니까? – 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

좋은 생각, 그 방법을 사용하면 섹션/부분보기 또는 위젯을 차단할 수 있습니다 (Module :: run ('auth/_check_permissions', $ user_id)) – Philip

관련 문제