2011-03-28 4 views
1

나는시 또는 국가에 해당하는 데이터베이스 레코드가있는 응용 프로그램을 가지고 있습니다. 내 사용자 모델에는 city_id 및 country_id 필드가 있습니다. city_id가 0이 아닌 경우 사용자는 해당 도시에 해당하는 레코드에만 액세스 할 수 있습니다. 외래 키 city_id가있는 약 8 개의 다른 모델이 있습니다 (예 : Post, Advert, Venue, Competition) ...CakePHP로 액세스 제어 - 데이터베이스 필드에 의한 액세스 제한

나는 Acl을 설정 중이며 레코드에 대한 액세스를 거부하는 좋은 방법이 있는지 알고 싶습니다. 인증 된 사용자의 city_id가 0 (모든 도시에 대한 액세스 권한이 있음)을 제외하고는 인증 된 사용자와 동일한 city_id를 갖지 않습니다. 같은 나라로 간다, 나는 같은 목적을 수행하는 country_id 필드를 가지고있다.

안내하기 전에 정말 감사합니다, 내가 가서 soomething 정말 해키 끔찍한, 감사합니다.

답변

0

귀하의 컨트롤러 또는 모델에서 자신의 기능 isAuthorized()에 복잡한 권한 확인을 수행 할 수 있습니다. 당신은 AuthComponent에 설정해야합니다 $this->Auth->authorize = 'controller';

CakePHP의 책은 example on this.

+0

가 흠 ... 내가 전에이 건너했지만 특정 데이터베이스에 대한 액세스를 제한하는 방법 접근에 나는 약간 확실 해요있다 isAuthorized를 사용하는 행. 어떤 포인터? – Will