2014-11-06 2 views
0

젠드 프레임 워크 앨범 예제에서 확장하기 어떻게하면 사용자가 다른 레코드를 편집하지 못하게 할 수 있습니까?사용자가 다른 사용자의 레코드에 액세스하지 못하게하려면 어떻게합니까?

Zend Framework 2, PHP, MYSQL 및 ZFC User Rbac을 사용하고 있습니다.

현재 '앨범'번호가 URL에 표시됩니다. 사용자가 테이블에 로그인하면 해당 레코드 (앨범)가 표시됩니다. 그러나 앨범을 편집하면 URL에 고유 한 앨범 번호가 표시됩니다. 그런 다음 사용자가이를 변경하여 다른 앨범을 편집 할 수 있습니다. 이것을 막는 가장 좋은 방법은 무엇입니까? 또한 내가 URL에 그것을 표시하기 전에 레코드 id를 소금 수 있어야/소금 해야하는 그들의 방법은 무엇입니까?

시간을내어 입력 해 주셔서 감사합니다. 여기에 매트

+0

현재 사용자가 소유하고있는 앨범을 추적하고 있습니까? – thatidiotguy

+0

나는 그렇다. 앨범 테이블에 user_id가 있습니다. – Matt

+0

그래서 앨범을 소유하고 있는지 확인하기 위해 앨범을 확인합니다. 그들이 오류 메시지를주는 페이지로 리다이렉트하지 않는다면. – thatidiotguy

답변

1

시도하고 내가 코멘트에 대해 이야기하고 무엇을 설명하기 위해 일부 의사입니다.

$albumId = /*however you retrieve parameters*/; 
$album = /*however you get album*/ 
$user = /*however you get user*/ 

if ($album->getOwner()->getId() != $user->getId()) { 
    //redirect to another page with an error message 
} 
+0

감사합니다! – Matt

+1

또한 [이 예제] (https://github.com/ZF-Commons/zfc-rbac/blob/master/docs/07.%20Cookbook.md#a-real-news)에서와 같이 Assertions의 사용을 고려할 수 있습니다. world-application-part-2 --- only-delete-your-own-posts) – jmleroux

관련 문제