Jestem w stanie kontrolować moją aplikację za pomocą ACL
, wszystko jest wykonane idealnie i aplikacja działa sprawnie z ACL
i Auth
.CakePHP 2.x ACL - Kontrola na poziomie właściciela
Teraz problem jest:
Mam dwie tabele, users
i posts
. nie ma RBAC
(kontrola dostępu oparta na rolach). Ustawiam deny
i allow
dla każdego użytkownika, jak na przykład.
//allow User1 to do everything
$user->id=1;
$this->ACL->allow($user,'controllers');
//allow User2 to add, edit and view the posts
$user->id=2;
$this->Acl->deny($user, 'controllers');
$this->Acl->allow($user, 'controllers/Posts');
ale tutaj jestem coraz jeden problem:
user2
jest uzyskanie dostępu do edit
posts
z user1
.
przykład:
User1
stworzył post1
.
teraz User2
zalogowany teraz on może edytować posta User1
„s (tj post1- /localhost/myApp/posts/edit/1
)
Pytanie: W jaki sposób można ustawić uprawnienia ACL do tego problemu, właściciel słupka może edytować tylko słupek i inni nie może.
można to osiągnąć na poziomie kontroler wystarczy zaznaczyć
if($_SESSION['Auth']['User']['id'] == $Post['Post']['user_id']){
// you're the owner, so u can edit
}else{
//u cant edit, this is not ur post
}
ale muszę ACL
tu pracować, Czy to możliwe ?, Proszę o pomoc
Dzięki
jeśli jest to javascriptowe pytanie, otrzymam natychmiastowe wyniki, ale mój pech, ten cacephp. bardzo źle, :( –
nie wiesz, czy działa bu, czy próbowałeś coś w stylu: '$ this-> Acl-> allow ($ user, 'controllers/Posts'/edit/1)' an tak na? – arilia
@ ariula, dziękuję za komentowanie, próbowałem, nie działa, możesz zaproponować inne rozwiązania :) –