代码之家  ›  专栏  ›  技术社区  ›  Vinod

如何在Liferay中为用户分配角色

  •  0
  • Vinod  · 技术社区  · 9 年前

    是否有任何API方法可以使用角色名称查找roleId? 我正在从excel表格中获取角色名称,我需要检查角色名称是否存在。

    如果角色存在

    如何将该角色分配给用户?

    如果角色不存在,

    如何先创建角色,然后将该角色分配给用户?

    我的代码,

    if(role != null && !role.isEmpty()){
                Role currentRole=RoleLocalServiceUtil.getRole(companyId,role.trim());
    
                if(currentRole != null)
                {
                    roleId = currentRole.getRoleId();
                }
                else{
                    Role newRole = RoleServiceUtil.addRole(role.trim(), null, null, 0);
                    roleId = newRole.getRoleId();
                }
            }
    
    1 回复  |  直到 9 年前
        1
  •  2
  •   Parkash Kumar    9 年前

    以下代码可能对您有所帮助:

    String roleName = "role name";
    
    // Get role by name
    Role role = RoleLocalServiceUtil.getRole(companyId, roleName);
    
    // If role doesn't exist, create new using roleName
    if(role == null){
        role = RoleServiceUtil.addRole(roleName, null, null, 0);
    }
    
    // Get user by userId and add role to it
    User user = UserLocalServiceUtil.getUserById(userId);
    UserLocalServiceUtil.addRoleUser(role.getRoleId(), user.getUserId());
    UserLocalServiceUtil.updateUser(user);