Sono in grado di controllare la mia applicazione utilizzando ACL
, tutto perfettamente eseguito e l'applicazione funziona senza problemi con ACL
e Auth
.CakePHP 2.x ACL - Controllo a livello proprietario
Ora il problema è:
Ho due tabelle, users
e posts
. non c'è RBAC
(controllo di accesso basato sui ruoli). Sto impostando deny
e allow
per ogni utente come segue.
//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');
ma qui sto ottenendo un problema:
user2
sta ottenendo l'accesso al edit
la posts
di user1
.
esempio:
User1
creato un post1
.
ora User2
clienti registrati ora può modificare postale 's il User1
(cioè post1- /localhost/myApp/posts/edit/1
)
Domanda: Come è possibile impostare il permesso ACL a questo problema, Il proprietario del post può modificare solo la posta e gli altri non può.
posso realizzare questo nel livello di controllo semplicemente controllando
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
}
ma ho bisogno ACL
a lavorare qui, è possibile ?, Aiutaci
Grazie
se è una domanda javascript otterrò risultati immediati, ma sfortuna, questo cakephp. molto male, :( –
non so se funziona bu hai provato qualcosa del genere: '$ this-> Acl-> consenti ($ utente, 'controller/messaggi'/modifica/1)' e così via? – arilia
@ arilia, grazie per il commento l'ho provato, non funziona puoi suggerire altre soluzioni :) –