User
모델과 Post
모델이 있다고 가정 해 봅니다. Post
모델에 user_id
필드가 포함되어 있습니다. User
은 이 Post
이고 Post
은 $belongsTo
이 User
입니다.사용자가 다른 사람의 게시물을 편집하지 못하게하는 방법
PostsController::edit($id) {
if($this->request->isPost())
{
$this->Post->id = $id;
$this->Post->save();
}
$post = $this->Post->read($id);
$this->set(compact('post'));
}
나는 사용자가 로그인 AuthComponent
를 사용
는 좀 후 편집 작업을해야합니다.
사용자가 some1 다른 게시물을 수정하지 못하게하려면 어떻게해야합니까? 어떤 cake가 함수/옵션에 빌드되어 있나요? some1은 모든 ID로 로그인하고 편집 작업을 게시 할 수 있기 때문입니다. 게시물 데이터를 저장하는 경우조차도 아닙니다. 게시물은 비공개입니다 (소유자 만 볼 수 있습니다). 누군가 게시물/편집/some_id를 호출하면이 게시물의 수정 양식이 표시됩니다.
$this->Post->id = $id;
if($this->Post->readField('user_id') != $this->Auth->user('id'))
{ //trigger error or redirect }
하지만 업데이트/일부 사용자에게 속한 모든 데이터를 읽고 각 작업의 시작 부분에이를 추가해야합니다 : 방법은 편집 작업의 시작 부분에이를 추가하는 것입니다. 그래서이 일을 더 우아한 방법을 찾고 있습니다.
실제로 책에서 ACL을 볼 수 :: isAuthorized()'또는'beforeFilter()'를 호출합니다. –