2015-09-14 2 views
0

Есть ли какой-либо метод API для поиска roleId с использованием имени роли? Я получаю название роли (ы) формы листа excel, мне нужно проверить, существует ли имя роли или нет.Как назначить роль пользователю в Liferay

Если роль существуют

как я могу назначить эту роль пользователю?

Если роль не существует,

как я могу создать роль первого, а затем назначить эту роль пользователю?

Мой код,

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

http://stackoverflow.com/questions/32472693/how-to-get- roleed-role-role-name-in-liferay –

+0

Вы хотите создать и назначить роли общего/сайта? –

+0

Общие Роли. Я обновил свой вопрос, который не работает. Пожалуйста, дайте мне знать, в чем проблема. – Vinod

ответ

2

Следующий код может быть полезным в вас случай:

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

Если вы хотите добавить групповые роли, вы можете обратиться к http://stackoverflow.com/questions/29645490/how-to-assign-site-roles-for-user-group-programatically-in-liferay#answer-29645921 –

Смежные вопросы