Пусть есть 2 Роли (RoleU1
и RoleU2
), так что теперь, если я правильно понимаю, если у пользователя есть RoleU1
он есть ссылка для перехода на страницу, скажет Welcome Role U1 page
и пользователи с RoleU2
будут иметь ссылку на страницу , Welcome to Role U2 page
, чтобы сделать это, что вы можете сделать следующее:
- Fetch роли
RoleU1
и RoleU2
или принести только их идентификаторы.
- Получить зарегистрированного пользователя.
- Извлечь все роли вошедшего пользователя или получить все роли пользователя.
- Проверьте, какую роль Пользователь имеет, а затем соответствующим образом отобразит пользователю ссылку.
Вот код для вышеуказанных этапов:
#* Fetch the RoleLocalService to fetch the roles, this is similar to using RoleLocalServiceUtil in our custom code in portlets *#
#set($roleLocalService = $serviceLocator.findService("com.liferay.portal.service.RoleLocalService"))
#* fetch the RoleU1 *#
#set($role_u1 = $roleLocalService.getRole($company_id, "RoleU1"))
#set($role_u1_id = $role_u1.getRoleId())
#* fetch the RoleU2 *#
#set($role_u2 = $roleLocalService.getRole($company_id, "RoleU2"))
#set($role_u2_id = $role_u2.getRoleId())
#* current logged-in User is already defined in the theme as $user, so fetch roles for this user *#
#set ($user_role_ids = $user.getRoleIds())
#* check by looping through the user roles *#
#set ($has_role_u1 = false)
#set ($has_role_u2 = false)
#foreach($user_role_id in $user_role_ids)
#if($user_role_id == $role_u1_id)
#set ($has_role_u1 = true)
#end
#if($user_role_id == $role_u2_id)
#set ($has_role_u2 = true)
#end
#end
#if($has_role_u1)
<a href="/group/xxx/xxx" >Welcome to Role U1 page</a>
#else if($has_role_u2)
<a href="/group/xxx/yyy" >Welcome to Role U2 page</a>
#end
Надежда это то, что вам требуется, или по крайней мере даст подсказку.
Что не работает? Вы получаете какие-либо ошибки? Вы хотите проверить, имеет ли Пользователь эту роль или разрешение и соответственно показывает ссылку? и что такое 'isUserRole'? это поможет, если вы сможете уточнить требование –
Я хочу, чтобы пользователь с одной ролью попал на страницу A и другие на стр. B. – user2273574