top.xhtml

Definimos el menú

 <b:navBar brand="#{msg['application.shorttitle']}"
              brandHref="" inverse="true"
              fixed="top">

Crearemos un menu para invocar las paginas:

index.xhtml

  • index.xhtml

  • /pages/rol/list.xhtml

  • /pages/usuario/list.xhtml

  • Invocar la opciòn de logout

Validamos los permisos de acceso mediante el APi Java EE 8 Security Api, usando ifGranted

<b:dropMenu value="#{msg['menubar.administracion']}"  rendered="#{p:ifGranted('ADMINISTRADOR')}">

Si deseamos evaluar varios roles, simplemente usamos ifAnyGranted y la lista de permisos.

<b:dropMenu value="#{msg['menubar.solicitud']}" rendered="#{p:ifAnyGranted('ADMINISTRADOR, DOCENTE, ADMINISTRATIVO')}">

template.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:fragment xmlns="http://www.w3.org/1999/xhtml"
             xmlns:h="http://java.sun.com/jsf/html"
             xmlns:ui="http://java.sun.com/jsf/facelets"
             xmlns:f="http://java.sun.com/jsf/core"
             xmlns:b="http://bootsfaces.net/ui"
             xmlns:p="http://primefaces.org/ui">

    <ui:remove>
        <!--
                    Hint to editors: The menus follow the Chicago style of capitalization. Please capitalize everything but the "smaller" words. 
        -->
    </ui:remove>
    <b:navBar brand="#{msg['application.shorttitle']}"
              brandHref="" inverse="true"
              fixed="top">
        <b:container>
            <b:navbarLinks>
                <b:navLink />
                <b:navLink />
                <b:navbarLinks>
                    <b:navLink outcome="/pages/index" value="#{msg['menubar.home']}" iconAwesome="home" />
                </b:navbarLinks>
           


                <b:dropMenu value="#{msg['menubar.administracion']}"  rendered="#{p:ifGranted('ADMINISTRADOR')}">
                    <b:navLink value="#{msg['menu.usuario']}"  outcome="/pages/usuario/list" icon="user"  />
                    <b:navLink value="#{msg['menu.rol']}"  outcome="/pages/rol/list" iconAwesome="desktop"  />
                  

                </b:dropMenu>
                <b:dropMenu value="#{app['button.logout']}" >

                                     <h:form id="navbartopform">
                        <p:commandLink class="btnn btnn-primary login-btn" value="#{app['button.logout']}" action="#{loginController.doLogout()}"/>

                    </h:form>
                </b:dropMenu>
            </b:navbarLinks>



        </b:container>
    </b:navBar>

</ui:fragment>

Last updated

Was this helpful?