Я разрабатываю шаблон отображения приложения (freemarker) для портлета карты сайта для рендеринга в моем макете в нижнем колонтитуле страниц. Пока все работает. Я могу проходить через мои страницы и делать правильный результат. Также проверяет, скрыта ли страница.Проверка разрешений в шаблоне отображения приложений Liferay
Теперь мне нужна еще одна функция. Я хочу проверить, доступна ли страница только зарегистрированным пользователям (= не показывать ссылку на гостя, когда разрешения на страницу запрещают гостям просматривать страницу).
Вот мой код ADT.
<#if entries?has_content>
<#list entries as entry>
<#assign layoutURL = portalUtil.getLayoutURL(entry, themeDisplay)>
<div class="grid3">
<ul>
<#if entry.isHidden() == false>
<li><a href="${layoutURL}">${entry.getName(locale)}</a></li>
</#if>
</ul>
</div>
</#list>
</#if>
Может ${themeDisplay.getPermissionChecker()}
может сделать трюк, но я на самом деле не имеют понятия о том, чтобы проверить наличие разрешений пользователей на странице. В идеальном мире я могу различать разные группы пользователей, но я бы согласился на показ при входе в систему, скрыть, когда анонимно (= гость).
Я использую Liferay 6.2. У кого-то появилась идея?
Я думал themeDisplay.isSignedIn(), а также, но это поможет с разрешениями страницы? Я не хочу строить две отдельные навигационные системы, а скорее одну навигацию, которая учитывает разрешения при повторении дерева страниц. Более простое решение без подробных разрешений по-прежнему необходимо признать, что зарегистрированный пользователь не имеет права видеть элемент навигации. Отличие между GroupA и GroupB приятно иметь, но не жизненно важно. Поэтому в основном мне нужно знать, является ли страница видимой для всех или для пользователей, зарегистрированных в журнале, поэтому я могу избежать предоставления определенных ссылок для гостевых пользователей. –
Я думаю, что использование themeDisplay.isSignedIn() может не быть решением, потому что я не хочу исключать черный список статических страниц. Я хочу свободно устанавливать разрешения для страниц, используя функции управления сайтом liferays. –
Вы правы. Я недостаточно внимательно прочитал вопрос. ThemeDisplay # isSignedIn может использоваться только для проверки того, подписан ли пользователь (или гость). Он не оценивает права пользователя на отдельные страницы (макеты). –