in meinem Projekt protokollierte Benutzer Zugriff auf ihre Ansicht, aber ich möchte, dass der Benutzer nicht auf andere Benutzer mit Änderungs-URL zugreifen kann. in diesem Userscontroller:Wie Filteransicht für Benutzer in yii2?
[
'allow' => true,
'actions' => ['update', 'view'],
'matchCallback' => function() {
return ($this->checkAccess(User::ROLE_USER));
},
],
und
public function actionView($id)
{
return $this->render('view', [
'model' => $this->findModel($id),
]);
}
wenn benutzer1 gehen zu: web/users/view @ id = 1, er auf dem Web/users/view @ id = 2 gehen kann.
Wie kann ich dieses Problem verhindern?
Wollen Sie genau mit diesem Code oder jeder Code ist in Ordnung? –
In diesem Projekt kann jeder Benutzer seine Nachrichten sehen. Dazu muss der Benutzer zu messages/view & id = 3 (msg 3 für user1) und (msg5 for user2) gehen. Wenn Benutzer1 zu Nachrichten/Ansicht & ID = 5 kommt, wird eine andere Nachrichtenansicht angezeigt. –
Scheint, als ob Sie den Zugriff auf Objekte auf ihre Autoren beschränken möchten. Überprüfen Sie diese [Frage] (http://stackoverflow.com/questions/39218303/restricting-controller-action-to-creator-of-post-in-yii2), ich habe es in meiner Antwort ausführlich behandelt. – arogachev