2013-05-21 92 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"); 
    } 
} 
相关问题