이제 ACL 제어 응용 프로그램에서 뭔가를 놓치고 있어야합니다. 내 사용자 모델 belongsTo는 Role이라는 모델입니다. 두 모델 모두에 ACL 동작을 포함 시켰습니다. 두 모델 모두 parentNode 함수가 있습니다. Role에서는 null을 반환합니다. 사용자에서 코드는 다음과 같습니다 : 내 AROS 테이블에서 = 8 ROLE_ID 한 사용자로 로그인하고있어 CakePHP Acl 혼란 - 그룹에 대한 액세스가 거부되었지만 해당 그룹의 사용자는 액세스 권한이 있습니다.
public function parentNode() {
if (!$this->id && empty($this->data)){
return null;
}
if (isset($this->data['User']['role_id'])){
$roleId = $this->data['User']['role_id'];
} else {
$roleId = $this->field('role_id');
}
if (!$roleId){
return null;
} else {
return array('Role' => array('id' => $roleId));
}
}
는, 사용자가 올바른에 대한 ARO의 항목입니다 (9)의 PARENT_ID을 가지고 역할. 나는이 작업을 실행하면
public function permissions(){
$this->autoRender = false;
if($this->Acl->check(array('model'=>'User','foreign_key'=>$this->Auth->user('id')),'Countries')){
echo 'User: Allowed<br />';
}else{
echo 'User: Forbidden<br />';
}
if ($this->Acl->check(array('model'=>'Role','foreign_key'=>$this->Auth->user('role_id')),'Countries')){
echo 'Role: Allowed';
}else{
echo 'Role: Forbidden';
}
}
, 내가 얻을 :
User: Allowed
Role: Forbidden
는 사용자 항목이 aros_acos 테이블에 어떤 글이 없습니다
나는 문제를 설명하기 위해 다음과 같은 조치를 만들었습니다. 해당 테이블의 유일한 항목은 Role aros입니다.누구든지이 문제에 관해 밝힐 수 있습니까?
감사합니다.
편집 - 분명하지 않은 경우를 대비하여 예상되는 동작은 사용자와 역할이이 컨트롤러 ('국가')에 액세스하지 못하도록하는 것입니다.
편집 - 내가 지금처럼 권한을 할당 할 :이 근무하고있는 데이터베이스에 확인한
$this->Acl->deny('City admin','Countries');
.
권한을 어디에 할당합니까? 권한 설정에 관한 요리 책을 확인 했습니까? – 8vius
만약 당신이 내 질문에 어쩌면 내가 당신에게 손을 줄 수있는 몇 가지 빛을 비 웠습니다 – 8vius