如何添加向用户添加其他角色?

时间:2013-05-21 23:27:16

标签: playframework-2.0 play-authenticate

我从教程网站play-authenticate-usage开始。我玩2.1,deadbolt 2.1和播放验证1.0

不幸的是,我是一个JDBC人员,也是JPA和注释的新手。

一切正常,我理解如何使用@Restrict作为角色。我没有看到的是如何以编程方式为用户分配额外的角色。我希望在User类中看到一个函数,就像User.addRole(String role)一样

我尝试了类User中的以下内容,但它没有工作(没有错误,只是没有更新表)...

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");
}
谢谢,切特

1 个答案:

答案 0 :(得分:0)

这似乎有效,修改是对model / auth / User ...

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");
    }
}