2010-12-12 3 views
2

웹 응용 프로그램을 만들기 위해 cakephp를 사용하고 있습니다. 내 현재 프로젝트에는 두 명의 데이터베이스 사용자가 사이트 사용자를 위해 다른 관리자를 위해 하나씩 있는데 어떻게 adminphp가 더 많은 데이터베이스 작업 전원으로 사이트에 로그인 할 수 있도록 cakephp를 구성 할 수 있습니까? cakephp : admin 사용자를위한 별도의 데이터베이스 액세스

답변

3

동의합니다. 때로는 응용 프로그램 계층에서 데이터베이스 계층보다 권한을 처리하는 것이 더 좋습니다.

var $default = array(
    'driver' => 'mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'normaluser', 
    'password' => '', 
    'database' => 'db', 
    'prefix' => '', 
); 

var $admin = array(
    'driver' => 'mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'adminuser', 
    'password' => '', 
    'database' => 'db', 
    'prefix' => '', 
); 

사용자가있는 경우 당신은 다음 $this->ModelName->setDataSource('admin')을 사용할 수 있습니다 : 당신이 정말, 정말뿐만 아니라 데이터베이스 보안의 추가 레이어를 갖고 싶어 경우, 당신은 여러 데이터베이스 연결을 설정해야합니다 관리 섹션 또는 부과 할 수있는 모든 조건이 포함됩니다.

admin_ 접두사 라우팅을 살펴 보시기 바랍니다. CakePHP를 사용하면 관리자 권한을 쉽게 처리 할 수 ​​있습니다. Prefix Routing 또한 사용자 테이블에 사용자의 역할을 나타내는 필드를 추가하고 현재 접두사와 대조하여 필드를 확인할 수 있습니다.

0

가장 강력한 솔루션 가능성 액세스 제어 목록 (ACL)을 설정합니다 감사합니다. 이렇게하면 지정한 사용자 역할을 기반으로 권한을 위임 할 수 있습니다.

예를 들어 admin의 group_id는 1이고 사용자의 group_id는 2입니다. 그런 다음 관리자가 웹 앱의 특정 작업에 액세스하도록 허용 할 수 있습니다.

다음은이 기능에 대한 케이크 문서입니다. http://book.cakephp.org/view/1242/Access-Control-Lists

관련 문제