2013-05-21 29 views
0

我從教程網站play-authenticate-usage開始。我有玩2.1,deadbolt 2.1和玩認證1.0如何向用戶添加其他角色?

不幸的是,我是一個JDBC的傢伙,新的JPA和註釋。

一切正常,我明白如何使用@Restrict角色。我沒有看到的是如何以編程方式爲用戶分配額外的角色。我期望看到User類中的一個函數,沿User.addRole(字符串角色)

我嘗試了以下類用戶,但它沒有工作(沒有錯誤,只是沒有更新表) ...

Change public List<? extends Role> to public List<SecurityRole> 

public void addRole(String roleName) 
{ 
    SecurityRole grRole = SecurityRole.findByRoleName(Application.NEW_ROLE); 

    this.getRoles().add(grRole); 
    this.save(); 
    this.saveManyToManyAssociations("roles"); 
} 

感謝,切特

回答

0

這似乎是工作,修改模型/認證/用戶...

Change public List<? extends Role> to public List<SecurityRole> 

public void addRole(String roleName) 
{ 
    SecurityRole newRole = SecurityRole.findByRoleName(roleName); 
    if (newRole == null) 
    { 
     newRole = new SecurityRole(); 
     newRole.roleName = roleName; 
     newRole.save(); 
    } 

    if (! this.getRoles().contains(newRole)) 
    { 
     this.getRoles().add(newRole); 
     this.save(); 
     this.saveManyToManyAssociations("roles"); 
    } 
} 
相關問題