2011-05-08 3 views
0

젠드 프레임 워크를 사용하는 "단순한 응용 프로그램이라고 생각했던 것"에 대해 작업하고 있습니다. 이것은 zf를 사용한 제 4 번째 응용 프로그램이지만 동적 ACL을 사용한 첫 번째 응용 프로그램입니다. 응용 프로그램은 Mappers를 통해 매핑되는 내 모델 (popo)에 액세스하기 위해 서비스 레이어로 구성된 모델/도메인 레이어로 표준 MVC 설정을 사용합니다. 각 모델에는 해당 서비스 및 매퍼가 있습니다. 내 UserModel에서 Role 인터페이스를 구현하고 모든 모델 기반 서비스가 Resource 인터페이스를 구현하도록하고 싶습니다. 또한 정적 역할을 기반으로 미리 정의 된 권한을 지정하고 싶지만 사용자의 역할에 따라 각 사용자에 대해 지정된 권한을 변경할 수도 있습니다.Zend Acl in Service Layer/Navigation

예 : 기본적으로 '생성', '수정'및 '보기'권한이있는 '송장'자원에 대한 액세스 권한이있는 '공급 업체'의 역할입니다. 따라서 InvoiceService는 메소드 생성, 편집,보기 및 삭제와 함께 '송장'자원이됩니다 (기본적으로 역할 관리자 만 인보이스를 삭제할 수 있습니다.)

공급 업체 역할을 담당하는 특정 사용자의 경우 삭제 권한을 부여하거나 벤더 역할을 가진 다른 사용자에게 편집 권한을 거부 할 수 있기를 원합니다.이 생각은 어떤 식 으로든 지속되어야하고 동적으로로드되어야합니다.

그래서 내 실제 질문에 내가 잘못된 방향으로 가고있는 것입니까? Zend Navigation으로 이와 같은 솔루션을 어떻게 구현할 수 있습니까?

모든 아이디어 포인터 수업 피드백은 크게 감사하겠습니다.

죄송합니다. 내 설명이있는 헛소리 작업을 밤새도록 끝내면.

+0

역할, 리소스 및 권한과 관련하여 올바른 생각을 갖고있는 것 같습니다. 하나의 질문 :'Zend_Navigation'으로 이것을하는 방법을 물었을 때'Zend_Acl'을 사용 했습니까? [이 답변] (http://stackoverflow.com/questions/5925970/zend-acl-how-to-design-role-based-acl-for-multiple-small-teams/5926152#5926152)을보십시오. 'Zend_Acl'에 대한 몇 가지 아이디어. –

답변

0

네, 데이비드는 당신이 올바른 길을 가고 있다고 말했습니다. Zend_Navigation은 Zend_Acl에서 매우 잘 동작합니다. xml 또는 ini 파일에서 탐색을 정의하고 각 페이지에 자원 및 필수 권한을 할당 한 다음 ACL 및 탐색 컨테이너를 탐색보기 도우미에 삽입 할 수 있습니다. 현재 로그인되어있는 사용자에게 탐색 도우미의 현재 역할을 설정할 수도 있습니다.이 역할은 ACL을 기반으로 탐색 요소를 표시하거나 숨 깁니다.

네비게이션 컨테이너에서 모든 페이지를 정의하는 것은 약간 지루하고 장황하지만 어렵지는 않습니다.

ACL을 정의 할 때 단일 PHP 파일에서 모든 역할 및 자원을 정의하는 것처럼 간단한 작업을 수행하거나보다 유연한 접근 방식을 사용하여이 정보를 데이터베이스에 저장하고 acl을 빌드 할 수 있습니다. 후자의 방법으로 ACL을 캐시하고 싶을 것입니다.