2014-02-20 3 views
0

나는 ACL에 아주 새롭다CakePHP에서 액세스 제어 객체로 사용해야하는 것은 무엇입니까?

웹 사이트는 상인이 몇몇 상표 및 몇몇 국가에서있을 수있는 차에 관하여이다. 예 : 대리점 : John Doe 에는 영국의 Audi, 프랑스의 기아 브랜드가 있습니다.

나는 아래의 모델을 가지고 : - 브랜드 - 나라 - 딜러 - BrandsCountriesDealers

딜러는/편집 브랜드 또는 국가에 추가 할 수 없습니다 (위의 함께 세 개의 링크). 그는 액세스 할 수있는 국가의 자동차와 소유하고있는 브랜드에만 자동차를 추가/수정/삭제할 수 있습니다.

BrandsCountriesDealers 모델의 특정 외래 키를 ACO로만 사용하는지, 딜러가 자동차를 추가 할 때 BrandsCountriesDealers 모델의 레코드를 확인하여이 자동차의 브랜드와 국가가 유효한지 확인합니다 에 대한 액세스 권한이 있습니까?

이 부분이 분명해졌습니다.

+0

평소 사용 [타이니 (http://ww.dereuromark.de/2011/12/18/tinyauth-the-fastest-and-easiest-authorization-for-cake2/) 설정 기본 역할은 특정 레코드 기반 검사 (UID == $ record [user_id] 등)에 대한 컨트롤러 액세스를 사용합니다. – mark

답변

0

ACL 구현은 약간 어렵지만 불가능하지는 않습니다. ACL 작업에 익숙해지면 얼마나 쉽고 강력합니까? 그것을 구성하고 배우는 데는 약간의 연구가 필요할 수 있지만 실제로는 번거로워집니다.

나는 당신이 어떤 이유로 ACL을 사용한다고 생각 :

  1. 그것은 코드가 매우 깨끗하고 깔끔합니다 : 당신은 지정 보관할 필요가없는

if user logged in do this 

    or if user type is this do that 
  1. Acces 수준 : 각 유형의 사용자에 대해 유효성 검사를 작성할 필요가 없습니다.
  2. 높은 보안 : ACL은 인증 구성 요소와 협력하고 각 방법은 하나 개 이상의 사용자 유형 (역할)
  3. 이 거의 DB에 저장되어있는 모든 것은 그래서 당신의 코드가 분명 다시
입니다 부여 할 수
  • 나는 ACL을 가지고 일하기 시작했을 때 나는 this tutorial을 따랐다. 포르투갈어로되어 있습니다. 나는이 언어를 모른다. 그러나 나는 한 걸음 한걸음 씩 따라 갔다.

    http://www.youtube.com/watch?v=EIjfwqqGRhs