阻止某些用户查看某些页面

时间:2014-06-06 14:39:40

标签: symfony permissions

我有一个登录表单,登录后我会显示一些链接: 我想阻止非管理员用户点击或转发到特定页面。 我不想使用symfony2 ROLES,因为它太复杂了。 有更容易的事吗?

1 个答案:

答案 0 :(得分:1)

取决于您如何在User实体中区分管理员和非管理员用户。如果它只是一个布尔标志(让我们说admin属性):

<强> user.php的

private $admin;
// your attributes

public function isAdmin() 
{ 
     return $this->admin;
}

public function setAdmin($boolean)
{
     $this->admin = $boolean;
}
// getters/setters

<强> FooController.php

public function showAdminPanelAction()
{
  if(!$this->getUser()->isAdmin()) {
       throw new AccessDeniedHttpException('Forbidden Access');
  }
  else 
  {
      // do your stuff
  }
}

但是如果你有两个以上不同的角色,一个层次结构,很多用户等,Symfony2角色会让事情变得更容易......