2014-01-30 61 views
0

我需要根據存儲在會話中的特定數據即時更改用戶角色。因此,在每個請求中,授權系統可以檢查用戶是否可以訪問某些資源。我不想在數據庫中存儲角色。角色將取決於數據。如何動態更改Symfony2中的用戶角色

例如,實際公司的admin用戶可以管理其代理和屬性,但agent只能管理分配給他的屬性。另外buyer可以查看他已購買的房產的數據。

+0

您能否向我們提供您目前爲止的樣品? –

回答

0

看看This blog post,它顯示瞭如何添加用戶相關角色。您可以修改他實際設置角色名稱的部分。

我會做一些修改,這個方法雖然

class User implements UserInterface 
{ 
    public function getRoles() 
    { 
     return new UserDependentRole($this); 
    } 
} 

而在UserDependentRole類,有此相反:

public function getRole() 
{ 
    $roles[] = 'ROLE_' . strtoupper($this->user->getUsername()); 
    //... make an array of all the roles you want the user to have 

    return $roles; 
} 

我敢肯定,如果你讀你的文章將人物瞭解如何去做。