【问题标题】:How can I assign a role to a user in Liferay如何在 Liferay 中为用户分配角色
【发布时间】:2015-12-10 01:11:32
【问题描述】:

是否有任何 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();
            }
        }

【问题讨论】:

  • 您要创建和分配一般/站点角色吗?
  • 一般角色。我已经更新了我的问题,哪个不起作用请告诉我是什么问题。
  • 你是如何得到这个角色对象的?
  • 该角色是一个字符串对象,我从 excel 表中获取角色名称

标签: liferay liferay-6


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 2015-06-10
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
  • 2015-06-07
  • 2021-07-04
  • 2010-10-09
相关资源
最近更新 更多