我让用户创建个人资料并使用36个字符个人资料ID。 users/profile.ctp
文件最初是由Cake烘焙的users/view.ctp
文件。
网址看起来像example/users/profile/3213123-12313-12313-4544534
我想阻止其他用户访问彼此的个人资料或编辑页面:例如成就/编辑
我使用ACL阻止了某些操作,但是用户位于具有相同访问权限的同一“组”中。
如何确保用户只能访问其个人资料/方法,并且通过网址访问其他人资料的用户会被重定向到主页。我应该通过高级ACL做到这一点,还是我在这里错过了一些简单的代码。
答案 0 :(得分:1)
当您的用户连接时,他的信息将保持在会话中。因此,在您的UsersController中,您可以执行以下操作:
function profile($user_id){ // let's say that the 36chars is the user's id
if($user_id !== $this->Auth->user('id')){
$this->cakeError("error404"); // or redirect to a view saying that he doesn't have access
}
// ... do your stuff
}
也许你需要在不同控制器的不同方法中做同样的事情。您可以创建一个Component来执行此操作,或者在AppController中添加一个方法。
祝你好运!