2015-04-23 50 views
0

我使用Spring Security Core Plugin生成角色,用户和UserRole类。我想直接在用户创建过程中设置用户角色。我在用户中添加了一个“角色”字段,但不知道如何以及在哪里设置UserRole中的条目。Grails,Spring Security核心,更改用户权限

除了重新认证之外,还有其他什么实现来更新用户角色吗?

回答

0

你应该从用户删除链接的作用和使用下面的代码,创建用户和角色之后:

UserRole.create(user,role,true) 

如果用户您创建的用户,角色您创建的角色,而真正被指出的UserRole应该创建flush:true 祝你好运!

0

是的它的作品!谢谢,这是我的服务代码:

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