Домашняя страница будет отображаться в соответствии с типом пользователя - PullRequest
2 голосов
/ 13 августа 2010

Я использую следующий код для перенаправления на мою домашнюю страницу при входе в систему ... теперь я хочу пойти еще дальше и добавить логику, где он перенаправляет на другую страницу в зависимости от типа пользователя.

например: если тип пользователя - сотрудник, то я должен перенаправить на employeehome.xhtml и т. Д. ... это возможно?

<page xmlns="http://jboss.com/products/seam/pages"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd">

<navigation from-action="#{identity.login}">
    <rule if="#{identity.loggedIn}">
        <redirect view-id="/Home.xhtml" />
    </rule>
</navigation>

1 Ответ

2 голосов
/ 13 августа 2010

Полагаю, у вас есть страница login.xhtml, с которой пользователь входит в систему.

Затем вы можете создать страницу login.page.xml, содержащую некоторые правила навигации.Например:

     <navigation from-action='#{identity.login}'>
        <rule if="#{identity.loggedIn and s:hasRole('management')}">
            <redirect view-id="/management/home.xhtml"/>
        </rule>
        <rule if="#{identity.loggedIn and s:hasRole('upload')}">
            <redirect view-id="/secure/upload.xhtml"/>
        </rule>
        <rule if="#{identity.loggedIn and (s:hasRole('sss') or s:hasRole('sssmgmnt'))}">
            <redirect view-id="/secure/sss/home.xhtml"/>
        </rule>
        <rule if="#{identity.loggedIn}">
            <redirect view-id="/secure/home.xhtml"/>
        </rule>  
    </navigation>

далее вы можете ограничить страницы, чтобы туда могли заходить только пользователи с нужной ролью.В моем файле pages.xml есть следующие строки:

<page view-id="/secure/upload.xhtml" login-required="true">
    <restrict>#{s:hasRole('upload')}</restrict>
</page>
...