Grails,Spring安全核心,更改用户权限

Grails,Spring安全核心,更改用户权限,grails,spring-security,Grails,Spring Security,我使用Spring安全核心插件生成了Role、User和UserRole类。我想直接在用户创建过程中设置用户角色。我在User中添加了一个Role字段,但不知道如何以及在哪里设置UserRole中的条目 是否还需要执行其他操作,如重新验证以在以后更新用户角色?您应该从用户中删除指向角色的链接,并在创建用户和角色后使用下一个代码: UserRole.create(user,role,true) 其中user-your-created-user、role-your-created-role和tru

我使用Spring安全核心插件生成了Role、User和UserRole类。我想直接在用户创建过程中设置用户角色。我在User中添加了一个Role字段,但不知道如何以及在哪里设置UserRole中的条目


是否还需要执行其他操作,如重新验证以在以后更新用户角色?

您应该从用户中删除指向角色的链接,并在创建用户和角色后使用下一个代码:

UserRole.create(user,role,true)
其中user-your-created-user、role-your-created-role和true表示userRole应使用flush:true创建
祝你好运

是的,它很管用!!!谢谢,这是我在服务中的代码:

public String updateUser(long userId, String username, String password, long roleId){
    Object[] args = [messageSource.getMessage('spring.security.ui.login.username',null, null),username];
    def user = User.get(userId);
    def userTemp = User.findAllByUsername(username);

    if(userTemp.isEmpty() || userTemp.get(0).id == userId){
        def role = Role.get(roleId);
        user.username = username;
        user.roleId = roleId;
        if (password != ''){
            user.password = password;
        }
        user.save(flush:true);
        UserRole.create(user,role,true);
        return "<span class='successMessage'><strong>" + messageSource.getMessage("message.common.record.saved.successfully", args, null) + "</strong></span>";
    } else {
        return "<span class='warnMessage'><strong>" + messageSource.getMessage("message.common.register.exist", args,null) + "</strong></span>";
    }       
}