2012-07-08 6 views
3

"role-based-access-control"에 대한 Yii의 설명서를 읽었지만 기본 사용자 역할을 구성 할 위치를 찾지 못했습니다.Yii Framework : 기본 사용자 역할을 설정하는 방법

I했습니다 추가로

'authManager'=>array(
     'class'=>'CDbAuthManager', 
     'connectionID'=>'db', 
     'defaultRoles'=>array('guest', 'authenticated', 'admin'), 
), 

/설정/main.php

보호하지만 어디 이러한 비즈니스 규칙을 넣어야?

$bizRule='return !Yii::app()->user->isGuest;'; 
$auth->createRole('authenticated', 'authenticated user', $bizRule); 

$bizRule='return Yii::app()->user->isGuest;'; 
$auth->createRole('guest', 'guest user', $bizRule); 

$bizRule='return Yii::app()->user->admin;'; 
$auth->createRole('admin', 'admin user', $bizRule); 

어떤 도움을 주셔서 감사합니다!

+0

당신이'$ auth = Yii :: app() -> authManager;를 가지고 당신의 역할, 태스크 etc를 만들었던 같은 장소에 –

+0

글쎄 그 질문은 ... 지금까지 나는' accessRules' 메소드를 사용하여 권한 부여를 관리 할 수 ​​있습니다. 이제는 더 복잡한 규칙을 넣고 authManager를 사용하는 방법을 알고 싶습니다. – Ingro

+0

글쎄요, 어딘가에 넣어두면 어쩌면 새로운 스크립트 (파일)를 만들 수 있습니다. 그것은 RbacInit 또는 무엇이라고 불렀고, yiic 쉘을 사용하여 실행하거나, 그냥 yic 쉘에서 모두 수행합니다. –

답변

1

시작한 코드를 통해이를 수행하는 것은 고통이 될 것입니다. 대신이 작업을 위해 생성 된 Rights 확장자를 사용하십시오.

Rights extension은 Yii의 내장 데이터베이스 인증 관리자 (CDbAuthManager)를 사용하여 고급 액세스 제어를위한 웹 인터페이스를 제공합니다.

+0

권한은 매우 유용하고 사용하기 쉽습니다. 그러나 많은 경우 종종 필요한 권한 기능은 문서화되지 않았습니다. http://octathorpeweb.com/blog/2012/03/06/yii-rights-extension-rbac-role-based-access-control/ –

+0

의견을 보내 주셔서 감사합니다. 권리는 매우 좋고 깨끗합니다.하지만 내 프로젝트에서 너무 많은 확장 프로그램을 사용하고 싶지는 않습니다. 또한, 기본적인 RBAC 작업이 필요하기 때문에 프로젝트에서 더 많은 제어권을 가지기 위해 직접 코딩하는 것을 선호합니다. – Ingro

+0

너무 많은 확장으로 너무 많은 리소스를 참조합니까? 음 Yii는 현재 요청을 수행 할 필요가있는 파일 만로드하고 설치 후 시스템은 RController 및 RFilter 클래스 만 권한에서 사용합니다. 시스템이 느려지지 않습니다. 적어도 시도해보고 얼마나 잘 수행되었는지 확인해야합니다. 아마도이 설정과 모든 종류의 제한을 수행하기 위해 80 시간을 프로그래밍해야 할 것입니다. – Pentium10

관련 문제